Программирование задач на графах Гамильтоновы и эйлеровы циклыРефераты >> Программирование и компьютеры >> Программирование задач на графах Гамильтоновы и эйлеровы циклы
нуля (оценки нуля, равные нулю, не ставились).
Выберем максимальную из этих оценок (в примере есть несколько оценок, равных единице, выберем первую из них, в клетке (1,2)).
Итак, выбрано нулевое ребро (1,2). Разобьем все туры на два класса – включающие ребро (1,2) и не включающие ребро (1,2). Про второй класс можно сказать, что придется приплатить еще 1, так что туры этого класса стоят 35 или больше.
Что касается первого класса, то в нем надо рассмотреть матрицу в табл. 6 с вычеркнутой первой строкой и вторым столбцом.
Дополнительно в уменьшенной матрице поставлен запрет в клетке (2,1), т. к. выбрано ребро (1,2) и замыкать преждевременно тур ребром (2,1) нельзя.
1 |
3 |
4 |
5 |
6 |
2 |
1 |
4 |
1 |
0 |
3 |
01 |
- |
1 |
3 |
4 |
0 |
1 |
- |
0 |
5 |
3 |
3 |
01 |
- |
табл. 8 |
- |
1 |
2 |
3 |
4 |
5 |
6 |
1 |
- |
01 |
0 |
3 |
3 |
6 |
2 |
01 |
- |
1 |
4 |
1 |
0 |
3 |
1 |
2 |
- |
01 |
0 |
3 |
4 |
4 |
5 |
01 |
- |
1 |
3 |
5 |
4 |
2 |
0 |
1 |
- |
0 |
6 |
7 |
1 |
3 |
3 |
01 |
- |
табл. 5 |
- |
1 |
3 |
4 |
5 |
6 |
2 |
01 |
1 |
4 |
1 |
0 |
3 |
1 |
- |
01 |
0 |
3 |
4 |
4 |
01 |
- |
1 |
3 |
5 |
4 |
0 |
1 |
- |
0 |
6 |
7 |
3 |
3 |
01 |
- |
- |
1 |
3 |
4 |
5 |
6 |
2 |
01 |
1 |
4 |
1 |
0 |
3 |
03 |
- |
01 |
0 |
3 |
4 |
3 |
01 |
- |
1 |
3 |
5 |
3 |
0 |
1 |
- |
0 |
6 |
6 |
3 |
3 |
01 |
- |
табл. 7 |
табл.6
Уменьшенную матрицу можно привести на 1 по первому столбцу, так что каждый тур, ей отвечающий, стоит не меньше 35. Результат наших ветвлений и получения оценок показан на рис.6.
Кружки представляют классы: верхний кружок – класс всех туров; нижний левый – класс всех туров, включающих ребро (1,2); нижний правый – класс всех туров, не включающих ребро (1,2). Числа над кружками – оценки снизу.
Продолжим ветвление в положительную сторону: влево - вниз. Для этого оценим нули в уменьшенной матрице C[1,2] на табл. 7. Максимальная оценка в клетке (3,1) равна 3. Таким образом, оценка для правой нижней вершины на рис. 7 есть
- |
3 |
4 |
6 | |||||
2 |
1 |
3 |
03 | |||||
4 |
03 |
- |
3 | |||||
5 |
0 |
03 |
0 | |||||
табл. 10 | ||||||||
- |
3 |
4 |
5 |
6 | ||||
2 |
1 |
3 |
1 |
0 | ||||
4 |
01 |
- |
1 |
3 | ||||
5 |
0 |
02 |
- |
0 | ||||
6 |
3 |
2 |
03 |
- | ||||
табл. 9 | ||||||||
35+3=38. Для оценки левой нижней вершины на рис. 7 нужно вычеркнуть из матрицы C[1,2] еще строку 3 и столбец 1, получив матрицу C(1,2),(3,1) на табл. 8. В эту матрицу нужно поставить запрет в клетку (2,3), так как уже построен фрагмент тура из ребер (1,2) и (3,1), т.е. [3,1,2] и нужно запретить преждевременное замыкание (2,3). Эта матрица приводится по столбцу на 1 (табл. 9), таким образом, каждый тур соответствующего класса (т.е. тур, содержащий ребра (1,2) и (3,1)) стоит 36 и более.