Влияние върху производителността


Алгоритъм на Дейкастра при ацикличен граф



страница40/43
Дата21.12.2022
Размер1.47 Mb.
#116011
1   ...   35   36   37   38   39   40   41   42   43
CAA.doc
Свързани:
saap conspect

Алгоритъм на Дейкастра при ацикличен граф.


Ако знаем че графът е ацикличен можем да подобрим алг.на Дейкстра, като определим еднозначно последователността на избор на връх за обхождане. Това е последователността, съотв.на топологичната подредба. Алг.базиран на подреден топологично граф, се обработва за един пас. Това се дължи на факта, че пътят до избран според топологичната подредба връх не може вече да се намали, защото към него няма входящи ребра от необходени върхове. По този начин отпада необх.от приоритетна опашка и оценката на алг. е O(│E│+│V│).


Може да се посочат различни пр. от практиката: как да достигнем макс. бързо до дадена точка като се движим само в една посока. Друг възможен пример е моделиране на химич. реакция, в която се отделя енергия, т.е. движението е само в една посока от
по-високо към по-ниско енергийно ниво. Най-важен пример за нас е оценката на дейности и анализ на критичния път.Посредством разглеждане на граф на дейностите необх. за завършване на софтуерен проект. Мд отговорим на следните въпроси:

  • Кое е мин време за завърш на проекта;

  • Колко мд закъсняват отделните дейности, без това да се отрази на крайния срок.

В графът на дейностите всеки връх пред-ставя дейност, която трд се изпълни като е посочено и времето, което заема тя.Ребрата показват реда на изпълн. на дейностите. Графът е ацикличен и освен това допуска работа в паралелизъм за
независещи една от друга дейности.За да решим поставената зад.трд преобразуваме графа на дейностите в граф на събитията.При това всяко съби-тие отговаря на завършване на дейност и всички зависещи от нея дейности. За да се

деф.еднозначно зависимостите м/у отдел-ните дейности, добавяме фиктивни(празни) възли, когато една дейност зависи от завършването на няколко други.
Търсим най-дългият път до края за да определим EC (earliest completion time) най-краткото време за завършване на проект. При това ще адаптираме алг. за намиране на най-къс път. Ако ECi е най-късото време за изпълнение на върха I, то изчисл.става посредством:

след прилагане на формулите:
Мд определим и времето LCi (latest completion for node i), до което мд забавим даден етап, без да отлагаме крайния срок:

След резултатите от това изчисление:


Тези ст-сти могат да се изчислят за лин. време за всеки връх като се използва топологично сорт.за ECi и обратно топологично сорт.за LCi. Мд изчислим и луфта (slack) във време, с който разполагаме. Той показва макс.закъснение за всеки връх, без да се просрочи крайния срок:
Ето пример като горната почертана цифра показва ECw, а долната
– LCw. Означени-ята по ребрата са: дейност/продължителност/луфт. Както се вижда, някои дейности нямат закъсн.Те са критични.Път,който съдържа такива дейности се нарича критичен.


  1. Сподели с приятели:
1   ...   35   36   37   38   39   40   41   42   43




©obuch.info 2024
отнасят до администрацията

    Начална страница