| 1 | = Negatív körök keresése = |
| 2 | |
| 3 | Hatékony algoritmusok implementálása annak eldöntésére, hogy van-e negatív költségű irányított kör egy gráfban. |
| 4 | |
| 5 | == Háttér == |
| 6 | |
| 7 | A legrövidebb utak kereséséhez szorosan kapcsolódó probléma annak eldöntése, hogy létezik-e negatív összköltségű irányított kör egy élsúlyozott gráfban. Ha ilyen kör nem létezik, akkor bármely két pont között létezik minimális költségű séta, amelyet a Bellman-Ford-algoritmussal meg is kereshetünk. Más megközelítésben azt mondhatjuk, hogy ilyenkor létezik megenegedett potenciálfüggvény: minden ''u'' csúcshoz hozzárendelhetünk egy d(''u'') potenciált, amelyre teljesül, hogy minden (''u'', ''v'') élen a c(''u'',''v'') + d(''u'') - d(''v'') redukált költség nemnegatív (vagyis d(''u'') + c(''u'',''v'') >= d(''v'')). Egy ilyen potenciálfüggvény ismeretében a legröviebb utak keresését hatékonyan tudjuk megoldani Dijkstra algoritmusával (a redukált költségeket használva). |
| 8 | |
| 9 | Egy érdekes és fontos feladat tehát annak eldöntése, hogy egy irányított, élsúlyozott gráf tartalmaz-e negatív kört. Olyan algoritmusokat keresünk, amelyek megadnak egy negatív kört, ha ilyen létezik, egyébként pedig egy megengedett potenciálfüggvényt. A klasszikus Bellman-Ford algoritmus alkalmas ezen probléma megoldására, de a gyakorlatban sokszor nem elég hatékony. Ugyanakkor számos hasonló, de a gyakorlatban jobban teljesítő algoritmus is született. |
| 10 | |
| 11 | Az alábbi cikk részletesen elemzi és összehasonlítja a különböző módszereket: |
| 12 | - [http://www.siam.org/proceedings/alenex/2008/alx08_012cherkasskyb.pdf] vagy |
| 13 | - [http://portal.acm.org/citation.cfm?id=1498698.1537602] |
| 14 | |
| 15 | |
| 16 | == Feladat == |
| 17 | |
| 18 | A feladat a fenti probléma megoldására született leghatékonyabb algoritmusok implementálása és összehasonlító elemzése különböző gráfokon. |
| 19 | |
| 20 | A feladatkör BSc/MSc szakdolgozat és TDK alapjául is szolgálhat, akár több jelentkező számára is. |
| 21 | |
| 22 | == Előfeltételek == |
| 23 | |
| 24 | - C++ programozási nyelv ismerete |
| 25 | - alapvető gráfelméleti ismeretek |
| 26 | - angol nyelvismeret |