source: liacs/ccs/op4/aanwijzingen.txt@ 257

Last change on this file since 257 was 2, checked in by Rick van der Zwet, 15 years ago

Initial import of data of old repository ('data') worth keeping (e.g. tracking
means of URL access statistics)

File size: 2.2 KB
RevLine 
[2]1== Aanwijzing K.M. Wong ==
2In exerciseThomas.pdf staat een objective function die gemaximaliseerd moet
3worden. De functie neemt als input een vector van n groot (vector y dus) die
4bestaat uit de waarden -1 en +1. Bijvoorbeeld y={-1,+1,+1,-1}, waar n=4.
5
6Voor deze opdracht moet je voor een gegeven lengte n een string zoeken met de
7hoogste output waarde. Je begint met het random genereren van een aantal
8strings. Hiervan kies je de beste strings, waarmee je weer een nieuwe populatie
9(hopelijk) betere strings gaat genereren mbv. crossover en/of mutaties. In
10Table 1 staan de beste output waarden die zijn gevonden voor de gegeven string
11lengtes n. Je hoeft voor deze opdracht die waarden niet te overtreffen (dat zou
12te moeilijk zijn).
13
14De functie in de matlab code (de marit function) is niks anders dan een
15implementatie van de objective function. Voor deze opdracht hoef je niet
16perse matlab te gebruiken. De objective functie kan makkelijk in C of
17C++ geimplementeerd worden.
18
19
20== Aanwijzing J.K Vis ==
21Je moet ongeveer het volgende maken:
221. Een evaluatiefunctie die volgens de gegeven 'maximal objective function' een
23 waarde toekent aan een string over het alfabet {-1, 1}.
242. Een mutatiefunctie die tenminste een element uit zo'n string verandert in
25 zijn tegengestelde.
263. Een 'crossoverfunctie' die tenminste een combinatie maakt van twee strings
27 waarbij het resultaat is dat het eerste deel van de eerste string wordt
28 aangevuld met het tweede deel van de tweede string en het eerste deel van de
29 tweede string wordt aangevuld met het tweede deel van de eerste string.
304. Een evolutionair algoritme: verzin iets dat gebruik maakt van de
31 bovenstaande functies op ongeveer de volgende manier:
32 a. Initialiseer een populatie (een aantal strings) (random?).
33 b. Evalueer de populatie (maak gebruik van de evaluatiefunctie).
34 c. Indien er een string goed genoeg is (> 7?): stoppen.
35 d. Selecteer het 'beste' deel van de populatie (zijn verschillende manieren
36 mogelijk).
37 e. Vul het geselecteerde deel van de strings aan met gemuteerde (mutatie en
38 crossover) strings uit dat deel tot dat je weer de originele populatiegrootte
39 hebt.
40 Ga naar stap b.
Note: See TracBrowser for help on using the repository browser.