Čvor u grafu naziva se vrh (množina - vrhovi). Ponekad se još naziva čvorom; može se nazvati i točkom. Poveznica u grafu naziva se rub. Ponekad se još uvijek naziva poveznicom; može se nazvati i linijom.
Grafikon s mnogim značajkama
Ova slika prikazuje grafikon s mnogim značajkama:
Kružnice (diskovi) su vrhovi. Bilo koja ravna crta ili zakrivljena crta ili petlja je rub.
Značajke grafikona
Vrh
Vrh je objekt. To može biti kuća; to može biti osoba; to može biti apstraktna imenica; to može biti bilo koji objekt kojeg se možete sjetiti.
Rub
Rub je veza (relacija) između dva vrha; veza može biti apstraktna.
Petlja
Petlja je rub koji povezuje vrh sa sobom.
Arrow Edge
Razmotrimo dvoje ljudi: Ivana i Petra. Ako Ivan posudi Petru 100 dolara i ako su Ivan i Petar vrhovi, tada će posuđeni rub biti usmjeren prema Petru. Ako oba partnera zaborave da Peter duguje Johnu, a Peter posudi Ivanu 100 dolara, na drugom kraju istog ruba vrh strelice usmjerit će prema Johnu. Kad bi Peter posudio Ivanu samo 75 dolara, a ne 100 dolara, tada bi drugi rub povezao Petra s Ivanom. Ovaj drugi rub imat će vrh strelice usmjeren prema Ivanu. U drugom su slučaju dva ruba, s po jednim vrhom strelice, usmjerenim u suprotnim smjerovima.
Vrh na koji usmjerava rub je tjeme glave za taj rub. Vrh s kojeg odlazi rub, je repni vrh.
Incident
Rub povezuje dva vrha. Za rub se kaže da pada na bilo koji vrh. Rub ne mora imati vrh strijele. Ta su dva vrha poznata kao krajnje točke ruba. Moguće je imati graf gdje vrh ne pripada nijednom rubu, ali to neće biti razmatrano u ovom vodiču.
Neusmjereni grafikon
Rub može biti strelica, ili ne može. Grafikon na kojem nijedan rub nije strelica neusmjereni je graf. Rub može biti predstavljen ravnom crtom ili krivuljom ili petljom.
Usmjereni grafikon
Grafikon gdje je svaki rub strelica (smjer) usmjereni je graf. Rub strelice može se predstaviti ravnom crtom s vrhom strelice ili krivuljom s vrhom strelice ili petljom s vrhom strelice.
Odsutnost smjera na rubu neusmjerenog grafa znači da je svaki rub neusmjerenog grafa dvosmjeran.
Stupanj vrha
Broj rubova koji su upadni na vrh je stupanj vrha. Petlja ima dvije incidence na vrhu, pa se petlja broji dva puta.
Redoslijed grafikona
Redoslijed grafa je broj vrhova u grafu.
Multigraf
Multigraf je graf, gdje za neke parove vrhova postoji više od jednog ruba. Neusmjereni multigraf je takav graf u kojem rubovi nemaju smjer (nisu strelice). Usmjereni multigraf je onaj gdje je svaki rub strelica, a za parove vrhova koji imaju više od jedne strelice, jedan vrh je rep tih strelica, a drugi vrh glava istih strelica. Sljedeći dijagram prikazuje neusmjereni multigraf:
Više od jednog ruba (tj.e. više bridova) za par vrhova nazivaju se i paralelnim bridovima.
Tobolac
Tobolac je multigraf koji omogućuje petlje (jednu ili više petlji). Neki multigrafi ne dopuštaju petlje.
Jednostavan grafikon
Jednostavan graf je graf na kojem niti jedan par vrhova nema više bridova. Petlje nisu dopuštene u jednostavnom grafikonu.
Prazan grafikon
Prazan graf je graf bez vrhova pa tako i bez rubova.
Mješoviti grafikon
Mješoviti graf je graf gdje su neki rubovi strelice, a drugi nisu; drugim riječima: neki rubovi imaju upute, a drugi nisu usmjereni.
Ponderirani grafikon
Moguće je imati graf u kojem je svakom rubu dodijeljen broj, poznat kao težina. Neki rubovi imaju isti broj, ali brojevi su uglavnom različiti. Takav se graf naziva ponderirani graf. Brojevi za određeni graf mogu predstavljati duljinu ili troškove (cijene) ili neku veličinu, ovisno o problemu.
Nepristojan i izvanravanjski
Rječnik, stepen i stepen primjenjivi su samo na usmjereni graf. Graf može i ne mora biti multigraf. Grafikon može imati ili nema petlje.
Broj vrhova strelica povezanih s vrhom je stepen tog vrha. Strijela s jednim vrhom strijele ima završetak glave i rep. Broj repova povezanih s vrhom izvan je stupnja tog vrha.
Napomena: Grafikon s više rubova za par vrhova, gdje su više bridova u suprotnim smjerovima, nije obrađeno u ovom vodiču.
Softverski prikaz grafa
Graf se može predstaviti u softveru onako kako je nacrtan na dijagramu. Graf se u softveru može prikazati i matematičkom matricom (dvodimenzionalni niz). Jedna od takvih matrica naziva se matrica susjedstva.
Matrica susjedstva
Matrica susjedstva je kvadratna matrica. Naslovi redaka su svi vrhovi napisani uzlaznim redoslijedom. Naslovi stupaca i dalje su isti vrhovi, napisani uzlaznim redoslijedom. Brojanje redaka ili stupaca matrice započinje od 1, a ne od nule kao kod nizova. Pri identificiranju elementa u matrici, broj retka zapisuje se prvo prije broja stupca.
Za neusmjereni graf, svaki unos (element) u matrici susjedstva je broj bridova koji povezuju dva odgovarajuća vrha. Petlju treba brojati dva puta. Za usmjereni graf svaki unos u matrici susjedstva je ili broj bridova koji napuštaju vrh reda i ulaze u odgovarajući vrh stupca ili je broj bridova koji napuštaju vrh stupa i ulaze u odgovarajući vrh reda. Izbor je na izboru programera. U ovoj situaciji (u oba slučaja), petlju i dalje treba brojati jednom.
Napomena: Grafikon je dijagram sam po sebi struktura podataka. Matrica susjedstva također je sama po sebi struktura podataka.
Neusmjereni grafikon i matrica susjedstva
Sljedeći dijagrami prikazuju neusmjereni graf i odgovarajuću matricu susjedstva:
Vodeća dijagonala matrice je dijagonala od gore lijevo dolje desno. Neusmjerena matrica simetrična je oko vodeće dijagonale. Unos matrice za redak A i stupac C je 1, što znači da postoji jedan rub koji povezuje vrh A i vrh C. Unos matrice za redak C i stupac B je 3, što znači da postoje 3 ruba koji povezuju vrh C i vrh B. Ostali unosi objašnjeni su na sličan način.
Zbroj unosa za red daje broj bridova (stupanj) za odgovarajući vrh. Zbroj unosa za redak A je 2, što znači da su 2 ruba povezana s vrhom A. Zbroj unosa za redak B je 6, što znači da je 6 bridova povezano s vrhom B. Ostali unosi objasnjeni su na sličan način.
Usmjereni grafikon i matrica susjedstva
Sljedeći dijagrami prikazuju usmjereni graf i odgovarajuću matricu susjedstva:
Matrica susjedstva za usmjereni graf nije nužno simetrična u odnosu na vodeću dijagonalu. Unos matrice za redak A i stupac C je 1, što znači da jedan rub prelazi iz vrha A u vrh C. Unos matrice za redak C i stupac B je 3, što znači da 3 ruba napuštaju od vrha C do vrha B. Ostali unosi objašnjeni su na sličan način.
Zbroj unosa za stupac daje indegre za vrh (stupac). Zbroj unosa u retku daje stupanj za vrh (redak). Zbroj unosa za stupac A je 1, što znači da je jedan rub usmjeren na vrh A. Zbroj unosa za redak B je 2, što znači da 2 ruba napuštaju vrh B. Ostali unosi objasnjeni su na sličan način.
Grafičke operacije
Struktura podataka, poput grafa, sastoji se od skupa vrijednosti podataka ili skupa objekata, plus odnos između objekata, plus operacije (funkcije) između objekata. Odnosi na grafikonu označeni su rubovima. Nakon toga, graf bi trebao imati najmanje sljedeće operacije:
susjedni (G, x, y)
G znači graf. Ova operacija provjerava povezuje li rub vrh x i vrh y. Vrijednost i položaj unosa u matrici ukazuju na povezanost ruba (i njegovu vrstu).
susjedi (G, x)
Ova operacija vraća popis svih vrhova koji su izravno povezani s vrhom x. Vrijednost i položaj unosa u matrici ukazuju na vezu ruba.
remove_vertex (G, x)
Ova operacija uklanja vrh x s grafa. Ako vrh nije imao rub, nema problema. Međutim, ako je vrh imao poveznice, tada bi trebalo ukloniti i poveznice (rubove). Vrijednost i položaj unosa u matrici ukazuju na prisutnost određenog vrha. Ako se vrh ukloni, matricu je potrebno prilagoditi.
add_vertex (G, x)
To dodaje vrh, x bez dodavanja bridova, ili zamjenjuje vrh koji je imao rubove, ali je uklonjen. Vrijednost i položaj unosa u matrici ukazuju na prisutnost određenog vrha. Ako se doda vrh, matrica se mora prilagoditi.
add_edge (G, x, y)
Ova operacija dodaje novi rub između vrha x i vrha y ako ruba nije bilo. Vrijednost i položaj unosa u matrici ukazuju na prisutnost određenog ruba. Ako se doda rub, matrica se mora prilagoditi.
remove_edge (G, x, y)
Ovom bi se operacijom uklonio rub između vrha x i vrha y da je tamo rub. Vrijednost i položaj unosa u matrici ukazuju na prisutnost određenog ruba. Ako se rub ukloni, matricu je potrebno prilagoditi.
get_vertex_value (G, x)
Ova operacija vraća vrijednost, v povezanu s vrhom, x. Da biste to postigli, potreban vam je power set podskupova za vršne oznake i njihove vrijednosti.
set_vertex_value (G, x, v)
Ova operacija daje novu vrijednost, v za vrijednost povezanu s vrhom, x. Da biste to postigli, potreban vam je power set podskupova za vršne oznake i njihove vrijednosti.
Neki grafovi pridružuju vrijednosti i svojim rubovima. Takvi grafikoni trebaju sljedeće dodatne operacije:
get_edge_value (G, x, y)
Ova operacija vraća vrijednost, v povezanu s rubom, (x, y). Da biste to postigli, potreban vam je skup podskupova snage za rubove i njihove vrijednosti.
set_edge_value (G, x, y, v)
Ova operacija daje novu vrijednost, v za vrijednost povezanu s rubom, (x, y). Da biste to postigli, potreban vam je skup podskupova snage za rubove i njihove vrijednosti.
Zaključak
Graf je skup vrhova povezanih bridovima. Grafikon može biti usmjeren ili usmjeren. Rubovi mogu biti neusmjereni ili usmjereni. Petlje mogu biti prisutne ili odsutne na grafikonu. Ono što biste trebali sljedeće naučiti je postavljanje, podešavanje snage i multiset povezani s grafikonima. Nakon toga trebali biste naučiti različite vrste grafova, kao što su orijentirani graf, redoviti graf, cjeloviti graf, bipartitni graf, turnirski graf, graf mreže protoka itd.
Chrys
O autoru
Krizanta Forcha
Otkrivač integracije matematike iz prvih načela i srodnih serija. Magistar tehničkog obrazovanja, specijalizirao se za elektroniku i računalni softver. Dipl. Elektronika. Također imam znanje i iskustvo na magistarskoj razini iz računarstva i telekomunikacija. Od 20 000 pisaca, bio sam 37. najbolji pisac u devarticlesu.com. Na tim poljima radim više od 10 godina.
Pogledajte sve postove