Algoritmai ir duomenų struktūros (ADS) 7 paskaita Saulius Ragaišis, VU MIF

Panašūs dokumentai
PowerPoint Presentation

4 skyrius Algoritmai grafuose 4.1. Grafų teorijos uždaviniai Grafai Tegul turime viršūnių aibę V = { v 1,v 2,...,v N } (angl. vertex) ir briaun

Algoritmø analizës specialieji skyriai

PowerPoint Presentation

Algoritmai ir duomenų struktūros (ADS) 2 paskaita Saulius Ragaišis, VU MIF

Slide 1

Slide 1

Slide 1

Microsoft Word - 15_paskaita.doc

Printing triistr.wxmx

GRAFŲ TEORIJA Pasirenkamasis kursas, Magistrantūra, 3 sem m. rudens semestras Parengė: Eugenijus Manstavičius Įvadas Pirmoji kurso dalis skirta

Lietuvos mokinių matematikos olimpiada Rajono (miesto) etapo užduočių klasei sprendimai 2015 m. 1 uždavinys. Aistė užrašė skaičių seką: 1 (2 3)

DISKREČIOJI MATEMATIKA. Grafai serija 5800 variantas 001 Grafas G 1 = (V, B 1 ) apibrėžtas savo viršūnių bei briaunų aibėmis: V = {i, p, z, u, e, s},

MatricosDetermTiesLS.dvi

Atranka į 2019 m. Pasaulinę ir Vidurio Europos matematikos olimpiadas Sprendimai Artūras Dubickas ir Aivaras Novikas 1. Mykolas sugalvojo natūraliųjų

Microsoft PowerPoint Dvi svarbios ribos [Read-Only]

QR algoritmas paskaita

Neiškiliojo optimizavimo algoritmas su nauju bikriteriniu potencialiųjų simpleksų išrinkimu naudojant Lipšico konstantos įvertį

TAIKOMOJI MATEMATIKA. 1-ojo testo pavyzdžiai serija **** variantas 001 x x + 12 lim = x 4 2x 8 1 2; 3 0; 2 1 2; 5 1; 6 2; 7 ; riba nee

vadovDM.dvi

Dažniausios IT VBE klaidos

Microsoft Word - T-Krivousas_magistrinis.doc

Pagrindiniai algoritmai dirbant su sveikųjų ir realiųjų skaičių masyvų reikšmėmis Sumos skaičiavimo algoritmas Sveikieji skaičiai int Suma (int X[], i

Printing AtvirkstineMatrica.wxmx

lec10.dvi

TIESINĖ ALGEBRA Matricos ir determinantai Matricos. Transponuota matrica. Nulinė ir vienetinė matrica. Kvadratinė matrica. Antrosios ir trečiosios eil

Printing BaziniaiSprendiniai&KrastutiniaiTaskai.wxm

DB sukūrimas ir užpildymas duomenimis

Masyvas su C++ Užduotys. Išsiaiškinkite kodą (jei reikia pataisykite) ir paleiskite per programą. Ciklo skaitliuko įrašymas į vienmatį masyvą: #includ

Programų sistemų inžinerija Saulius Ragaišis, VU MIF

LIETUVOS JAUNŲJŲ MATEMATIKŲ MOKYKLA 7. PAPRASČIAUSIOS DIFERENCIALINĖS LYGTYS ( ) Teorinę medžiagą parengė ir septintąją užduotį sudarė prof. d

L I E T U V O S J A U N Ų J Ų M A T E M A T I K Ų M O K Y K L A 2. TRIKAMPIŲ ČEVIANOS ( ) Teorinę medžiagą parengė ir antrąją užduotį sudarė V

Algebra ir geometrija informatikams. Paskaitu¾ konspektas Rimantas Grigutis 7 paskaita Matricos. 7.1 Apibr eµzimas. Matrica A yra m eiluµciu¾ir n stul

9 paskaita 9.1 Erdvės su skaliarine daugyba Šiame skyriuje nagrinėsime abstrakčias tiesines erdves, kurioms apibrėžta skaliarinė daugyba. Jos sudaro l

Slide 1

(Microsoft Word - Pasiruo\360imas EE 10 KD-1)

10 Pratybos Oleg Lukašonok 1

Standartinių gamybinių operacijų brėžiniai, sutartiniai žymėjimai 1

1

* # * # # 1 TIESĖS IR PLOKŠTUMOS 1 1 Tiesės ir plokštumos 1.1 Lygtys ir taškų aibės Sferos lygtis Tarkime, kad erdvėje apibrėžta Dekarto stačiak

274 PRIEDAI K priedas. Elektroninio vartotojo gyvavimo ciklo tyrimo duomenų charakteristikos K.1 lentelė. Klausimyno dalies, skirtos elektroninio vart

Vigirdas Mackevičius 2. Sekos riba Paskaitu konspektas Intuityviai realiu ju skaičiu seka vadinama realiu ju skaičiu aibė, kurios elementai (vadinami

MATEMATIKOS BRANDOS EGZAMINO PROGRAMOS MINIMALIUS REIKALAVIMUS ILIUSTRUOJANTYS PAVYZDŽIAI Egzamino programos minimalūs reikalavimai 1.3. Paprastais at

Microsoft Word - DSEA-3s.doc

Banko_paslaugu_internetu_teikimo_salygos_

VI. TOLYDŽIU IR DIFERENCIJUOJAMU FUNKCIJU TEOREMOS 6.1 Teoremos apie tolydžiu funkciju tarpines reikšmes Skaitytojui priminsime, kad nagrinėdami reali

DISKREČIOJI MATEMATIKA. Grafo tyrimas serija 5705 variantas Grafas (, ) yra 1 pilnasis; 2 tuščiasis; 3 nulinis; 4 dvidalis. 2 Atstumas tarp graf

Priedai_2016.indd

Microsoft PowerPoint Ekstremumai_naujas

Duomenų vizualizavimas

DVYLIKTOJI KALĖDINĖ KOMANDINĖ RASEINIŲ KRAŠTO OLIMPIADA PROFESORIAUS JONO KUBILIAUS TAUREI LAIMĖTI Raseiniai, Magdalena Raseiniškė mėgst

Teorinių kontrolinių sąlygos ir sprendimai Vytautas Kazakevičius 2016 m. gruodžio 20 d. Teiginiai ( ). 1. (0.05 t.) Užrašykite formule tokį t

KTU BIBLIOTEKOS PASLAUGOS

Projektas „Europos kreditų perkėlimo ir kaupimo sistemos (ECTS) nacionalinės koncepcijos parengimas: kreditų harmonizavimas ir mokymosi pasiekimais gr

TAIKOMOJI MATEMATIKA IR KIEKYBINIAI METODAI. Rašto darbas serija 3081 variantas Nustatykite funkcijos f(x) = x+2 x 6 cos ( 3x) apibrėžimo sritį.

III. SVEIKI NENEIGIAMI SKAIČIAI 3.1 Indukcijos aksioma Natūraliu ju skaičiu aibės sa voka viena svarbiausiu matematikoje. Nors natūralaus skaičiaus sa

1

CompoundJS Node on rails

LT L 202/54 Europos Sąjungos oficialusis leidinys EUROPOS CENTRINIS BANKAS EUROPOS CENTRINIO BANKO SPRENDIMAS 2009 m. liepos 17 d. iš dalies

SUSITIKIMO VIETA – NAUJAS ITALIJOS LIETUVIŲ TINKLAPIS

PS_riba_tolydumas.dvi

Magistro darbas

PRIEINAMAS TURIZMAS-TURIZMAS VISIEMS UNIVERSALUS DIZAINAS: TEORIJA IR PRAKTIKA

UAB NAUJASIS TURGUS PREKYBOS VIETŲ KAINOS NUSTATYMO METODIKA UAB Naujasis turgus užsakymu parengė UAB Eurointegracijos projektai Vilnius,

Microsoft Word - DV_Rekomendacijos2

Brandos egzaminų organizavimas ir vykdymas 2012 m.

LIETUVOS RESPUBLIKOS SEIMO KONTROLIERIUS PAŽYMA DĖL X SKUNDO PRIEŠ ROKIŠKIO RAJONO SAVIVALDYBĖS ADMINISTRACIJĄ Nr. 4D-2017/2-644 Vilnius SK

PATVIRTINTA

Kelmės rajono Kražių gimnazija Įmonės kodas , S.Dariaus ir S. Girėno g.2, Kražiai, Kelmės rajonas 2016 m. kovo 18 d. FINANSINIŲ ATASKAITŲ AIŠ

Automatinis skolinimas Automatinio skolinimo paslauga automatiškai teikia pasiūlymus paskolų prašymams pagal Jūsų sukurtuose portfeliuose pasirinktus

PowerPoint Presentation

Realių lėktuvų skrydžių atvaizdavimas pagal turimus radaro duomenis

Microsoft Word - Kontrabandos tyrimo apzvalga 2010+gk.doc

TECHNINIAI DUOMENYS Pramoniniai vartai

XI skyrius. KŪNAI 1. Kūno sa voka Šiame skyriuje nagrinėsime kūnus. Kūnas tai aibė k, kurioje apibrėžti aibės k elementu du vidiniai kompozicijo

LIETUVOS BANKO VALDYBOS

BASEINO OCTO+ 460, 540, 640 IR 840 MODELIO, AIKŠTELĖS PARUOŠIMAS IR MEDINIO KARKASO SURINKIMAS + LENTJUOSTES MONTAVIMAS + PATIESALO MONTAVIMAS Atlikit

Prašymo taikyti galutinio vartojimo, laikinojo įvežimo, laikinojo įvežimo perdirbti ir laikinojo išvežimo perdirbti langeliuose įrašomi duomenys: 1. P

Microsoft Word - mb lt _2_.doc

Microsoft Word - Copy of Magistrinis.doc

C(2016)7159/F1 - LT (annex)

Kauno menų darželis Etiudas Mgr. Virginija Bielskienė, direktorės pavaduotoja ugdymui, II vad. kategorija, auklėtoja metodininkė Žaidimas pagrindinė i

PATVIRTINTA valstybės įmonės „Regitra“ generalinio direktoriaus

Projektas LIETUVOS RESPUBLIKOS RYŠIŲ REGULIAVIMO TARNYBOS DIREKTORIUS ĮSAKYMAS DĖL RADIJO RYŠIO PLĖTROS MHz RADIJO DAŽNIŲ JUOSTOJE PLANO PAT

No Slide Title

Microsoft Word - Ak noretum grizti v04.docx

Kodas Nuotrauka Schema/ Nuotrauka Aprašymas M-ST1-LMDP Darbo stalas, 1400 x 700 x 740, su LMDP (laminuotos medžio drožlių plokštės) kojomis. Stalvirši

skaitiniai metodai 1

Logines funkcijos termu generavimo algoritmas pagristas funkciniu modeliu

Microsoft Word - Apibendrinimas pagal skundus del asmens kodo _galutinis_ doc

Priedas Nr.18 PATVIRTINTA Kauno Veršvų gimnazijos direktoriaus 2017 m. liepos.. d. įsakymu Nr. V- KAUNO VERŠVŲ GIMNAZIJA TOLERANCIJOS UGDYMO CENTRO VE

PATVIRTINTA

PowerPoint Presentation

CIVILINĖS AVIACIJOS ADMINISTRACIJOS DIREKTORIUS Į S A K Y M A S DĖL MĖGĖJIŠKOS KONSTRUKCIJOS ORLAIVIŲ GAMYBOS, JŲ TINKAMUMO SKRAIDYTI NUSTATYMO IR NAU

Java esminės klasės, 1 dalis Išimtys, Įvestis/išvestis

Microsoft PowerPoint - Aktyvaus mokymosi metodai teisinio ugdymo paskaitose.pptx

Elektros energetikos įmonių apskaitos atskyrimo ir su apskaitos atskyrimu susijusių reikalavimų tvarkos aprašas 1 priedas Duomenys apie ūkio subjektą:

Mažeikių r. Tirkšlių darželio „Giliukas“ metinio veiklos vertinimo pokalbio su darbuotoju tvarkos aprašas

VERSLO IR VADYBOS TECHNOLOGIJŲ PROGRAMA

Transkriptas:

Algoritmai ir duomenų struktūros (ADS) 7 paskaita Saulius Ragaišis, VU MIF saulius.ragaisis@mif.vu.lt 2015-04-13

Grafai Grafas aibių pora (V, L). V viršūnių (vertex) aibė, L briaunų (edge) aibė Briauna atkarpa, jungianti dvi grafo viršūnes. Pografis (subgraph) poaibis grafo briaunų bei jų viršūnių.

Grafai (2) Dvi viršūnės yra gretimos arba kaimyninės (adjacent), jei jos sujungtos briauna. Viršūnės V i ir V j yra kaimyninės, jei egzistuoja B k =(V i, V j ). Pvz.: A kaimyninės viršūnės yra B ir D. Plokščias arba planarinis grafas tai grafas, kuri galima nupiešti plokštumoje (bent vienu būdu) taip, kad nė viena pora briaunų nesikirstų.

Grafai (3) Kelias (path) tarp viršūnių briaunų seka, prasidedanti vienoje viršūnėje ir besibaigianti kitoje viršūnėje. Paprastas kelias (simple path) kelias, per kiekvieną jam priklausančią viršūnę einantis tik po vieną kartą. Pvz., kelias ADCBCE nėra paprastas kelias, nes per viršūnę C eina du kartus. Ciklas (cycle) paprastas kelias, kuris prasideda ir baigiasi toje pačioje viršūnėje. Pvz., ABCDA.

Grafai (4) Jungus grafas (connected) jei egzistuoja kelias tarp bet kurių viršūnių porų. V i, V j : kelias V i V j Pilnas grafas (complete) jei yra briauna tarp kiekvienos viršūnių poros. V i, V j : B = (V i, V j ) Aišku, kad pilnas grafas taip pat yra ir jungus, tačiau jungus grafas nebūtinai yra pilnas. Kiek briaunų gali būti tarp 2 viršūnių?

Grafai su svoriais Grafas su svoriais (weighted) grafas, kurio briaunos turi skaitines reikšmes (svorius).

Orientuoti grafai Lankas briauna, turinti kryptį. Orientuotas grafas (directed) grafas su lankais (visos briaunos turi kryptį). Kiek lankų gali būti tarp 2 viršūnių?

Orientuoti grafai (2) Pvz.: Knygų skolinimasis: A iš B pasiskolino 100 knygų, o B iš A pasiskolino 50 knygų. Visi apibrėžimai, kurie buvo taikomi neorientuotiems grafams, taip pat tinka ir orientuotam grafui. Pvz.: Orientuotas kelias yra seka lankų tarp dviejų viršūnių. Būtina pastebėti, kad orientuotame grafe galima situacija: A yra kaimynas B, bet B nėra A kaimynas.

ADT Grafas Pagrindinės operacijos su grafais kaip ADT: Sukurti tuščią grafą. Įdėti/išmesti viršūnę. Įdėti/išmesti briauną tarp viršūnių V 1 ir V 2. Sužinoti (rasti), ar yra kelias tarp viršūnių V 1 ir V 2. Sužinoti (V 1, V 2 ) svorį. Pakeisti (V 1, V 2 ) svorį.

Grafo realizavimas Yra du dažniausiai naudojami grafų realizavimo būdai: kaimynystės matrica kaimynystės sąrašai Abiem atvejais patogiausia įsivaizduoti, kad viršūnės numeruojamos 1, 2 ir taip toliau iki N.

Kaimynystės matrica Kaimynystės matrica grafui be svorių su N viršūnių yra N iš N loginis masyvas A toks, kad A[i, j] yra teisingas tada ir tik tada, kai egzistuoja briauna iš viršūnės i į viršūnę j. Pagal susitarimą A[i, i] yra klaidingas. Įsidėmėtina, kad kaimynystės matrica neorientuotam grafui yra simetriška, tai yra A[i, j] = A[j, i]. Neorientuotas grafas (simetriška matrica) Orientuotas grafas (dažniausiai nesimetriška matrica)

Kaimynystės matrica (2) Kai turim grafą su svoriais, yra patogu, kad A[i, j] būtų briaunos iš viršūnės i į viršūnę j svoris. Tada A[i, j] žymima, kai nėra briaunos iš viršūnės i į viršūnę j. Be to, įstrižainės A[i, i] reikšmės lygios 0.

Kaimynystės sąrašai Kaimynystės sąrašas grafo iš N viršūnių, kurios numeruojamos 1, 2,, N, susideda iš N sujungtų sąrašų. Jei grafas yra su svoriais, tai jie saugomi kartu su viršūnę. Pvz.:

Grafo realizacijų palyginimas Dvi dažniausiai naudojamos grafų operacijos yra: Duotos dvi viršūnės i ir j ; rasti, ar yra briauna iš i į j. Rasti visas viršūnes, kurios yra kaimynės duotajai viršūnei V i Jei grafas yra netoli pilno grafo, tai masyvas yra efektyvesnis už sąrašą. Jei briaunų mažai, tai lieka daug nepanaudotos vietos matricoje, kas yra minusas taupant, tuomet geriau sąrašas.

Grafo apėjimas (traversal) Egzistuoja du apėjimo algoritmai: į gylį (DFS Depth First Search); į plotį (BFS Breadth First Search).

DFS pseudo-kodas {S stekas} Push(S, v) MarkV(v) {pažymi aplankytą viršūnę} While (not IsEmpty(S)) { If (neegzistuoja neaplankyta kaimynė S viršūnei) then Pop(S) else { imame u S viršūnės kaimynę (u ϵ V) Push(S, u) MarkV(u) } }

Grafo apėjimo DFS būdu pavyzdys

BFS pseudo-kodas {Q eilė} Add(Q, V) {įdedame viršūnę V į eilę} MarkV(V) {pažymi aplankytą viršūnę} While (not IsEmpty(Q)) do { } w:= Get(Q) for w neaplankytai kaimynei u do { MarkV(u) } Add(Q, u)

Topologinis rikiavimas Taikomas orientuotam grafui be ciklų. Pvz.: briaunos išreiškia, koks dalykas prieš kokį dalyką turi būti išklausytas. Prieš dalyką G reikia išklausyti B. Du variantai: ABCGP ir ABGCP.

Topologinio rikiavimo algoritmai Paprastas algoritmas (pa): 1. Imti viršūnę iš kurios nėra išeinančių briaunų. 2. Įdėti ją į sąrašo pradžią ir iš grafo ją išmesti. Modifikuotas paprastas algoritmas (pam): 1. Imti viršūnę į kurią nėra įeinančių briaunų. 2. Įdėti ją į sąrašo galą ir iš grafo ją išmesti.

Klausimai?