Click here to load reader

seminarski rad - grafovi i njihova primena

  • View
    1.037

  • Download
    26

Embed Size (px)

Text of seminarski rad - grafovi i njihova primena

I Uvod Osnovni pojmovi

U raunarstvu se susreemo s dva osnovna pojma:

strukture podataka - statiki aspekt nekog programa. Ono sa ime se radi. algoritmi - dinamiki aspekt programa. Ono to se radi.

Strukture podataka i algoritmi su u neraskidivoj vezi: nemogue je govoriti o jednom a da se ne spomene drugo. Struktura podataka je skup varijabli u nekom program i veza meu tim varijablama Algoritam je konani niz instrukcija, od kojih svaka ima jasno znaenje i moe biti izvrena u konanom vremenu. Iste instrukcije mogu se izvriti vie puta, pod pretpostavkom da same instrukcije ukazuju na ponavljanje.

ALGORITAM + STRUKTURA PODATAKA = PROGRAM

U programiranju je vano definisati jo neke elementarne pojmove tip podatka i apstaraktni tip podatka (ATP). Tip podataka - skup vrednosti koje neki podatak moe poprimiti (npr. podatak tipa int moe imati samo vrednosti iz skupa celih brojeva koji se mogu predstaviti u raunaru). Apstraktni tip podataka (ATP) - zadaje se navoenjem jednog ili vie tipova podataka, te jedne ili vie operacija (funkcija). Opertori i rezultati navedenih operacija su podaci navedenih tipova. Meu tipovima postoji jedan istaknuti po kojem celi apstraktni tip podataka dobija ime.

1

PROBLEM

Matematiki model Neformalno opisani globalni algoritam reavanja problema

Apstraktni tipovi podataka Globalni algoritam zapisan u pseudokoodu (poziva funkcije iz ADT)

Strukture podatakaGlobalni algoritam zapisan u prog. jeziku (operacije iz ADT pretvorene u funkcije)

REENJE

Iz ovog dijagrama vidi se uloga apstraktnih tipova podataka, struktura podataka i algoritama u postupku reavanja problema. Takoe se vidi da se programiranje u podjednakoj meri sastoji od razvijanja struktura podataka kao i od razvijanja algoritama.

1. Strukture podataka

Struktura podataka se sastoji od manjih celina koje se udruuju u vee i meusobno povezuju vezama. Uvodimo posebne nazive za celine, naine udruivanja i naine povezivanja. Takode, uvodimo pravila kako se strukture prikazuju dijagramima. elija je varijabla koju promatramo kao zasebnu celinu.To je relativan pojam (neto se u jednom trenutku moe smatrati elijom, a kasnije se moe gledati unutranja graa iste celine). Svaka elija ima svoj tip i adresu.

2

Polje (array) je mehanizam udruivanja manjih delova strukture u vee. Polje ini vie elija istog tipa sauvanih na uzastopnim adresama. Broj elija je unaprijed zadat i nepromjenljiv. Jedna elija se zove element polja i jednoznano je odreena pripadajuom vrijednou indeksa.

Zapis - (slog). Takoe mehanizam udruivanja manjih dijelova strukture u vee. Zapis ini vie elija, koje ne moraju biti istog tipa, ali koje su sauvane na uzastopnim adresama. Broj, redosled i tip elija je unapred zadat i nepromenjiv. Pojedina elija se zove komponenta zapisa. Polja i zapisi se mogu kombinovati. Na primer, moemo imati polje zapisa, zapis ije pojedine komponente su polja, polje od polja, zapis ija komponenta je zapis, i slino. Pointer - slui za uspostavljanje veze izmeu delova strukture. Pointer je elija koja pokazuje na neku drugu eliju. Sadraj pointera je adresa elije na koju pokazuje. Kursor - takoe slui za uspostavljanje veze izmeu delova strukture. Kursor je elija tipa int koja pokazuje na element nekog polja. Sadraj kursora je indeks elementa na koji pokazuje. Strukture podataka moemo podeliti: 1) Prema relacijama elemenata na: Linearne ( jedan element je u vezi sa jo najvie dva elementa, primer nizovi I

liste ) Nelinearne ( jedan element moe biti u vezi sa vie elemenata, primer stabla I

grafovi ) 2) Prema mogunosti promene veliine na: Statike ( nizovi, sa prethodno definisanim brojem elemenata ) 3

Dinamike ( pokazivai reference )

2. Nelinearne strukture podataka

Kada jedan element strukture moe biti u vezi sa vie od dva druga elementa, takva struktura podataka je nelinearna (viedimenzionalna) struktura. Memorijska reperezentacija ovakvih struktura je najee ulanana, ali moe biti i sekvencijalna. Nelinearne strukture su stable I grafovi.

3. Grafovi I njihova primena

Grafovi su matematiki objekti koje veoma esto sremo u svakodnevnom ivotu. Ako posmatramo neku geografsku mapu sa mnotvom gradova koji su povezani nekim putevima dobijamo jedan graf. U skupu ljdi na nekom predavanju neki se meusobno poznaju, a neki ne pa ako sve ljude predstavimo takicama, a samo one koji se poznaju spojimo linijama dobemo jedan graf, koji nam daje dobru sliku poznanstva meuu ljudima na tom predavnju. Zbog velikog spektra primena, kao i izuzetno jednostavne veze definicije i osnovnih svojstava, grafovi su nali i veliku primenu ne samo u drugim matematikim oblastima poput kombinatorike, kombinatorne optimizacije, operacionih istraivnja, linearne algebre, kompleksne analize, nego i u drugim (nematematikim) naukama kao to su elektrotehnika, raunarstvo, hemija, fizika, biologija, sociologija, vojne nauke...

3.1.

Teorije grafova

4

Prvi problem i njegovo reenje izneseni na nain koji je drugaiji u odnosu na prethodne i moe se smatrati preteom teorije grafova jeste rad Leonarda Ojlera pod nazivom Sedam mostova Kenigsberga1, objavljen 1736. Keningsberg, danas poznat pod nazivom Kalinjingrad je ruska enklava na Baltiku smetena izmeu Poljske i Litvanije. Sam grad je u prolosti imao sedam mostova koji su povezivali dva ostrva unutar grada s ostatkom grada. Postavljeno je pitanje Je li mogue prei preko svakog od mostova samo jednom i vratiti se na poetnu tku? 2 Ovo je pitanje zainteresovalo Leonarda Ojlera koji je 1763. godine i dao konaan odgovor na ovo pitanje.

Slika 1. Ostrva Keninsberga

Kako bi doao do svog reenja, Ojler je celi problem predstavio u obliku teorije grafova. Prvo je izbacio sve karakteristike terena osim samih kopnenih masa i mostova koji ih povezuju. Nakon toga, svaku je zemljanu masu predstavio takom koja se naziva vor, i svaki most s linijom, nazvanom luk ili veza (link). Dobijena matematika struktura se naziva grafom.

Frensis Gutri je 1852. godine je izloio problem etiri boje koji postavlja pitanje da li je mogue obojiti zemlje na geografskoj karti sa samo etiri boje, a da se ne pojave dve susedne zemlje obojene istom bojom. Ovaj problem su reili tek 1976. godine Kenet Apel i Volfgang Heken, ali se postavljanje ovog problema smatra roenjem teorije grafova. Tokom pokuaja1

Do dananjih dana su se odrala samo dva mosta iz Eulerovog vremena. Dva su mosta unitena tijekom saveznikog

unitavanja Koeningsberga u Drugom svjetskom ratu, druga dva su unitili Rusi i zamijenili ih autocestama. Jedan su most tijekom 1935. godine ponovno izgradili Njemci.2

Inae, postoji urbana legenda kako su oko 1750. godine brojni ugledni stanovnici tadanjeg Keningsberga nedeljom u svojim

popodnevnim etnjama pokuavali prei mostove na opisani nain.

5

reavanja ovog problema otkrivene su mnoge teoreme i postavljeni mnogi teoretski pojmovi i koncepti.

3.2.

Definicija grafa

Graf je apstraktni matematiki objekat. Neformalno govorei, grafovi su sastavljeni od taaka, odnosno vorova (vrhova) i linija meu njima, odnosno grana.

Slika 2. Grafika predstava grafa Skup vorova moemo obeleiti sa V, a skup grana sa E.

Definicija Graf G je uredeni par G = (V,E), gdje je V neprazan skup vorova, a E je skup grana.

Svaka grana e E spaja dva vora u, v V koji se zovu krajevi od e. Grana iji se krajevi podudaraju zove se petlja, a ako dve ili vie grane povezuju isti par vorova, zovu se viestruke grane. Ako graf sadri viestruke grane, zove se multigraf, a ako nema ni petlji ni viestrukih grana, zove se jednostavan graf. Broj vorova u grafu oznaavamo sa v(G), a broj grana sa e(G).

6

Stepen vora je broj grana s kojima je vor spojen, tj. koji su incidentni voru. Kod usmerenih grafova izlazni stepen je broj grana koje izlaze iz vora, a ulazni stepen je broj grana koje ulaze u vor. Vrlo esto se javlja potreba da svakoj grani e grafa G pridruimo realan broj w(e) koji zovemo teina grane e. Takav graf zovemo teinski graf. Graf je povezan (engl. connected) ako se svaka dva vora mogu povezati nekim putem. U suprotnom, on je nepovezan (engl. disconnected). Potpuni graf (engl. complete graph) je onaj u kome su svi vorovi meusobno povezani tano jednom granom. Retko, u potpunom grafu moe izostati grana koji povezuje vorove sa njima samima. Razlikujemo guste (engl. dense) i retke (engl. sparse) grafove. Oni grafovi koji su skoro potpuni samtraju se gustim, a oni u kojima je svakom voru susedno svega nekoliko grana smatramo retkim. Za graf kaemo da je izomorfan (engl. graph isomorphism) ako vai sledee: Neka za zadata dva grafa (G1 i G2) postoji bijektivna funkicija f koja svakom voru G1 pridruuje vor G2. Osim toga, mora vaiti da je broj grana koje povezuju neka dva vora x i y iz G1 jednak broju vorova koji povezuju vorove f(x) i f(y) u G2. Jednostavnije reeno, ako dva grafa G1 i G2 nacrtani mogu dati istu sliku, smatramo da su oni izomorfni. Graf je planaran (engl. planar graph) ako se moe nacrtati u ravnini bez da mu se grane seku. Grafovi se mogu podeliti na usmerene i neusmerene. Osnovna razlika izmeu usmerenih i neusmerih grafova je u tome to je grana u usmerenom grafu ureeni par vorova. Usmereni grafovi esto se nazivaju i digrafovima. Stoga, za granu X = (A, B) kaemo da povezuje vor A sa vorom B, ali ne nuno i obrnuto. Kaemo da grana X poinje u voru A, a zavrava u voru B. Usmereni acikliki graf je onaj graf koji u sebi ne sadri ciklus. Graf sa slike 3 primer je takvog grafa.

7

Slika 3. Primer usmerenog grafa

3.3.

Predstavljanje grafa na racunaru

Kako ni u jednom od najpopularnijih programskih jezika graf ne postoji kao tip podatka, ako elimo da ga predstavimo moramo to uraditi preko postojeih tipova, pri emu je bitno da to efikasnije opiemo topologij

Search related