Genetiske algoritmer er et programmeringsspråk teknikk som dataforskere lært fra naturen . Natur designer vakre planter og dyr løsninger på vanskelige problemer ved strengt mekaniske midler uten intelligente retninger. Genetiske algoritmer kan finne den optimale svaret på vanskelige design problemer når du har ingen anelse om hvordan du går frem. De eneste nødvendige begrensningene er at du må ha en optimalisering problem og at løsningene kan beskrives med en tallrekke . Instruksjoner
en
Design en tallrekke som beskriver en løsning på problemet ditt . Designe en funksjon som kan vurdere disse strengene , gitt en streng , kan denne funksjonen fortelle deg hvor god strengen er som et svar på problemet ditt . For eksempel kan strengen være en liste over målinger av det indre av en rakettmotor turbo- pumpe. Funksjonen vil være en beregning av skyvkraft fra et kammer med disse målinger. Strengen kan også være de prosentene av vann , sand , sement og grus som utgjør en blanding av undersjøiske betong.
2
Skriv et dataprogram som utvikler strengene mot optimalisering. Begynn med en befolkning på strenger hvor alle tallene i strengene ble valgt tilfeldig . En "generasjon " består av å evaluere alle strenger i " befolkningen " og forkaster strengene med de laveste verdiene. Strengene med de høyeste evalueringene vil fortsette inn i neste generasjon. En tilfeldig blanding av de store preforming strenger vil også gjøre det til den neste generasjonen . Noen av disse strengene vil ha tilfeldige mutasjoner til et av tallene i strengen . Denne prosessen gjentas for flere generasjoner. Antallet strenger i hver generasjon er den samme.
3
Finn minimum genetisk algoritme ved å kjøre løsningen med ett av tallene mangler. Hvis det er "n" tall i en streng, vil dette bety kjører " n" ulike populasjoner med hvert av tallene mangler. Hvis de kortere strenger fortsatt har samme høye evaluering , kjøre kortere og kortere populasjoner til du finner den korteste strengen som vil fungere for det aktuelle problemet . For det konkrete problemet, ville dette fortelle deg om du kunne la ut en av ingrediensene .