sadržaj - ruđer bošković institute · full metoda poput grow metode, ali je unaprijed...

29
1 Sadržaj 1 Uvod ............................................................................................................................................................................................................. 3 2 Genetski algoritam ..................................................................................................................................................................................... 5 3 Genetsko programiranje ........................................................................................................................................................................... 6 3.1 Elementi genetskog programiranja ................................................................................................................................................. 6 3.1.1 Odabir podatkovnih i funkcijskih elemenata rješenja .......................................................................................................... 6 3.1.2 Funkcija dobrote ....................................................................................................................................................................... 7 3.1.3 Parametri genetskog programa .............................................................................................................................................. 7 3.1.4 Uvjet zaustavljanja postupka .................................................................................................................................................. 8 3.1.5 Građa rješenja........................................................................................................................................................................... 8 3.2 Genetski algoritam ............................................................................................................................................................................ 8 3.2.1 Početna populacija ................................................................................................................................................................... 9 3.2.2 Selekcija i eliminacija ............................................................................................................................................................. 10 3.2.3 Genetski operatori .................................................................................................................................................................. 10 4 Algoritmi zamjene stranica u radnom spremniku ................................................................................................................................ 12 4.1 OPT (optimalni algoritam) .............................................................................................................................................................. 12 4.2 FIFO (first-in-first-out) ..................................................................................................................................................................... 13 4.3 Second chance ................................................................................................................................................................................ 14 4.4 CLOCK (satni algoritam) ................................................................................................................................................................ 15 4.5 NFU (not frequently used) .............................................................................................................................................................. 16 4.6 LRU (last recently used) ................................................................................................................................................................. 16 4.7 RANDOM.......................................................................................................................................................................................... 17 5 Program „simradsprem“ .......................................................................................................................................................................... 19 5.1 Način rada programa ...................................................................................................................................................................... 19 5.2 Osnovni parametri programa ......................................................................................................................................................... 20 5.2.1 Ključni parametri programa ................................................................................................................................................... 20 5.2.2 Dobrota .................................................................................................................................................................................... 20 5.2.3 Selekcija i eliminacija ............................................................................................................................................................. 20 5.2.4 Križanje i mutacija .................................................................................................................................................................. 21 5.3 Rezultati ............................................................................................................................................................................................ 21 6 Zaključak ................................................................................................................................................................................................... 26 7 Literatura ................................................................................................................................................................................................... 27

Upload: others

Post on 20-Jan-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

1

Sadržaj

1 Uvod............................................................................................................................................................................................................. 3

2 Genetski algoritam ..................................................................................................................................................................................... 5

3 Genetsko programiranje ........................................................................................................................................................................... 6

3.1 Elementi genetskog programiranja................................................................................................................................................. 6

3.1.1 Odabir podatkovnih i funkcijskih elemenata rješenja .......................................................................................................... 6

3.1.2 Funkcija dobrote ....................................................................................................................................................................... 7

3.1.3 Parametri genetskog programa .............................................................................................................................................. 7

3.1.4 Uvjet zaustavljanja postupka .................................................................................................................................................. 8

3.1.5 Građa rješenja........................................................................................................................................................................... 8

3.2 Genetski algoritam ............................................................................................................................................................................ 8

3.2.1 Početna populacija ................................................................................................................................................................... 9

3.2.2 Selekcija i eliminacija ............................................................................................................................................................. 10

3.2.3 Genetski operatori .................................................................................................................................................................. 10

4 Algoritmi zamjene stranica u radnom spremniku ................................................................................................................................ 12

4.1 OPT (optimalni algoritam) .............................................................................................................................................................. 12

4.2 FIFO (first-in-first-out) ..................................................................................................................................................................... 13

4.3 Second chance ................................................................................................................................................................................ 14

4.4 CLOCK (satni algoritam) ................................................................................................................................................................ 15

4.5 NFU (not frequently used).............................................................................................................................................................. 16

4.6 LRU (last recently used)................................................................................................................................................................. 16

4.7 RANDOM.......................................................................................................................................................................................... 17

5 Program „simradsprem“ .......................................................................................................................................................................... 19

5.1 Način rada programa ...................................................................................................................................................................... 19

5.2 Osnovni parametri programa ......................................................................................................................................................... 20

5.2.1 Ključni parametri programa ................................................................................................................................................... 20

5.2.2 Dobrota .................................................................................................................................................................................... 20

5.2.3 Selekcija i eliminacija ............................................................................................................................................................. 20

5.2.4 Križanje i mutacija .................................................................................................................................................................. 21

5.3 Rezultati ............................................................................................................................................................................................ 21

6 Zaključak ................................................................................................................................................................................................... 26

7 Literatura ................................................................................................................................................................................................... 27

Page 2: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

2

8 Sažetak...................................................................................................................................................................................................... 28

9 Abstract ..................................................................................................................................................................................................... 29

Page 3: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

3

1 Uvod

Priručna memorija (cache), primarna memorija (radna) i sekundarna memorija (diskovi) su dijelovi

računalne memorije koji se razlikuju po veličini i brzini. Svaka memorija je podjeljena na manje dijelove –

stranice. U stranice se spremaju dijelovi programa i podatci koji su potrebni procesoru za rad.

Radna memorija se prividno čini kao najbrža cache memorija s najvećim kapacitetom sekundarne

memorije zbog straničenja. Straničenje je proces koji prebacuje stranice potrebne za rad procesora iz

sekundarne memorije u radnu, čime procesor ima omogućeni brži pristup podatcima.

Postupak kopiranja stranica u radni spremnik najsporija je komponenta izvršavanja programa te

brzina programa poprilično ovisi o stranici koja će biti izbačena prilikom upisivanja nove stranice. Razvijeni

algoritmi koji povećavaju učinkovitost postupka straničenja podliježu zakonima prostorne i vremenske

lokalnosti. Prostorna lokalnost govori da će podatci referencirani u bliskoj budućnosti imati adrese bliske

nedavno korištenim podatcima, dok vremenska lokalnost upućuje na veliku vjerojatnost ponovnog

referenciranja nedavno korištenih podataka. S obzirom na te zakone postoje algoritmi zamjena stranica u

radnome spremniku koji više-manje poštuju i koriste navedane zakone. Optimalni algoritam (OPT) u

potpunosti uzima ta dva zakona, no praktično je neizvediv i služi samo kao referenca, dok RANDOM

algoritam ne uzima u obzir niti jedan zakon, no u praksi daje u prosijeku bolje rezultate od FIFO algoritma

koji na određenoj razini ostvaruje navedene zakone. Postoje i drugi algoritmi poput Second chance,

CLOCK, NFU i LRU koji u različitim količinama implementiraju prostornu i vremensku lokalnost.

Zbog takvih problema, zamjena stranica u radnome spremniku, za koje nije moguće razviti ili

upotrijebiti optimalne i efektivne egzaktne algoritme, tijekom posljednja dva desetljeća, a posebno u

posljednjih nekoliko godina, sve više se koriste i razvijaju heuristički algoritmi. Naziv “heuristički algoritam“

koristi se za opisivanje algoritma koji se bazira na heuristici. Takvi su algoritmi obično iterativni. Potragu za

rješenjem počinju nekim trivijalnim dopustivim rješenjem problema koje je često daleko od optimalnog. Pri

svakoj iteraciji modificiraju trenutno rješenje kako bi došli što bliže optimalnom. Heuristika se koristi prilikom

odabira parametara za iduću iteraciju unutar algoritma kao i prilikom odabira konstanti koje se koriste

tijekom algoritma.

Page 4: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

4

U ovom radu biti će opisane već određene egzaktne strategije zamjene stranica u radnom

spremniku, te će biti izvedena i opisana metoda dobivena genetskim algoritmom

Page 5: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

5

2 Genetski algoritam

Genetski algoritam je heuristička metoda optimiranja koja imitira prirodni evolucijski proces.

Sredinom 60-tih godina John H.Holland (1973.) je prvi razvio metodu rješavanja problema optimizacije

genetskim algoritmom. Njegov student D.E.Goldberg razvio je i usavršio metodu za rješavanje

kompleksnih problema optimizacije, te 1989. godine objavljuje knjigu koja se poslije javlja kao inspiracija i

startna točka skoro svih metoda razvijenih na bazi evolucijskog programiranja. [2]

Zbog gotovo identičnog oponašanja prirode, genetski algoritmi spadaju u evolucijske algoritme.

Analogija evolucije kao prirodnog procesa i genetskog algoritma kao metode optimiranja očituje se u

procesu selekcije i genetskim operatorima. Evolucija se u prirodi javlja radi preživljavanja i reprodukcije

sposobnih jedinki koje predaju svoj genetski materijal sljedećim generacijama. Kao posljedica tog procesa

genetski materijal koji čini sposobnije jedinke ima mogućnosti povećati svoj udio u cjelokupnoj populaciji,

što uzrokuje promjenu na razini vrste. [5]

Svaki genetski program počinje s inicijalnom populacijom (skup rješenja). Obično se početna

populacija generira slučajnim odabirom rješenja iz domene, mada je moguće početnu populaciju generirati

uniformno ili usaditi početno (inicijalno) rješenje dobiveno nekom drugom optimizacijskom metodom. Svaka

jedinka predstavlja potencijalno rješenje problema koji se obrađuje - kromosomi. Svakom rješenju se

pridjeljuje određena mjera kvalitete - dobrota, dok se funkcija koja tu kvalitetu određuje naziva funkcija cilja

ili funkcija dobrote.

Iz stare populacije formira se nova populacija izdvajajući, po nekom postupku odabira, bolje jedinke

iz skupa postojećih. Neki članovi ove nove populacije podvrgnuti su utjecajima genetskih operatora koji iz

njih formiraju nove jedinke. Operatori se dijele na unarne, koji stvaraju novu jedinku mijenjajući manji dio

genetskog materijala (mutacija) i operatore višeg reda, koji kreiraju nove individue kombinirajući osobine

nekoliko jedinki (križanje).

Nakon nekog broja izvršenih generacija čitav postupak se zaustavlja kada se zadovolji uvjet

zaustavljanja (prošao je određeni broj iteracija ili je postignuta određena dobrota jedinke), a najbolji član

trenutne populacije predstavlja rješenje koje bi trebalo biti sasvim blizu optimuma.

Page 6: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

6

3 Genetsko programiranje

Genetsko programiranje je tehnika koja omogućava rješavanje nekog problema računalom bez

potrebe za stvaranjem programa koji rješava zadani problem. Ovu metodu prezentirao je John Koza 1990

godine.

Ideja genetskog programiranja došla je kao generalizacija genetskih algoritama. S obzirom da u GA

vršimo manipulaciju nad kromosomima koji predstavljanju brojeve (binarne ili realne), moguće je formirati

koromosome koji predstavljaju kompjuterske programe nad kojim bi vršili operacije križanja i mutacije, te

time dobivali računalni program koji bi optimalno rješavao neki određeni problem. [2]

3.1 Elementi genetskog programiranja

Kod svake primjene bilo koje paradigme strojnog učenja pri rješavanju problema prethodno je

potrebno definitati određene elemente sustava. Elementi genetskog programiranja su sljedeći (Koza,

1992):

podatkovni i funkcijski elementi rješenja,

funkcija dobrote,

parametri genetskog programa,

uvjet zaustavljanja postupka te

građa rješenja.

3.1.1 Odabir podatkovnih i funkcijskih elemenata rješenja

Najvažniji zahtjev koji treba zadovoljiti prilikom odabira podatkovnih i funkcijskih elemenata je taj da

je uz pomoć njih moguće izraziti rješenje problema kojega pokušavamo riješiti. Ovo se svojstvo naziva

potpunost (engl. sufficiency), a zadovoljavanje istog ovisi o određenom problemu i nije ga u općenitom

Page 7: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

7

slučaju moguće definirati. Skup podatkovnih elemenata i funkcijskih elemenata sastavlja se s elementima

za koje se smatra da bi mogli biti od koristi u dotičnom problemu.

Drugo svojstvo koje skup treba zadovoljavati je zatvorenost (engl. closure). Zatvorenost zadanog

skupa elemenata definira se, za bilo koji funkcijski element, kao sposobnost prihvaćanja rezultata od bilo

kojeg drugog funkcijskog ili podatkovnog elementa. Zadovoljavanje ovog svojstva ovisi o vrsti podataka

određenog problema; npr. u rješavanju nekog problema u domeni Booleoove algebre. Funckijski čvorovi će

kao argumente obično primati i vraćati isključivo logičke vrijednosti 0 i 1.

3.1.2 Funkcija dobrote

Funkcija dobrote, kao i kod genetskih algoritama, je element sustava koji u najvećoj mjeri rukovodi

evolucijom i upravlja kretanjem cjelokupne populacije.

U većini ostvarenja genetskog programiranja određivanje dobrote rješenja oduzima najveći dio

utrošenog procesorskog vremena. Ukoliko izvedeni programi uljučuju iterativne ili rekurzivne strukture,

potrebno je uvesti i dodatne nadzorne mehanizme koji će otkriti postojanje nepravilnosti u programu (npr.

beskonačne petlje).

Određivanje dobrote nekog rješenja obično se sastoji od ispitivanja ponašanja tog rješenja na nizu

ispitnih primjera. Potrebno je uočiti da je proces učenja vođen isključivo funkcijom dobrote.

3.1.3 Parametri genetskog programa

Parametri genetskih metoda su: veličina populacije (30-100), vjerojatnost mutacije (0.1-0.001),

vjerojatnost križanja (0.9-0.6), broj jedinki za eliminaciju (VelPop/2-VelPop/4) itd.

Odabir odgovarajućih vrijednosti ovisan je o dotičnoj primjeni i ne postoji skup vrijednosti parametara

koji su najbolji za svaki problem. Postavljanje parametara dodatno komplicira i njihova međusobna

povezanost. Kako za različite vrijednosti parametara dobivamo različite rezultate koji se očituju u brzini i

točnosti rješenja, postavljanje djelotvornih parametara zahtjeva izvođenje velikog broja eksperimenata.

Page 8: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

8

3.1.4 Uvjet zaustavljanja postupka

Uvjet zaustavljanja svojstven je dotičnom problemu, no najčešći oblik uvjeta zaustavljanja je

dostizanje predefiniranog broja generacija evolucijskog procesa. Razlog takvog zaustavljanja leži u

gubljenju sposobnosti pronalaženja bitno različitih rješenja, te da su eventualna naknadna poboljšanja vrlo

mala. U svom radu (Koza, 1992) J. Koza za sve pokuse koristi broj od 50 generacija, ukoliko već prije nije

pronađeno točno rješenje. Vjerojatnost nalaženja boljeg rješenja nakon toga leži u višestrukom ponavljanju

pokusa.

3.1.5 Građa rješenja

Predposatvimo li uobičajeni prikaz rješenja genetskog programiranja u obliku stabla, građa rješenja

može podrazumijevati definiranje programa, tj. po prihvaćenom nazivu, automatski definiranih funkcija

(ADF).

Automatski definirana funkcija je potprogram (funkcija, procedura, rutina) koji može biti pozvan od

strane glavnog programa, a svi eventualni potprogrami, kao i glavni program, dinamički se izgrađuju

tijekom evolucijskog procesa. U slučaju rješenja predstavljanog stablom, podatkovni elementi su završni

čvorovi stabla (listovi) – podatkovni čvorovi, dok su ostali čvorovi funkcijski elementi – funkcijski čvorovi.

3.2 Genetski algoritam

stvaranje početne populacije;

dok (nije zadovoljen uvjet zaustavljanja) {

selekcija, eliminacija (na temelju dobrote jedinke)

genetski operatori

križanje;

mutacija;

}

Page 9: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

9

3.2.1 Početna populacija

Početna populacija (nulta generacija) stvara se na temelju slučajnog odabira. Čvorovi stabla se

mogu podijeliti na završne i nezavršne, pri čemo samo nezavršni čvorovi mogu biti listovi.

Izgradnja početne populacije može se izvesti na tri načina: grow metodom, full metodom i ramped

half-and-half metodom.

Grow metoda

Počevši od korijena, slučajno se odabire vrsta čvora koji će se dodati u stablo. Pritom je moguće

birati završne ili nezavršne čvorove. Ako je odabran završni čvor, sustav odabire bilo koji završni čvor i

dodaje ga u stablo, inače dodaje neki nezavršni čvor. Postupak se rekurzivno ponavlja dok svi listovi stabla

nisu završni ili dok se ne dostigne maksimalna dozvoljena dubina stabla

Full metoda

Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi

pojavljivati završni čvorovi.

Remped half-and-half metoda

Prilikom generiranja jedinki definira se samo maksimalna dubina stabla (md). Populacija se dijeli na

md-1 dijelova, te se polovica svakog dijela generira grow metodom, a druga polovica full metodom.

Slika 3.2.1 primjer jedinke: f=a+b*c [4]

Page 10: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

10

3.2.2 Selekcija i eliminacija

Selekcija je proces koji osigurava prenošenje boljeg genetskog materijala iz generacije u generaciju

te stoga direktno utječe na samu kvalitetu genetskog programa. Postupci selekcije se međusobno razlikuju

na dva načina: način prenošenja genetskog materijala i način odabira pojedinih jedinki iz skupa jedinki na

temelju njihove dobrote.

Prvi se dijeli na:

Generacijske selekcije: proces odabire najbolje jedinke i od njih kreira novu populaciju. Može

rezultirati smanjenjem genetske raznolikosti.

Eliminacijske selekcije: proces eliminira najgore jedinke i nadomiješta ih križanjem postojećih.

Drugi način ima više postupaka. Jednostavniji primjeri:

Jednostavna proporcionalna selekcija: slučajno se biraju jedinke iz populacije, s time da

jedinke s većom dobrotom imaju veću vjerojatnost biti odabrane.

K-turnirska selekcija: odabire k članova populacije te uspoređuje njihove dobrote. Jedinke

lošije dobrote se eliminiraju te zamijenjuju novima koje nastaju križanjem preostalih. Kod ove

selekcije javlja se elitizam, tj. najbolja jedinka nikada neće biti eliminirana.

3.2.3 Genetski operatori

Križanje

Križanje jedinki je proces u kojem se rekombinira genetski materijal dvaju, selekcijom odabrana,

roditelja i kao rezultat dobiva jedna ili dvije jedinke djece.

Kod genetskog programiranja nasumično se odabiru dva čvora i mijenjaju stvarajući dvije potpuno

nove jedinke.

Page 11: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

11

Slika 3.2.2 roditeljske jedinke: f1=b*(a+c) i f2=b*c+(c-a*b) [4]

Slika 3.2.3 djeca: f1=(a*b)*(a+c) i f2=b*c+(c-b) [4]

Mutacija

Mutacija je unarni genetski operator koji služi za uvođenje nekih gena koji će rezultirati novim

jedinkama s boljim rješenjem i za obnavljanje izgubljenog genetskog materijala. Mutacijama se može dobiti

poboljšanje ali i pogoršanje prosječne dobrote jedinki u populaciji. No, jedinke sa „smrtonosnim“

mutacijama bit će vrlo brzo eliminirane u selekcijskom procesu, tako da iste ne bi smjele dugotrajno narušiti

prosječnu dobrotu jedinki u populaciji.

Kod genetskog programiranja slučajno odabrani čvor zamjenjuje se slučajno odabranim podstablom.

Page 12: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

12

4 Algoritmi zamjene stranica u radnom spremniku

Odluka koju ćemo stranicu izbaciti iz radnog spremnika kada iz sekundarne memorije moramo

prenjeti novu stranicu u radni spremnik temelji se na algoritmima zamjene stranica. Problem zamjene

stranica je bitan i dobro proučen. Važnost učinkovitog algoritma ležu u izrazito čestom pojavljivanju

zamjena stranica pri izvođenju programa. Algoritam direktno utječe radna svojstva operacijskog sustava.

Ako algoritam nije dovoljno učinkovit, operacijski sustav može zaglaviti duže na zamjeni stranica potrebnih

programu, nego na samom izvođenju programa. [3]

Cilj algoritma zamjene stranica je smanjenje broja promašaja. Promašaj je zahtjev procesora za

stranicom koja se ne nalazi u radnom spremniku. Ako je procesor zatražio stranicu koja se nalazi u radnom

spremniku, radi se o pogotku. Nakon pogotka sadržaj radne memorije se ne mjenja te procesor nastavlja

sa radom.

Praktična ostvarenja postupaka za izbacivanje stranica zasnivaju se na nekoliko teorijskih

razmatranja strategija, te se kao mjera za usporedbu strategija najčešće koristi broj promašaja stranica.

Primjer:

Stranice dolaze redom: 23145214531

Spremnik: 4 okvira

Oznaka pogodka: *

4.1 OPT (optimalni algoritam)

Optimalna strategija ovisi u potpunosti o budućim unosima. Ona provjerava koje stranice najdalje

budućnosti se neće koristiti, te prema tome prilagođava izbacivanje stranica u okvire. Premda daje najbolje

riješenje, nije praktična i u potpunosti ovisi o samom primjeru. Ipak, ovaj algoritam se može koristiti za

usporedbu koliko je neka strategija zamjene stranica dobra. [1]

Page 13: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

13

Primjer: 23145214531

- - - -

2- - -

23- -

231-

2314

2514

2514 *

2514 *

2514 *

2514 *

2513

2513 *

Broj promašaja: 6

4.2 FIFO (first-in-first-out)

FIFO strategija za izbacivanje odabire stranicu koja je nadulje u radnom spremniku (First-In-First-

Out). [1]

Primjer: 23145214531

- - - -

2- - -

23- -

231-

2314

5314

5214

5214 *

Page 14: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

14

5214 *

5214 *

5234

5231

Broj promašaja: 8

4.3 Second chance

Second chance je jednostavna modifikacije FIFO algoritma. Svakoj od stranica pridružen je jedan bit

koji govori je li se stranica u posljednje vrijeme koristila. Ako je taj bit u nuli, stranica je i stara i nekorištena

te se izbacuje. U slučaju da je taj bit u jedinici, postavlja se u nulu, a stranica se pomiče na kraj reda. [1]

Primjer: 23145214531

- - - - 0000

2- - - 1000

23- - 1100

231- 1110

2314 1111

5314 1000

5214 1100

5214 * 1110

5214 * 1111

5214 * 1111

3214 1000

3214 * 1010

Broj promašaja: 7

Page 15: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

15

4.4 CLOCK (satni algoritam)

Clock algoritam je modifikacija FIFO, tj. Second chance algoritma. Algoritam djeluje tako da se sve

stranice u radnom spremniku slažu u kružnu listu po prispjeću. Prilikom traženja stranice za izacivanje

posebnom se kazaljkom pretražuje lista, počevši odmah iza zadnje učitane stranice u memoriju. Ukoliko

stranica ima oznaku A=1 (koristila se u nekom bliskom trenutku) ta se oznaka postavlja na 0 te se kazaljka

pomiče na sljedeću stranicu. Prilikom učitavanja nove stranice zastavica se postavlja na 1. [1]

Primjer: 23145214531

- - - - 0000

2- - - 1000

23- - 1100

231- 1110

2314 1111

5314 1000

5214 1100

5214 * 1110

5214 * 1111

5214 * 1111

5234 0010

5231 0011

Broj promašaja: 8

Page 16: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

16

4.5 NFU (not frequently used)

NFU algoritam izbacuje stranicu koja se u prošlosti najrijeđe koristila. Svaka stranica u radnom

spremniku ima svoj brojač koji se postavlja u nulu kada se stranica stavlja u radni spremnik. Brojač se

povećava za jedan pri ponovnom korištenju stranice. [1]

Primjer: 23145214531

- - - - 0000

2- - - 0000

23- - 0000

231- 0000

2314 0000

5314 0000

5214 0000

5214 * 0010

5214 * 0011

5214 * 1011

5314 1011

5314 * 1021

Broj promašaja: 7

4.6 LRU (last recently used)

LRU strategija izbacuje stranice koja se najdalje u prošlosti nije upotrebljavala (od engl. Least

Recently Used). Strategija se temelji na prepostavci da će se stranice koje su se bogato koristile u liskoj

prošlosti vrlo vjerojatno koristiti i u bliskoj budućnosti. [1]

Page 17: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

17

Primjer: 23145214531

- - - -

2- - -

23- -

231-

2314

5314

5214

5214 *

5214 *

5214 *

5314

5314 *

Broj promašaja: 7

4.7 RANDOM

Random algoritam iz radne memorije izbacuje slučajno odabranu stranicu. Algoritam ne zahtjeva

pamćenje, a u praktičnoj primjeni pokazao se boljim od FIFO algoritma. [1]

Primjer: 23145214531

- - - -

2- - -

23- -

231-

2314

2514 2

2514 *

2514 *

Page 18: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

18

2514 *

2514 *

3514 1

3514 *

Broj promašaja: 6

Page 19: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

19

5 Program „simradsprem“

Algoritmi zamjena stranica u radnom spremniku pokušavaju predvidjeti buduće zahtjeve za

stranicama na temelju nekih pravilnosti i bliže prošlosti. Svaki algoritam ima svoje prednosti i nedostatke, te

njegova učinkovitost ovisi o zadanom primjeru. Napravljena je simulacija svake strategije zamjene stranica

u radnom spremniku iz prethodnog poglavlja i strategija izrađena genetskim algoritmom.

Zadatak ovog programa je pronalaženje optimalnog omjera korištenja navedenih strategija zamjene

stranica u radnom spremniku, tj. optimalno iskorištavanje prednosti svakog navedenog algoritma.

5.1 Način rada programa

Rad genetskog algoritma za zamjenu stranica u radnom spremniku temelji se na obliku same

jedinke. Jedinka se sastoji od šest brojeva (1-100, 0 ne da ne bi došlo do izgladnjivanja neke od strategija)

koji predstavljaju omjer za svaku od šest već definiranih strategija – FIFO, LRU, NFU, Second chance,

Clock i RANDOM. Tih šest omjera zapravo predstavljaju vjerojatnosti izbora neke strategije za zamjenu

određene stranice u primjeru. Za svaki promašaj izabire se slučajno, ali ovisno o vjerojatnostima, strategija

izbacivanja za baš taj određeni promašaj.

Stvaraju se različite jedinke za početnu populaciju, te se svaka jedinka testira preko

primjer_za_ucenje.txt datoteke koja sadrži niz zahtjeva za stranicama i evaluira. Broja promašaja

predstavlja kvalitetu jedinke prema kojoj se dalje, kao i u svakom genetskom algoritmu, jedinke provlače

kroz selekciju i genetske operatore stvarajući time novu generaciju.

Page 20: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

20

5.2 Osnovni parametri programa

5.2.1 Ključni parametri programa

Moguće je mijenjati ključne parametre programa kao veličina radnog spremnika, broj stranica

(veličina sekundarne memorije) i broj zahtjeva. Promjena dotičnih parametara direktno utječe na samu

kvalitetu jedinki i time na broj promašaja tj. pogodaka koje je pojedina jedinka ostvarila prilikom

referenciranja stranica sekundarne memorije.

5.2.2 Dobrota

Kao što je rečeno, dobrota jedinki određuje njenu kvalitetu i kvalitetu u odnosu na druge jedinke, tj. u

kojoj je mjeri dotična jedinka bolja ili lošija od jedinki iz generacije. Kod genetskog algoritma za zamjenu

stranica u radnom spremniku koristi se broj promašaja ili broj pogodatka koji je dotična jedinka ostvarila pri

zamjeni kao mjera kvalitete.

U slučaju ovog programa odabran je broj promašaja, te će dobrota bolje jedinke biti manja u odnosu

na lošije jedinke.

5.2.3 Selekcija i eliminacija

Kao postupak selekcije odabran je 3-turnirski eliminacijski odabir:

Odabiru se potpuno slučajno tri jedinke

Najlošija se izbacuje

Nova jedinka nastaje križanjem preostalih dviju

Turnirski eliminacijski odabir ima svojstvo elitizma – najbolja jedinka će uvijek biti očuvana (tj. u

ovom slučaju, najbolje dvije jedinke).

Page 21: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

21

5.2.4 Križanje i mutacija

Križanjem se stvara dijete koje uzima na temelju slučajnog odabira od dvije jedinke dobivene tj.

preostale iz selekcije omjere za Clock, Second chance, RANDOM, NFU, LRU i FIFO algoritme. Tako može

nastati jedinka ista jednom ili drugom roditelju, ali i jedinka koja je potpuna mješavina ta dva.

Mutacija mijenja tu istu jedinku nastalu križanjem i zamjenjuje jedan slučajno odabrani omjer od

mogućih šest sa novim slučajnim omjerom. Mutacija nije nužna i odvija se slučajno.

5.3 Rezultati

Za potrebe ispitivanja provedeno je niz pokusa sa različitim ispitnim primjerima i različitim

primjerima za učenje. U tablici 5.3.1 za GA na četiri primjera za učenje navedeni su postotci promašaja na

dva različita tipa ispitnih primjera iste duljine. Primjeri za učenje sastoje se od 16, 64, 128 i 256 zahtjeva.

Zahtjevi idu od 1 do 9. Vrti se 314 generacija i broj jedinki u generaciji je 20 (pretpostavljene optimalne

vrijednosti). Dok u tablici 5.3.2 navedeni su postotci promašaja za sedam navedenih i istraženih algoritama

(RANDOM, FIFO, Second chance, Clock, LRU, NFU i OPT) za već navedena dva različita ispitna primjera

iste duljine radi usporedbe sa dobivenim postotcima riješenja GA. Ispitni primjeri:

1. 39376548642327332386343966528752219181746141314152

2. 46662527772444132437488849326235266355536266624462

Tablica 5.3.1 Postotci promašaja riješenja GA dobivenih na 4 različita primjera za učenje za 2 ispitna primjera

1. 16 zahtjeva 2. 64 zahtjeva 3. 128 zahtjeva 4. 256 zahtjeva

1. 56% 52% 50% 50%

2. 32% 32% 28% 30%

Page 22: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

22

Tablica 5.3.2 Postotak promašaja za dva ispitna primjera

Iz tablica 5.3.1 i 5.3.2 vidi se da je broj promašaja ovisan o ispitnim primjerima, premda su primjeri

iste duljine, te da veličina primjera za učenje kod GA ne čini veliku razliku. Za drugo, razlog leži u činjenici

da primjeri za učenje stvaraju jedinke GA prilagođene određenoj frekvenciji dolaska i izmjene različitih

stranica. Optimalnu jedinku je teško stvoriti i jedinka će uvijek biti najviše prilagođena primjeru za učenje.

Broj promašaja na drugom primjeru je kod svih algoritama, u prosjeku, skoro upola manji od prvog

primjera.

Za tablicu 5.3.3 vide se postotci promašaja za rješanje GA nastalo korištenjem primjera za učenje sa

128 zahtjeva. To riješenje GA u tablici 5.3.1 ima relativno najmanje postotke promašaja. Te se također

koriste isti primjeri za ispitivanje. Mijenja se broj generacija i broj jedinki u populaciji. Ispitni primjeri:

1. 39376548642327332386343966528752219181746141314152

2. 46662527772444132437488849326235266355536266624462

Tablica 5.3.3 nam daje odgovor na optimalne vrijednosti parametara GA broj generacija i broj jedinki

u populaciji. Pokazalo se da je intuitivno bilo točno, tj. optimalan broj generacija je 100-500, te jedinki u

populaciji 20-50.

RANDOM FIFO Second chance Clock LRU NFU OPT

1. 52% 50% 58% 52% 54% 58% 42%

2. 38% 36% 41% 36% 32% 32% 24%

Page 23: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

23

Tablica 5.3.3 Postotak promašaja za različiti broj generacija i jedinki u populaciji GA

Broj generacija: Broj jedinki: 1. 2.

10

10 56% 32%

20 60% 36%

50 56% 34%

100 56% 32%

100

10 54% 34%

20 50% 30%

50 52% 28%

100 54% 32%

500

10 54% 36%

20 52% 32%

50 54% 30%

100 58% 34%

1000

10 54% 36%

20 54% 32%

50 56% 34%

100 58% 36%

Page 24: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

24

Kod tablice 5.3.4 uzimaju se optimalne vrijednosti dobivene na temelju navedenih ispitivanja. Broj

generacija GA je 250, broj jedinki u populaciji je 30, te se korisi primjer za učenje od 128 zahtjeva. Tablica

prikazuje postotke promašaja za optimalne vrijednosti GA na različitim primjerima različitih duljina i

postotke promašaja za navedene algoritme radi usporedbe. Ispitni primjeri:

1. 23632646727263717135

2. 38645273257673236257738282837273457236347233726547

3. 99828732379837732324836374734554672762354778788177727368247346387648237468274

382882828374838232838845

4. 34596342319911983748388773492982374476462874748728736482374688178171733684648

83478454582374899876666372772255511828721818172638163818126381638263862361826

3861288882181622262799191928379462236348

GA Random FIFO Second chance Clock LRU NFU OPT

1. 35% 45% 45% 45% 45% 40% 40% 35%

2. 46% 48% 54% 46% 52% 56% 64% 32%

3. 39% 44% 45% 42% 45% 51% 36% 29%

4. 38% 42% 45% 36% 44% 41% 54% 30%

Tablica 5.3.4 Postotci promašaja na četiri testna primjera

Page 25: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

25

Slika 5.3.1 graf postotaka svih algoritama naćinjen na temelju tablice 5.3.4

Iz tablice 5.3.4 i grafa sa slike 5.3.1 mogu se očitati u prosjeku postotci za svaki od algoritama. OPT

algoritam radi oko 30% promašaja, zatim slijedi GA sa oko 40%. RANDOM, Second chance, LRU i NFU

imaju oko 45%, premda LRU i NFU imaju drastičnije varijacije, te za neke primjera daju veoma dobre dok

za druge iznimno loše rezultate. Na kraju dolaze FIFO i Clock sa oko 50%.

Page 26: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

26

6 Zaključak

Od postojećih strategija najboljim su se pokazale NFU i LRU strategije, te je dokazana činjenica da

je RANDOM strategija u praksi često bolja od FIFO i srodnih strategija Second chance i Clock.

Genetskim algoritmom dobivene jedinke su bolje u velikoj većini slučajeva od već izrađenih

strategija, premda su poprilično daleko od optimalnih vrijednosti. Pokazano je da poprilično ovise o

primjerima za učenje i nije uvijek istinito da duži primjer daje bolju kvalitetu jedinki. Ako su primjeri za

učenje sličniji primjeru za testiranje, kraći primjeri za učenje mogu dati bolja rješenja.

Page 27: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

27

7 Literatura

1.1 Page replacment algorithm, http://en.wikipedia.org/wiki/Page_replacement_algorithm

1.2 Bahrudin Hrnjica, 16.8.2007., Genetic programming – Genetsko programiranje (GP),

http://bh.datasoft.com.ba/?p=66

1.3 McCraw, TI. Virtual Memory Page Replacement Algorithms, CS384 – Operating Systems. Milwaukee

School of Engineering, 2005.

1.4 Balenović, NB. Pronalaženje strategije zamjene stranica u radnom spremniku uz pomoć genetskog

programiranja. Završni rad. FER, 2008.

1.5 Ivošević, MI. Genetski algoritmi u likovnoj umjetnosti. Seminarski rad. FER, 2008.

Page 28: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

28

8 Sažetak

U radu je opisan princip rada i ideja genetskog algoritma. Detaljno je opisano genetsko

programiranje kao generalizacija genetskih algoritama. Opisani su elementi i pojmovi vezani uz genetsko

programiranje (odabir podatkovnih i funkcijskih elemenata rješenja, funkcija dobrote, početna populacija,

selekcija, eliminacija, genetski operatori, itd.).

Nadalje, opisan je razlog problema zamjena stranica u radnom spremniku, te pregled već postojećih

strategija zamjena stranica (OPT, FIFO, LRU, NFU, Second chance, Clock i RANDOM).

U nastavku opisano je ostvarenje strategije zamjena stranica u radnom spremniku putem genetskog

algoritma. Opisan je način rada programa, njegovi osnovni parametri. Zabilježeni su i analizirani rezultati

koji se koriste za procijenu kvalitete rada samog programa. Procjenjen je rad i korisnosti već postojećih

strategija zamjena stranica.

Page 29: Sadržaj - Ruđer Bošković Institute · Full metoda Poput grow metode, ali je unaprijed definirano na kojoj se minimalnoj dubini stabla mogu početi pojavljivati završni čvorovi

29

9 Abstract

Title: Obtaining primary memory page replacment strategy with genetic algorithm

This paper describes principle and idea of genetic algorithm. Genetic programming is described in

detail as a generalization of genetic algorithms. Elements and concepts (i.e. data and functional elements

solution choice, fitness function, initial population, selection, elemination, genetic operators, etc.) of genetic

programming are also described.

Furthermore, a description of page replacement in virtual memory problem and overview of existing

strategies (OPT, FIFO, LRU, NFU, Second chance, Clock i RANDOM) is included.

In the latter part of the paper strategy of page replacement in virtual memory using genetic algorithm

is achieved. Program workflow and its basic parameters are described. The obtained results which are

recorded and analized are used for program quality assassment. Quality of existing strategies is evaluated.

Key words: page replacment algorithms, genetic algorithm