Projektmenedzsment gráf általában súlyozott irányított

Slides:



Advertisements
Hasonló előadás
A Floyd-Warshall algoritmus
Advertisements

A Dijkstra algoritmus.
Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok
KÉSZÍTETTE: Takács Sándor
egy egyszerű példán keresztül
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
GRÁFELMÉLET Alapfogalmak 2..
Készítette: Major Máté
Készítette: Mester Tamás METRABI.ELTE.  Adott egy G irányított vagy irányítás nélküli, véges gráf. Az eljárás célja a G gráf összes csúcsának bejárása.
Matematika II. 4. előadás Geodézia szakmérnöki szak 2010/2011. tanév Műszaki térinformatika ágazat tavaszi félév.
Dualitás.
Vektormező szinguláris pontjainak indexe
Illeszkedési mátrix Villamosságtani szempontból legfontosabb mátrixreprezentáció. Legyen G egy irányított gráf, n ponton e éllel. Az n x e –es B(G) mátrixot.
Illés Tibor – Hálózati folyamok
Térinformatikai elemzések. Megválaszolható kérdések Pozíció - mi van egy adott helyen Feltétel - hol vannak …? Trendek - mi változott meg? Minta - milyen.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Címkézett hálózatok modellezése
Streaming Algorithms for k-core Decomposition. K-mag dekompozíció Maximális részgráf, amiben minden csúcshoz legalább k részgráfbeli csúcs csatlakozik.
DAG topologikus rendezése
Dijkstra algoritmus Irányított gráfban.
Dijkstra algoritmus Baranyás Bence. Feladat Adott egy G=(V,E) élsúlyozott, irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges.
Halmazok, relációk, függvények
Operációkutatás NYME Gazdaságinformatikus mesterképzés
Van-e Euler vonal az alábbi gráfban?
DAG topologikus rendezés
Dijkstra algoritmusa Egy csúcsból a többibe vezető legkisebb költségű út megkeresése Az algoritmus működésének leírása és bemutatása LL.
Készítette: Kosztyán Zsolt Tibor
Kvantitatív módszerek
Gráfok Készítette: Dr. Ábrahám István.
Dijkstra-algoritmus ismertetése
Algoritmusok II. Gyakorlat 3. Feladat Pup Márton.
Egyszerű gráfok ábrázolása Pascalban:
GRÁFELMÉLET Alapfogalmak 1..
Gráfelmélet: Fák.
I276 Antal János Benjamin 12. osztály Nyíregyháza, Széchenyi I. Közg. Szki. Huffman kódolás.
GRÁFELMÉLET.
Fák.
A Dijkstra algoritmus.
Euler gráf Euler, 1736 Königsbergi hidak
Készítette: Hanics Anikó. Az algoritmus elve: Kezdetben legyen n db kék fa, azaz a gráf minden csúcsa egy-egy (egy pontból álló) kék fa, és legyen minden.
Nevezetes algoritmusok: Fa megvalósítása Készítette: Várkonyi Tibor Zoltán.
Gráfok 1. Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék
Kruskal-algoritmus.
Háló- (gráf-) algoritmusok
Business Mathematics A legrövidebb út.
GRÁFOK Definíció: Gráfnak nevezzük véges vagy megszámlálhatóan végtelen sok pont és azokat összekötő szintén véges vagy megszámlálhatóan végtelen sok.
Szélességi bejárás. Feladat  Szélességi bejárás módszerrel menjünk végig egy tetszőleges gráfon.  Kikötés: A gráf egyszerű, azaz hurok- és többszörös.
Útkeresések.
Dag Toplogikus rendezés
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
Morvai Mária-Júlia F3D3D4.  Adott egy G=(V,E)élsúlyozott, irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó,véges gráf. Továbbá adott.
DIJKSTRA- ALGORITMUS. A Dijkstra-algoritmus egy mohó algoritmus, amivel irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges gráfokban.
Algoritmusok és adatszerkezetek
Készítette : Giligor Dávid Neptun : HSYGGS
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Algoritmus DAG = irányított körmentes gráf. Először ezt a tulajdonságot ellenőrizzük (mélységi bejárással), aztán rendezzük: Q: Sor adatszerkezet, kezdetben.
Kvantitatív módszerek
HÁLÓZAT Maximális folyam, minimális vágás
GRÁFOK Marczis Ádám és Tábori Ármin. Kőnig Dénes ( ) Magyar matematikus Az első tudományos színvonalú gráfelmélet könyv írója.
Gráfalgoritmusok Tassy Gergely Veres Péter Gimnázium, Budapest június 30.
A Dijkstra algoritmus.
HÁLÓZAT Maximális folyam, minimális vágás
INFOÉRA Gráfok, gráfalgoritmusok III. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Dijkstra algoritmusa: legrövidebb utak
Dijkstra algoritmusa: legrövidebb utak
Gráfok - 1 Definíció: Irányított gráf (digráf) G=(V,E) rendezett pár.
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Előadás másolata:

Projektmenedzsment gráf általában súlyozott irányított összefüggő (de ritkán erősen összefüggő) nincs izolált csomópontja egy forrás, egy nyelő általában körmentes (aciklikus) nincsenek többszörös élek ►egyszerű

Gráf, absztrakt gráf, digráf N és A két diszjunkt halmaz, ahol ζ olyan függvény, amely A minden eleméhez egy N-beli elempárt rendel hozzá: a (N,A, ζ) rendszer absztrakt gráf (digráf); (N,A) vagy G N elemeit a gráf csomópontjainak, A elemeit a gráf éleinek (ívek vagy ágak) nevezzük ponthoz nem illeszkedik él: izolált csomópont

Fokszám A G egy p pontjához illeszkedő élek számát p fokszámának (fokának) nevezzük: φ (p); irányított esetben: φbe(p), φki(p) A fokszámok összege az élek számának kétszerese. Páratlan fokú pontok száma mindig páros.

Izomorf, hurok, kör egy gráf élei és pontjai kölcsönösen egyértelműen és illeszkedéstartó módon megfeleltethetők egy másik éleinek és pontjainak: a két gráf izomorf két pontot több él is összeköt: G tartalmaz többszörös éleket él a kiinduló csomópontba tér vissza: hurokél élsorozat (v. pontsorozat), amely egy csomópontból induló összefüggő éleken (v. szomszédos csomópontokon) keresztül ugyanabba a csomópontba jut vissza: kör a c d b d c b a

Teljes és egyszerű gráf G bármely két különböző pontját él köti össze: teljes gráf (n-gráf) a teljes gráf éleinek száma: G nem tartalmaz hurokélt és többszörös élt: egyszerű gráf legalább két pontot tartalmazó egyszerű gráfnak van két azonos fokú pontja. skatulya-elv bármelyik pont elérhető úttal: összefüggő

Részek egy egyszerű G gráfot kiegészítünk teljes gráffá, akkor a G nélküli rész: komplementere tartalmazza G-t: részgráf nem önmaga: valódi részgráf összefüggő részgráf, amely nem bővíthető új ponttal az összefüggő jelleg megtartásával: komponens csúcsok és komponensek számának különbsége: rang élek és komponensek száma mínusz csúcsok száma: nullitás

Euler königsbergi hidak (1735., Pregel folyó) G folytonos élsorozatában minden él szerepel, de csak egyetlen egyszer: Euler-vonal Ha van G-nek zárt Euler-vonala, akkor minden pont foka páros. Ha van G-nek nyitott Euler-vonala, akkor két pont foka páratlan, de minden többi ponté páros. Euler, L., "Solutio problematis ad geometriam situs pertinentis", Comment. Academiae Sci. I. Petropolitanae 8 (1736), 128-140.

Közlekedés, híd bármely pontból G bármely pontjába el lehet jutni szabályok megsértése nélkül: közlekedési feltétel irányított gráf, melyre teljesül a közlekedési feltétel: erősen összefüggő levelek, híd összefüggő gráf élét töröljük és megszűnik összefüggő lenni

Hamilton dodekaéder-játék (1859) gráf minden pontját tartalmazó köre: Hamilton-kör gráf minden pontját tartalmazó útja: Hamilton-út

Fa, minimális kifeszítő fa összefüggő, körmentes: fa, fagráf, kifeszítő fa Az n pontú, n-1 élű gráfok körmentesek (fák). minimális kifeszítő fa (gazdaságos faváz); MST - később

Súlyok, irányítás élekhez hozzárendelt értékek (súlyok): kapacitások, potenciálok, áramok (nemnegatív mennyiség, végtelen, nulla) kapacitás a súlyozott élen az egyik irányban nulla: irányítottnak; (i,j) esetén τi,j csomóponthoz csatlakozó összes él irányítása olyan, hogy az áram az adott csomópontból kifelé halad: forrás csomóponthoz csatlakozó az összes él a csomópont felé irányul: nyelő

Út, irányított út két pont közötti pontsorozat; csak szomszédos pontokon haladunk; csak egyszer: út Legyen az {s≡0,1,…i…m≡t} egy olyan pontsorozat, amelyre minden (i-1,i), i=1...m esetén. Ekkor a (0,1,...i,...m) halmaz: s pontból a t pontba vezető út; P(s,t), P haladás irányát is megadjuk: irányított út útban szereplő élek τ súlyainak össze: út hossza; τ(P) VAGY éleinek a száma két pont közötti út csak egy élt tartalmaz: szomszédos csúcs

Szintekre bontás irányított körmentes (aciklikus) gráfban N1,N2N és (N1,N2)A, akkor N1 N2-t megelőzi: topologikus rendezés 1) forrásokat a következő (első) szintbe 2) töröljük a kimenő éleket, majd 1) 3) addig, amíg mind nincsen szintbe sorolva 4) összekötjük a csúcsokat kisebb mélységből nagyobb mélységbe mutat: előre él (faél) nagyobb mélységből kisebb mélységbe mutat: visszaél azonos szintre mutat: keresztél

Szintekre bontás a c b d

Szintekre bontás a c b d e f

Alapvető algoritmusok szélességi keresés - bejárás (BFS) mélységi keresés - bejárás (DFS)

Park körülzárt nemzeti park keskeny kanyargós úthálózat erdőőrök által vezetett elektromos járművek terepjáró gépkocsik modellezhető egy irányítatlan hálóval park bejárata (O) fontosabb látnivalók bejárattól legtávolabb színpadi látványosság (T) súlyszámok az utak hossza illetve irányított kapacitások

Park A A 7 2 2 5 4 5 O B B B D D D T T T 3 1 4 1 7 C E 4

Problémák telefonvonalakat kell lefektetni az utak alatt úgy, hogy minden csomópontot elérjenek, és az a lehető legevesebb munkával járjon meg kell határozni egy, a park bejáratától (O) a színpadig (T), majd onnan vissza vezető olyan útvonalat, amelynek a legkisebb a hosszúsága maximalizálni kell a naponta megtehető utak számát a korlátos útszakaszokon (irány!)

Minimális kifeszítő fa Borůvka (Sollin) 1926. 1) Vizsgáljuk a súlyokat. Ha többször is előfordul valamelyik, hozzáadjuk az egység egy hányadát, rendre q, 2q, 3q stb. k(q+2q+3q+…+(m-1)q)<1 , ahol k számú ktg. fordul elő többször, egy ktg. max. m- szer szerepel 2) Kijelöljük minden egyes csomópont (fa) legközelebbi szomszédjába vezető élt (közben kör ne alakuljon ki). 3) A fát alkotó csomópontokat egyetlen csomópontnak tekintjük. 4) Ismét 2) addig, amíg minimális kifeszítő fát nem kapunk.

Minimális kifeszítő fa 3 2 4 5 6 7 8 9

Minimális kifeszítő fa 7 2 2 5 4 5 O B B B D D D T T T 3 1 4 1 7 C E 4

Minimális kifeszítő fa Kruskal 1956. 1) Kijelöljük a gráf kijelöletlen legkisebb költségű élét (közben kör ne alakuljon ki). 2) Ismét 1) addig, amíg minimális kifeszítő fát nem kapunk.

Minimális kifeszítő fa 3 2 4 5 6 7 8 9

Minimális kifeszítő fa 7 2 2 5 4 5 O B B B D D D T T T 3 1 4 1 7 C E 4

Minimális kifeszítő fa Prim 1957. 1) Kiválasztjuk a gráf bármelyik csomópontját. 2) A fához hozzáadjuk a legközelebbi csomópontot (közben kör ne alakuljon ki). 3) Ismét 2) addig, amíg minimális kifeszítő fát nem kapunk.

Minimális kifeszítő fa 3 2 4 5 6 7 8 9

Minimális kifeszítő fa 7 2 2 5 4 5 O B B B D D D T T T 3 1 4 1 7 C E 4

Legrövidebb út Táblázatos megoldás 1) Minden irányban kiindulunk a vizsgált csomópontból, egymás után kiválasztjuk a hálózat minden egyes csomópontjához vezető legrövidebb útvonalat a kezdőponttól mért legrövidebb távolságuk növekvő sorrendjében. 2) Ismét 1) addig, amíg el nem jutunk a végső csomóponthoz.

Legrövidebb út …

Legrövidebb út …

Legrövidebb út A A 7 2 2 5 4 5 O B B B D D D T T T 3 1 4 1 7 C E 4

Gráfelméleti alkalmazások Közösségi Kerékpáros Közlekedési Rendszer pesti: Dunától kb. Dózsa György útig budai: Duna part, a Víziváros egy része, BME és környéke 12,75 km2-t 74 automata gyűjtőállomás több, mint 1000 kerékpár két nagyobb és négy kisebb kapacitású szállítójármű kb. 90% Európai Uniós támogatás Hány szállító jármű tud áthaladni adott útvonalon? Egységnyi idő alatt melyek a legrövidebb utak bizonyos gyűjtőpontok között? Beck Viktória

Gráfelméleti alkalmazások forgalom alapján (kategóriák): 1. több mint 2000 (egységjármű/óra) 2. 1000 – 2000 (egységjármű/óra) 3. 600 – 1000 (egységjármű/óra) legnagyobb kockázat: Deák Ferenc tér és az Astoria közötti reggelente a Petőfi-hídon Buda felé, Nagykörúton a Nyugati-pályaudvartól a Petőfi-híd felé, a Szabadság-hídon Pest felé, délután fordítva Petőfi-híd csúcsforgalomban: 2600-2800 Beck Viktória

Beck Viktória

Megoldás: 36 csomópontú gráf Beck Viktória

Gogol utca - BME Beck Viktória

Hősök tere - Kossuth tér Beck Viktória

Problémák telefonvonalakat kell lefektetni az utak alatt úgy, hogy minden csomópontot elérjenek, és az a lehető legevesebb munkával járjon meg kell határozni egy, a park bejáratától (O) a színpadig (T), majd onnan vissza vezető olyan útvonalat, amelynek a legkisebb a hosszúsága maximalizálni kell a naponta megtehető utak számát a korlátos útszakaszokon (irány!)

Legrövidebb út Dijkstra 1959. –grafikus eljárás kisméretű gráfokra 1) Hozzárendelünk a kiinduló csomóponthoz 0-t, minden további csomóponthoz ∞ értéket. 2) Kezdjük az algoritmust a kiinduló ponttal. Vizsgáljuk meg minden egyes szomszédos csomópontját a kiinduló pontnak és számítsuk ki a távolságukat. Ha minden egyes szomszéd távolságát kiszámítottunk, akkor jelöljük meg a kiindulópontot. 3) A már megjelölt csomópont összes szomszédját megvizsgáljuk, először a kisebb távolságú csomópontok következnek. Amennyiben a kiszámított távolság kisebb, mint a csomóponton szereplő, az előzőekben számított érték, akkor írjuk be a kisebbet. 4) Ismét 3) addig, amíg minden csomópontot meg nem vizsgáltunk.

Legrövidebb út Dijkstra 1959. 1) Hozzárendelünk a kiinduló csomóponthoz 0-t, minden további csomóponthoz ∞ értéket. Kezdjük az algoritmust a kiinduló csomóponttal. 2) Vizsgáljuk meg minden egyes szomszédos csomópontját a vizsgálandó csomópontnak és számítsuk ki a távolságukat. Ha minden egyes szomszéd távolságát kiszámítottunk, akkor jelöljük meg a vizsgált pontot. 3) A megjelöletlen csomópontok halmazából azon csomóponttal haladunk tovább, melyiknek a kezdőponttól számított távolsága a legkisebb. 4) Ismét 2) addig, amíg minden csomópontot meg nem vizsgáltunk.

Legrövidebb út ∞ 2 7 3 5 5 9 1 ∞ 4 ∞ 5 3 3 10 ∞ 3

Legrövidebb út B 2 D 10 8 A 1 4 7 9 3 C 2 E

Legrövidebb út ∞ A A 7 2 2 5 4 5 O B B B D D D T T T 3 1 4 1 7 C E 4

Legrövidebb út Bellman-Ford 1958-1962. 1) Hozzárendelünk a kiinduló csomóponthoz 0-t, minden további csomóponthoz ∞ értéket. 2) Az élekre felveszünk önkényesen egy feldolgozási sorrendet. 3) Az élek feldolgozási sorrendjének megfelelően kiszámítjuk minden él végződésénél lévő csomópont távolságát a kezdőpont adatainak alapján. 4) Ismét 3) addig, amíg nem konvergál az algoritmus megoldáshoz.

Legrövidebb út B 4 -1 2 1 3 A E 7 2 1 3 2 4 8 -3 5 C 5 D 6

Legrövidebb út 5 1 u v 6 -2 2 3 5 7 8 -3 z 2 8 4 6 7 -4 7 9 x y 9 10

Szomszédsági mátrix és lista irányítatlan 4 5 3 2 1

Szomszédsági mátrix és lista irányított 2 1 3 4

Súlymátrix irányított 5 2 2 1 7 4 3 2 4

Legrövidebb út Floyd-Warshall 1959. (Bernard Roy) – 1962. 1) A hálózat súlymátrixában legyen minden ai,j=∞ ha ai,j=0. kivéve, ha ai,i=0, ekkor tartsa meg értékét (alternatív mo.) 2) Hajtsuk végre az alábbi műveletet: 3) Ismét 2) n alkalommal (k=1…n).

Legrövidebb út 7 R(1) 4 U(4) 2 7 5 1 S(2) 3 T(3)

Legrövidebb út B(2) 4 3 7 A(1) 8 C(3) 1 -4 2 -5 E(5) D(4) 6

Vágás, üres vágás Legyen N két diszjunkt halmazra particionálva, S és T-re úgy, hogy és sS és tT. Jelöljük (S,T)-vel azon élek összességét, melyek S-ből indulnak és T-be érkeznek. Ezt az (S,T) élhalmazt az (N,A) gráf s és t pontjait elválasztó vágásának nevezzük. Ha ez a vágás nem tartalmaz élt, akkor a vágás üres. A vágás mindig irányított. A vágás a P(s,t) útvonalból tartalmaz legalább egy élt.

Vágás (S,T) 14 12 11 13 8 9 7 6 5 2 4 3 1 t s 10

Maximális folyam-minimális vágás Bármely olyan hálózatra, amelyben egyetlen forrás és nyelő van, a forrástól a nyelőig haladó maximális megengedett áram (folyam) egyenlő a hálózat összes vágása értékének a minimumával. A gráfon létezik út s pontból t pontba, vagy létezik olyan, a két pontot elválasztó vágás, amely üres (Minty).

Létezik-e út? Cimkézési technika 1) SN halmaz minden pontja elérhető s pontból, TN halmaz tartalmazza a vizsgálatra váró pontokat. 2) A pontot, amely nem tartozik S halmazba és a pontból vezet él T halmaz pontjaiba, cimkézzük meg. A cimkéje legyen az a pont, amely pontból ide eljutottunk, negatívelőjellel. 3) A cimkézett pontokkal bővítsük az S halmazt és változtassuk a cimkéjét pozitívra. 4) Ismét 2) amíg el nem jutunk a végpontba. Ha nem sikerül, akkor a két halmaz között nincs él, azaz az (S,T) vágás üres.

Létezik-e út? Struktúra táblázat

Létezik-e út? Grafikus megoldás

Maximális folyam Ford-Fulkerson 1956. 1) Keressünk egy (szigorúan) pozitív áramlási kapacitású útvonalat a forrástól a nyelőig. 2) Keressük meg ebben az útvonalban a legkisebb áramlási kapacitást és növeljük meg ezzel az értékkel az útvonalon az áramot. 3) Csökkentsük a fenti értékkel az útvonal minden élén a megmaradó áramlási kapacitást és növeljük meg az útvonal minden élén a megmaradó áramlási kapacitást az ellenkező irányban. 4) Ismét 1) addig, amíg már nem található pozitív áramlási kapacitású útvonal.

Maximális folyam A O B D T E C 5 4 7 1 9 6 3 2

Maximális folyam 2 2 1 2 1 1 3 3 1 1 5 4 2

Primál-duál feladatpár CPM/time primál: mi az a potenciálrendszer és időpolitika, amely lehetséges, és kedvező? πj-πi≥τi,j, πt-πs → minimális CPM/time duál: mennyi idő alatt lehet végrehajtani a projektet? P={s≡0,1,…i…m≡t} → maximális

Leghosszabb út Primál-duál algoritmus I. 1) Osszuk N halmazt két diszjunkt S, T halmazra. 2) S: πj-πi≥τi,j, legyen olyan P(s,i) út, amely mentén πj-πi=τi,j, minden (i,j)P, (i,j)S; nincs olyan (i,j)A, hogy jS és iT. 3) Bővítjük S halmazt olyan ponttal, amelybe csak S-ből vezet út: πj=max(πi+τi,j). 4) Ismét 3), amíg S≡N.

Leghosszabb út Primál-duál algoritmus II. 1) Osszuk N halmazt két diszjunkt S, T halmazra. 2) T: πj-πi≥τi,j, legyen olyan P(j,t) út, amely mentén πj-πi=τi,j, minden (i,j)P, (i,j)T; nincs olyan (i,j)A, hogy jS és iT. 3) Bővítjük T halmazt olyan ponttal, amelyből csak T-be vezet út: πi=max(πj-τi,j). 4) Ismét 3), amíg T≡N.

Leghosszabb út Állítsa elő az alábbi háló súlymátrixát (W)!

Leghosszabb út (I. algoritmussal)