Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Динамічне програмування, алгоритми на графах

Реферат Динамічне програмування, алгоритми на графах





ює s . На черговому ж кроці ми намагаємося поліпшити довжину шляху до кожної з вершин другої множини, порівнюючи вирази l [p] + a (p, i) і l [i]. Потрібно показати, чому мінімальне зі значень l, розглянутих на поточному кроці, є довжиною найкоротшого шляху до відповідної вершини, а, отже, цей шлях містить тільки вершини з першого безлічі. Якщо це не так, тобто найкоротший шлях до цієї вершини містить і вершини з другої множини, то мінімальної виявилася б довжина шляху від s до однієї з цих вершин. Значить найкоротший шлях до вершини p проходить тільки через вершини першої множини і більше його перераховуватися не потрібно.

Наведемо схему програми, що реалізує цей алгоритм (функцію a (i, j) і значення "нескінченності" визначати не будемо):


for i: = 1 to nn do

begin

l [i] = ВҐ;

b [i]: = false

end;

p: = s; l [s]: = 0;

b [s]: = true;

f: = true; {cтоит чи шукати далі}

while (p <> t) and f do

begin

f: = false;

for i: = 1 to nn do

if not b [i] then

if l [p] + a (p, i)

min: = t; {важливо, що b [t] = false}

for i: = 1 to n do

if (not b [i]) and (l [i]

if l [min] <ВҐ then

begin

p: = min; b [p]: = true; f: = true

end

end;


Нескладно підрахувати, що трудомісткість алгоритму становить O ( N 2 ), що окупає деякі складнощі в його реалізації. Як і у випадку застосування "Хвильового" алгоритму в невиважені графі, асимптотична оцінка не зміниться якщо нам буде потрібно підрахувати довжину шляху від s до кожної з вершин графа. Тому, як і в алгоритмі Флойда, довжини найкоротших шляхів між усіма парами вершин можуть бути розраховані за O ( N 3 ) операцій.


Висновок

Отже, неформально, граф можна визначити як набір вершин (міста, перехрестя, комп'ютери, літери, цифри кістки доміно, мікросхеми, люди) і зв'язків між ними: дороги між містами; вулиці між перехрестями; провідні лінії зв'язку між комп'ютерами; слова, що починаються на одну букву і закачується на іншу або цю ж літеру; провідники, що з'єднують мікросхеми; родинні стосунки, наприклад, Олексій - син Петра. Двонаправлені зв'язку, наприклад, дороги з двостороннім рухом, прийнято називати ребрами графа; а односпрямовані зв'язку, наприклад, дороги з одностороннім рухом, прийнято називати дугами графа. Граф, у якому вершини з'єднуються ребрами, прийнято називати неорієнтованим графом, а граф, в якому хоча б деякі вершини з'єднуються дугами, прийнято називати орієнтованим графом.


Література

1. Андрєєва Є., Фаліна І. Системи числення та комп'ютерна арифметика. М.: Лабораторія базових знань, 2000.

2. Станкевич А . С. Рішення завдань I Всеросійської командної олімпіади з програмування. "Інформатика", № 12, 2001. p> 3. Окулов С.М. 100 завдань з інформатики. Кіров: вид-во ВДПУ, 2000. p> 4. Андрєєва Є.В. Рішення завдань XIII Всеросійської олімпіади з інформатики. "Інформатика", № 19, 2001. p> 5. Ахо А.А., Хопкрофта Д.Е., Ульман Д.Д. Структури даних і алгоритми. М.: "Вільямс", 2000. p> 6. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритми. Побудова та аналіз. М.: МЦНМО, 2000. p> 7. Липський В. Комбінаторика для програмістів. М.: "Світ", 1988. p> 8. Вірт Н. Алгоритми та структури даних. Санкт-Петербург: "Невський діалект", 2001. br/>


Назад | сторінка 8 з 8





Схожі реферати:

  • Реферат на тему: Алгоритми на графах. Знаходження найкоротшого шляху
  • Реферат на тему: Пошук вершини в графі між двома заданими вершинами
  • Реферат на тему: Комбінаторні алгоритми. Пошук найкоротшого шляху на графі
  • Реферат на тему: Пошук найкоротшого шляху між парами вершин в орієнтованому і неориентирован ...
  • Реферат на тему: Структури даних і алгоритми