Describir: Evolutionary algorithms in theory and practice