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

Реферат Метод гілок та меж для решение задач цілочісельного программирования





ємо его з усіх елементів відповідного рядка. Отрімаємо матрицю, наведення по рядках, з елементами


.


. Если в матриці, Наведеної по рядках, виявляв стовпці, что НЕ містять нуля, то наводимое ее по стовпцях. Для цього в кожному стовпці матриці вібіраємо мінімальній елемент, и віднімаємо его з усіх елементів відповідного стовпця. Отрімаємо матрицю


,


КОЖЕН рядок и стовпець, якої містіть хоча б один нуль. Така матриця назівається Наведеної по рядках и стовпцях.

. Підсумовуємо елементи І, отрімаємо константу приведення


,


яка буде нижніх межею множини всех допустимих гамільтоновіх контурів, тобто


.


. Знаходімо ступенів нулів для Наведеної по рядках и стовпцях матриці. Для цього подумкі нулі в Матіца замінюємо на знак «?» И знаходімо торбу мінімальніх елементів рядка и стовпця, відповідніх Цьом нулю. Запісуємо ее в правому верхньому кутку Клітки:


.


. Вібіраємо дугу, для якої степень нульового елемента досягає максимального значення


.


. Розбіваємо безліч всех гамільтоновіх контурів на две підмножіні і. Підмножіна гамільтоновіх контурів містіть дугу, - ее НЕ містіть. Для Отримання матриці контурів, что включаються дугу, вікреслюємо в матриці рядок и стовпець. Щоб не допустіті Утворення негамільтонова контуру, замінімо симетричного елемент на знак «?».

. Наводимое матрицю гамільтоновіх контурів. Нехай - константа ее приведення. Тоді нижня межа множини Визначи так:


.


. Знаходімо множини гамільтоновіх контурів, что НЕ включаються дугу. Віняток дуги досягається заміною елемента в матриці на?.

. Робимо приведення матриці гамільтоновіх контурів. Нехай - константа ее приведення. Нижня межа множини візначається так:


.


. Порівнюємо Нижні множини, підмножіні гамільтоновіх контурів і. Если, подалі розгалуження в Першу Черга підлягає множини. Если ж, то розбіття підлягає множини.

Процес розбіття множини на підмножіні супроводжується побудова дерева розгалужень.

. Если в результате розгалужень отрімуємо матрицю, то візначаємо отриманий розгалуженням гамільтонів контур и его Довжину.

. Порівнюємо Довжину гамільтонова контуру з ніжнімі межами обірваніх гілок. Если довжина контуру не перевіщує їх ніжніх між, то Завдання Виконання. У ІНШОМУ випадка Розвиваємо Гілки підмножін з нижніх межею, Меншем отриманий контуру, до тихий пір, поки НЕ отрімаємо маршрут з меншими Довжина б або не переконаємося, что такого не існує.


Математична модель задачі комівояжера


Завдання комівояжера может буті сформульована як цілочісельна введенням булевих змінніх, если маршрут Включає переїзд з міста i безпосередно в місто j и в ІНШОМУ випадка. Тоді можна Задати математичну модель задачі, тобто Записатись цільову функцію и систему обмежень:


(1)


Умови (2) - (4) в сукупності забезпечують, что Кожна змінна дорівнює або нулю, або одиниці. При цьом обмеження (2), (3) вісловлюють умови, что комівояжер побуває в шкірному городе один раз на него прібувші (обмеження (2)), и один раз з него віїхавші (обмеження (3)).

проти ціх обмежень НЕ достаточно для постановки задачі комівояжера, так як смороду НЕ віключають решение, де вместо простого циклу, что проходити через n вершин, відшукуються 2 і более ОКРЕМЕ циклу (підціклу), что проходити через менше число вершин. Тому Завдання, описана рівняннямі (2) - (4) винна буті Доповнено ограниченной, что забезпечують зв'язність шуканого циклу.

Для того, щоб віключіті при постановці Завдання всі Можливі підціклі в систему обмежень задачі включаються Такі обмеження:


, Де, і.


Алгоритм решение


Дана матриця відстаней, представлена ??в табліці 1. необходимо помощью алгоритмом Літтла вірішіті Завдання комівояжера.


Табл.1

ji1234561? 71621217213? 211543233253? 311794131027? 33125921914? 51642175923?

) Праворуч до табліці прієднуємо стовпець Ui, в якому запісуємо мінімальні елементи відповідніх рядків. Віднімаємо елементи Ui з відповідніх елементів рядка матриці.


ji123456U i 1? 716212172213? 21154323133253? 3117934131027? 3312105921914? 512642175923? 5

2) Внизу отріманої матриці прієднуємо рядок Vj, в Якій запісуємо мінімальні елементи стовпців. Віднімаємо елементи Vj з відповідніх стовпців матриці.


ji123456U i 1? 716212172213? 21154323133253? 3117934131027? 3312105921914? 512642175923? 5

) У результате Обчислення отрімуємо матрицю, наведення по рядках и стовпцях, яка зображена у виде табліці 2.


Табл.2

...


Назад | сторінка 2 з 4 | Наступна сторінка





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

  • Реферат на тему: Автоматизація розв'язання задачі на находженіе матриці в складі іншої м ...
  • Реферат на тему: Розробка в середовищі Turbo Pascal програми обчислення суми елементів рядкі ...
  • Реферат на тему: Програмування алгоритмів роботи з частинами матриці. Складання програми ви ...
  • Реферат на тему: Розробка в середовищі Turbo Pascal програми сортування елементів, що знаход ...
  • Реферат на тему: Сортування рядків матриці в програмі Pascal