|  | | 
 
| 
           
             | 
                 
                   | Тема |  Critical Path   |  |  | Автор | Alykard () |  | Публикувано | 05.05.09 14:01 |  |  | 
           
 Здравейте,някой може ли да ви предложи читав алгоритъм ,на С++,за намиране на възможно най-дългия път в АЦИКЛИЧЕН,НЕОРИЕНТИРАН  граф.Но наистина читам т.е. с възможно най-ниска сложност.
 
 
 
 
 |  |  |  
             | 
                 
                   | Тема |  Re: Critical Path  [re: Alykard] |  |  | Автор | zaphod (мракобес) |  | Публикувано | 06.05.09 08:25 |  |  | 
           
 задачи като тая не се ли даваха за пример за липса на читави решения?
 
 
 
 
 NE SUTOR ULTRA CREPIDAM
 
 
 |  |  |  
             | 
                 
                   | Тема |  Re: Critical Path
[re: Alykard] |  |  | Автор | Viper X (just a snake...) |  | Публикувано | 07.05.09 18:37 |  |  | 
           
 код няма да ти пиша, щот надали и ще успея да ти го напиша на Ц++ сега :)
 
 иначе примерен алгоритъм: ацикличен неориентиран граф всъщност е дърво. избираш си произволен връх за корен и почваш да правиш ДФС (обхождане в дълбочина). Най-дългия път тръгва от някое листо на това дърво, изкачва се нагоре до някой връх (евентуално до корена, но не задължително) и започва да се спуска обратно към някое друго листо.
 
 При ДФС-то при връщането назад за всеки връх отбелязваш височината на всяко от неговите поддървета (рекурсивно, започвайки от долу на горе). След като си обходил всички поддървета за даден връх - можеш да намериш най-дългия път за това поддърво, който минава през този връх - той е равен на сбора от височините на двете най-високи поддървета на върха. Така с линейна сложност ще си направиш ДФСто на цялото дърво, обаче ще си намерил и върха, през който минава търсения от теб най-дълъг път от първоначалния ацикличен неориентиран граф.
 
 Дано ме разбираш, защото аз като си чета пак написаното не съм сигурен че се разбирам :) от чертежче се вижда веднага какво имам предвид, ама не ми се губят 10 минути да правя чертеж в компютърен формат, и ако съвсем не ме разбираш и никъде още не си намерил готово решение и искаш да си пишеш по предложения от мен алгоритъм - кажи да снимам рисунката с фотоапарата и да я кача :)
 
 -------------
 КЗЛ
 
 
 |  |  |  |  
 
 |   | 
 |