Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/58: Рейтинг темы: голосов - 58, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 15.03.2011
Сообщений: 30
1

Алгоритм Дейкстры поиска кратчайшего пути

25.12.2012, 16:37. Показов 11279. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите решить задачу. У меня с графами проблемы
Разработать и реализовать в виде программы алгоритм Дейкстры для заданного графа с числом вершин N ≤ 10. Результат выполнения программы вывести в файл.

Граф изображен на картинке
Миниатюры
Алгоритм Дейкстры поиска кратчайшего пути  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2012, 16:37
Ответы с готовыми решениями:

Составьте программу кратчайшего пути парохода
пароход должен пройти из пункта м в пункт n обойдя препятствие,имеющее вид отрезка AB. составьте...

Поиск кратчайшего пути (алгоритм Дейкстры) с наименьшим максимальным ребром
Есть классическая реализация Дейкстры, пытаюсь добавить условие: если есть несколько кратчайших...

Поиск кратчайшего пути (алгоритм Уоршала)
В области имеется N городов, соединены автобусными маршрутами. Стоимость билета с i-го города в j-й...

Задача на вычисление кратчайшего пути
Всем привет, всех с наступающим! Прошу помочь с заданием. Вам даны числа a и b, Вы можете...

2
24 / 24 / 1
Регистрация: 21.09.2012
Сообщений: 167
18.01.2013, 18:22 2
Могу только посоветовать найти описание алгоритма или скачать книгу Окулов С. М. Программирование в алгоритмах,там есть код процедуры алгоритма и пример работы.
0
314 / 273 / 272
Регистрация: 25.09.2011
Сообщений: 477
19.01.2013, 00:57 3
Лучший ответ Сообщение было отмечено maryana-br!!! как решение

Решение

по моему тут самое сложное это данные засунуть как надо (вроде не напутал)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
const
  maxR=4;   { max reber w grafe }
  maxV=6;   { kol-wo versin grafa }
  Max=2000; { ochen tqvelyj ves }
type
  tRebro = record
    adrs,          { S kakoj swqzan }
    ves : word;    { Ves rebra }
  end;
 
  tArrReb = array[1..maxR] of tRebro;
 
  tVer = record
    Name,            { Nomer versiny }
    metka,           { min rasstoqnie do nee ot A (Name=1) }
    NumR  : word;    { Kol-wo reber }
    visit : boolean; { posechenie versiny }
    Reb   : tArrReb; { Rebra dannoj versiny }
  end;
 
var
  Graf : array[1..maxV] of tVer; { Glob peremennaq dlq procedur }
 
procedure InitGraf;
begin
  with graf[1] do begin
    Name:=1; metka:=0; NumR :=3; visit:=false;
    Reb[1].adrs:=6; Reb[1].ves:=14;
    Reb[2].adrs:=3; Reb[2].ves:=9;
    Reb[3].adrs:=2; Reb[3].ves:=7;
  end;
  with graf[2] do begin
    Name:=2; metka:=max; NumR :=3; visit:=false;
    Reb[1].adrs:=1; Reb[1].ves:=7;
    Reb[2].adrs:=3; Reb[2].ves:=10;
    Reb[3].adrs:=4; Reb[3].ves:=15;
  end;
  with graf[3] do begin
    Name:=3; metka:=max; NumR :=4; visit:=false;
    Reb[1].adrs:=6; Reb[1].ves:=2;
    Reb[2].adrs:=1; Reb[2].ves:=9;
    Reb[3].adrs:=2; Reb[3].ves:=10;
    Reb[4].adrs:=4; Reb[4].ves:=11;
  end;
  with graf[4] do begin
    Name:=4; metka:=max; NumR :=3; visit:=false;
    Reb[1].adrs:=2; Reb[1].ves:=15;
    Reb[2].adrs:=3; Reb[2].ves:=11;
    Reb[3].adrs:=5; Reb[3].ves:=6;
  end;
  with graf[5] do begin
    Name:=5; metka:=max; NumR :=2; visit:=false;
    Reb[1].adrs:=4; Reb[1].ves:=6;
    Reb[2].adrs:=6; Reb[2].ves:=9;
  end;
  with graf[6] do begin
    Name:=6; metka:=max; NumR :=3; visit:=false;
    Reb[1].adrs:=1; Reb[1].ves:=9;
    Reb[2].adrs:=3; Reb[2].ves:=2;
    Reb[3].adrs:=5; Reb[3].ves:=9;
  end;
end;
 
  Function SearchMinVer(var imin : word) : boolean;
  { true - versina najdena, ee nomer w imin }
  var i : word;
  begin
    SearchMinVer:=false; imin:=0;
    i:=1;   { isem perwuj versinu s kotoroj movno sravnivatx}
    while Graf[i].visit and (i<=maxV) do inc(i); { net takih }
    if i>maxV then exit else imin:=i;  { najdena }
 
    for i:=1 to maxV do begin      { poisk min iz ostawsihsq }
      if not Graf[i].visit and (Graf[i].metka<Graf[imin].metka)
      then imin:=i;
    end;
    SearchMinVer:=true;
  end;
 
  Procedure Posesenie(a : word);
  var i,v : word;
  begin
    for i:=1 to Graf[a].NumR do begin            { obhod wseh reber }
      v:=graf[a].metka + graf[a].Reb[i].ves;
      if not graf[graf[a].Reb[i].adrs].visit and { ver kot ne byli posecheny }
      ( v<graf[graf[a].Reb[i].adrs].metka )  then
            graf[graf[a].Reb[i].adrs].metka:=v;  { s umenxsenim ih vesa }
      Graf[a].visit:=true;                       { versuna A posesena }
    end;
  end;
 
var c : word;
 
Begin
  InitGraf;
  while SearchMinVer(C) do Posesenie(c);
  for c:=1 to maxV do writeln(c,' : ',Graf[c].metka);
  readln;
End.
Добавлено через 1 минуту
в задании не указано до какой точки искать мин путь, поэтому ищем до всех. Результатом являются расстояния от 1 вершины до указанной.
1
19.01.2013, 00:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2013, 00:57
Помогаю со студенческими работами здесь

Нахождение кратчайшего пути до цели в лабиринте
Допустим у нас есть лабиринт,в котором бегают какие-нибудь существа. Есть ли возможность, чтобы они...

Алгоритм Дейкстры, нахождение кратчайшего пути
Доброго времени суток всем! У меня вопрос. Написала программку для нахождения кратчайшего пути...

Алгоритм Дейкстры (нахождение кратчайшего пути)
Можно как то еще оптимизировать процедуру в плане скорости? или это предел для чистого QB? SUB...

Нахождение кратчайшего пути в графе (алгоритм Дейкстры)
Здравствуйте, помогите пожалуйста, СРОЧНО,написать псевдокод реализации нахождения кратчайшего пути...

Алгоритм Дейкстры (поиск кратчайшего пути в графе)
Доброго времени суток! Пытаюсь разобраться в алгоритме Дейкстры по книжке &quot;Грокаем алгоритмы&quot;,...

Нахождение кратчайшего пути между заданными городами (алгоритм Дейкстры)
Народ, подскажите пожалуйста, на кону допуск к сессии. Чего то я запутался с этими списками. Буду...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru