Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Dokumentatsiya.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
4.97 Mб
Скачать

Як завантажити до матриці данні з файлу

При завантаження з файлу даних до матриці даних у програмі існують певні критерії щодо цього файлу:

  1. Файл повинен бути текстовим документом з розширенням «.txt»;

  2. У файлі в першому рядку, через пробіл, повинно бути записано кількість рядків та кількість стовпчиків. (Для матриці задачі комівояжера кількість стовпчиків та рядків однакова, тому у файлі в першому рядку треба записати два однакових числа);

  3. Починаючи з другого рядка файлу, треба записати матрицю даних у формі таблиці.

Цим трьом критеріям треба слідкувати обов’язково, бо без них данні не завантажаться до матриці в програмі.

Приклад організування текстового файлу «MATR.TXT»:

4 4

0 2 16 3

2 0 10 8

16 10 0 11

3 8 11 0

Як користуватися розділом «Тур по Україні» Алгоритм користування

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

Спочатку на карті України треба вибрати перший обласний центр з якого ви починаєте свій тур і до якого вам треба повернутися. Далі ви вибираєте на карті усі обласні центри які хочете відвідати, і закінчивши це, вибираєте метод розв’язку задачі. Коли все буде готово натисніть кнопку «Підрахувати» і вам видасться найоптимальніший маршрут та його відстань у кілометрах.

Коли ви отримаєте свій результат, щоб почати заново, треба спочатку очистити всі поля і карту України кнопкою «Очистити все».

Щоб звіритися з даними відстаней між обласними центрами ви можете продивитися довідник відстаней між обласними центрами, натиснув на кнопку «Таблиця відстаней між обласними центрами».

Призначення кнопок та інформаційних полей

- Карта України з обласними центрами. При натисканні на один з обласних центрів він виділяється, запам’ятовується у пам’яті програми і записується до списку «Перелік областей, що входять до маршруту».

- В цей список записуються обласні центри, які ви вибрали на карті.

- Методи розв’язку, після вибору областей які ви хочете об’їхати потрібно вибрати один із методів розв’язку задачі. За базовими налаштуваннями стоїть метод повного перебору.

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

- Поля видачі результату.

- Очищає усі поля. Кнопку слід застосовувати коли ви вже розв’язали задачу і хочете очистити все, щоб записати нові данні і розв’язати іншу задачу.

- Відкриває таблицю відстаней між обласними центрами України. Працює як справ очник, для користувача.

5.Фрагменти програмного коду

5.1.Метод повного перебору

{********************** ПОВНИЙ ПЕРЕБІР*****************************}

procedure Perebor;

var i,j:byte;

begin

Matr:=a;

for i:=1 to N do

begin

Ver[i]:=i;

l[i]:=1;

M_flag[i]:=true;

end;

Ver[N+1]:=Ver[1];

l[N]:=0;

minLen:=10.E+6;

for i:=1 to N+1 do

minPath[i]:=0;

i:=1;

while i<n do

begin

flag:=PathLength(Ver,lenPath);

if flag =true then

if lenPath < minLen then

begin

minLen:=lenPath;

minPath:=Ver;

end;

i:=1; xpos:=0;

while l[i]=n-i+1 do

begin

m_flag[i]:= not m_flag[i];

l[i]:=1;

if m_flag[i] then xpos:=xpos+1;

i:=i+1;

end;

if i<n then

begin

if m_flag[i] then k:=l[i]+xpos

else k:=n-i+1-l[i]+xpos;

x:=Ver[k];Ver[k]:=Ver[k+1]; Ver[k+1]:=x;

Ver[N+1]:=Ver[1];

l[i]:=l[i]+1;

end;

end;

end;

function PathLength(var Path: ShortPath; var l:double): Boolean;

var flag: boolean;

i : byte;

eps : double;

begin

Eps:= 1.E-10;

flag:= true;

i:=1; l:=0;

while (flag = true) and (i<=N) do

begin

if (matr[path[i], path[i+1]])>EPS then

l:=l+matr[path[i], path[i+1]]

else flag:=false;

i:=i+1;

end;

Result:=flag;

{ pathlength:=flag;}

end;

{*************************** ПОВНИЙ ПЕРЕБІР*****************************}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]