-
Notifications
You must be signed in to change notification settings - Fork 0
/
Beskrivelse
41 lines (35 loc) · 1.95 KB
/
Beskrivelse
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Fra bildet lagrer vi:
- 2d array av alle pixlene
Genotype:
- For hvert segment har vi ett unordred_set av pixel kordinater som inngår i det settet.
Crossover:
- Sorter alle segmentene hos de to foreldrene utifra fitness.
! Har nå valg tå sortere ettere en tilfeldig fitness funk
- Velg den beste, slett pixlene i den fra de etterfølgende segmentene.
- Gjennta for neste segment.
- For hvert segment som er endret (marker om de ble endret)
- Velg en tilfeldig piksel putt denne i ett nytt segment, overfør alle nabone til dette pikselet,
og alle naobene til nabone rekursivt.
Når det ikke lengre er noen naboer fra det originale segmentet, er dette nye segmentet laget
- Gjenta til alle pikslene fra det originale settet er oppbrukt.
- Slett alle tomme sett.
Mutation:
- Merge:
- Mulighet 1: Velg ett tilfeldig segment, merge med den naboen som gir størst forbedring.
- (Mulighet 2: Merge de to segmentene som gir størst forbedring.) (funker dårlig tror jeg meg split og init)
- Split:
- Split opp segmentet i ett tilfeldig antall undersegmenter
- Enten del opp i en piksel per segment
- Om det har for lang kjøretid: Finn en annen måte å dele opp på.
- Kjør merge blandt undersegmentene til vi har 2 igjen.
Initial population:
- Kjør merge til ønsket antall segmenter nåes (ønsket antall bør være tilfeldig innenfor ett gitt intervall).
Fitness:
- For hvert segment lagre de tre fitnessene
- Løsningen har summen av fitnessene. (fitnes 2 og 3 får dobbel så høy verdi, men det gjør ikke noe)
Finne kantpikslene i ett segment:
- For hver piksel, sjekk om en av nabopikslene ikke er i det samme segmentet. Da er den en kant. Om vi skal beregne fitness,
legg da til den vektkanten.
Hvis vi skal finne nabosegmenter
- De pikslene som ikke er i segmentet skrives ned sånn at de kan brukes for å finne nabosegmenter.
- Kjør finn kantpiksler, finn hvilket segment "pikslene som ikke er i segmentet" tillhører.