Noen punkter
- Siste gruppetime blir fredag 18. november
- @classmethod
- Try/Except
- Numpy (og array-programmering)
- Genetiske/evolusjon?re algoritmer
Objekt-orientert programmering for en genetisk algoritme
- Implementer en klasse Person som har et DNA
- DNA er en liste med 2 tall (lengden er 2) og hvert tall er mellom 0 og 100
- Klassen skal ha en metode
lag_barn(self, annen_person)
- Metoden skal returnere et nytt individ med DNA som er en kombinasjon av DNA-et til foreldrene (foreldrene er her
self
ogannen_person
). Velg selv hvordan du vil kombinere DNA-et til foreldrene:- Man kan f. eks ta gjennomsnittet av tallene, eller barnet kan f? det ene tallet fra mor og det andre fra far. Barnet skal bare ende opp med to tall i en liste.
- Legg inn en liten sannsynlighet for mutasjoner som endrer DNA-et til barnet.
- Metoden skal returnere et nytt individ med DNA som er en kombinasjon av DNA-et til foreldrene (foreldrene er her
Vi skal jobbe videre med ? se hvordan denne enkle Person-klassen kan brukes til ? lage en evolusjon?r algoritme for ? l?se optimaliseringsproblemet fra forrige uke.
Lesemateriale for helgen
- Clean code: https://github.com/jnguyen095/clean-code/blob/master/Clean.Code.A.Handbook.of.Agile.Software.Craftsmanship.pdf
- Ten simple rules for quick and dirty programming: https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1008549