Ngā hua rapu - self-adaptive (different OR differences) evolution algorithm*