Рішення задачі комівояжера методом найближчого сусіда в середовищі програмування delphi

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

Основна суть даного методу полягає в тому, що побудова оптимального маршруту, починається з довільного населеного пункту, і, на кожному кроці, доповнюється новим, який, в свою чергу, повинен бути найближчим до останнього відвіданого пункту, та ще не включеним в маршрут. В кінці роботи алгоритму, маршрут замикається в цикл, який і приймається за наближене рішення. Відмітимо, що  попри свою простоту, алгоритм методу найближчого сусіда, як і інші «жадібні» алгоритми, в деяких випадках, може видавати неоптимальні рішення. Яким чином це відбувається можна ознайомитись перейшрвши за посиланням Рішення задачі комівояжера методом найближчого сусіда.

Після того, як зміст методу що реалізується відомий, зупинемося більш детально на основних моментах роботи delphi-програми. Отже, після запуску проекту, на екрані появиться форма наступного вигляду:

Читати повністю

Розв'язок задачі комівояжера методом Монте-Карло в середовищі програмування delphi

Delphi-програма реалізує статистичний алгоритм методу Монте-Карло, з допомогою якого здійснюється розв'язок задачі комівояжера (також відома як задача про бродячого торговця). Тобто, основна суть delphi-проекту зводиться до побудови маршруту таким чином, щоб комівояжер побував у кожному пункті по одному разу і повернувся у початковий. Відмітимо, що в якості критерію оптимальності може слугувати мінімальний час проводений в дорозі, мінімальні витрати на переміщення і, звичайно, мінімальна довжина шляху.

Отже, після запуску проекту, на екрані появиться форма наступного вигляду:

Головне вікно проекту "Розв'язок задачі комівояжера методом Монте-Карло"

Головне вікно проекту "Розв'язок задачі комівояжера методом Монте-Карло"

Тобто для того, щоб знайти розв'язок деякої задачі комівояжера (в нашому випадку розв'язується задача, яку ми розглядали при вивченні теоретичної частини методу Монте-Карло для рішення задач такого типу), від користувача вимагається задати кількість населених пунктів, в яких повинен побувати комівояжер, заповнити таблицю значеннями, які відповідатимуть одному з вищевказаних критеріїв оптимальності та натиснути кнопку "Знайти оптимальний маршрут".

Читати повністю