Ngā hua rapu - self-adaptive differences evolution algorithms