0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 9
1

Метод ветвей и границ

02.06.2010, 22:11. Показов 3567. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вопрос: Где в этой задаче конкретно пременим "МЕТОД ВЕТВЕЙ И ГРАНИЦ"? Если знаете, то выделите please))
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
Uses CRT;
Label Out;
Const
N=8;
Var
C: array [1..N,1..N] of word; {Матрица расстояний}
Tour, P: array [1..N] of word; {Оптимальный и текущие туры}
l, s: word;
i, j, k, min, ind: byte;
All: boolean; {Признак окончания перебора}
Graph: text;
Begin
ClrScr;
{Ввод данных}
Assign(Graph,'D:\matr.in');
Reset(Graph);
TextColor(14);
WriteLn('=========================ЗАДАЧА КОММИВОЯЖЕРА (Перебор)=========================');
WriteLn('Матрица смежности:');
WriteLn('========================================= ======================================');
For i:=1 To N Do For j:=1 To N Do Read(Graph, C[i,j]);
For i:=1 To N Do
Begin
For j:=1 To N Do Write(C[i,j],' ');
WriteLn;
End;
{Инициализация}
All:=False; {Перебраны не все варианты}
l:=MaxInt; {Оптимальный тур неизвестен}
For i:=1 To N Do P[i]:=i; {Строим первый тур}
Repeat
{Вычисляем его длину}
s:=0;
For i:=1 To N-1 Do s:=s+C[P[i],P[i+1]];
s:=s+C[P[n],P[1]];
{Полагаем первый тур текущим}
If l>s Then
Begin
Tour:=P;
l:=s;
End;
{Генерируем все (N-1)! перестановок}
For i:=N DownTo 3 do
Begin
If P[i]<P[i-1] Then continue;
min:=N+1;
k:=P[i-1];
{Ищем миним. число из тех, что больше k и правее}
For j:=i To N Do If (P[j]>k) and (P[j]<min) Then
Begin
min:=P[j];
ind:=j;
End;
{Рокировка min и k}
P[i-1]:=min;
P[ind]:=k;
{Элементы на местах от i до N упорядочиваем по возрастанию}
For j:=i To N-1 Do
Begin
min:=N+1;
For k:=j To N Do If min > P[k] Then
Begin
min:=P[k];
ind:=k;
End;
k:=P[j];
P[j]:=min;
P[ind]:=k;
End;
GoTo out;
End;
{Проверяем перебраны ли все перестановки}
All:=true;
Out:
Until All;
{Если перебраны все перестановки, то выдаем оптимальный тур}
WriteLn('========================================= ======================================');
Write('Минимальный тур: ');
For i:=1 To N Do Write(Tour[i],'-');
Write('1');
WriteLn(' имеет длину ',l);
WriteLn('========================================= ======================================');
Close(Graph);
ReadKey;
END.
И если возможно, то проверьте правильно ли построена задача, у меня нетбук виснет когда я ее запускаю(((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2010, 22:11
Ответы с готовыми решениями:

Целесообразен ли метод ветвей и границ?
Всем привет. Ищу оптимальное решение для одной задачи методом ветвей и границ и возникает вопрос в...

Задача коммивояжера (метод ветвей и границ)
Написать программу для решения задачи коммивояжёра с помощью метода ветвей и границ. Интерфейс...

Метод ветвей и границ (задача об экспериментаторе)
Добрый день. Не получается написать программу на метод ветвей и границ. Задача: профессор...

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

0
02.06.2010, 22:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2010, 22:11
Помогаю со студенческими работами здесь

Задача коммивояжера, метод ветвей и границ
В общем, делаю программу, решающую задачу коммивояжера методом ветвей и границ по плану с этого...

Модификация полного перебора в метод ветвей и границ
Добрый день. Я в C# еще только разбираюсь, а тут появилось задание.. сделать алгоритм полного...

Метод ветвей и границ для задачи теории расписаний
Добрый день. Стоит задача распределить методом ветвей и границ несколько объектов (в программе...

Метод ветвей и границ: Нахождение минимального пути между городами
Всем привет, не у кого нет случаем уже готовой проги (с исходником), написанной на C#, решающая...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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