Jsem liny si s tim hrat, ale takhle od pohledu bych nasel i lepsi vysledek.
Zajima me, co vedlo autora k pouziti normalniho rozdeleni v hodnotici funkci. Tim myslim radek:
quality += Math.exp( -(x*x) / (2.0*sigma*sigma) );
Co by se stalo, kdybych to jen tak hloupe poscital:
quality += x*x;
A pak zrejme otocil znamenko, protoze vlastne hledame maximum, takze vlastne:
quality -= x*x;
Zmensi se tim rozdil fitness mezi lepsim a horsim resenim. Pri selekci pak bude o neco vetsi pravdepodobnost vyberu horsich jedincu a tim o neco vetsi diverzita populace. Muze to pomoct proti predcasne konvergenci k lokalnimu minimu.
Metod pro zachovani diverzity populace je spousta a predpokladam, ze se tomu nejaky dalsi clanek bude venovat.
Bez toho by to fungovalo taky. Jak dobre, to nevim. Muselo by se to zmerit. Neexistuje zadny presny navod jak pouzivat EA.