- •1.Теоретична частина
- •1.1.Теоретична частина з математики
- •Методи розв’язку задачі
- •1.2.Теоретична частина з інформатики
- •2.Опис роботи
- •3.С труктурна схема
- •4.П осібник користувача Теорія
- •Як користуватися розділом «Методи розв’язання задачі» Алгоритм користування
- •Як завантажити до матриці данні з файлу
- •Як користуватися розділом «Тур по Україні» Алгоритм користування
- •5.Фрагменти програмного коду
- •5.1.Метод повного перебору
- •5.2.Метод гілок та меж
- •5.3.Жадібний алгоритм
- •6.Апаратні вимоги
- •7.Комплектація програми
- •8.Напрямки використання
- •Висновки
- •Додатки Список літератури:
- •Список інтернет-джерел:
1.2.Теоретична частина з інформатики
Програма створена у середовищі програмування Delphi7. Також, для створення зображень, заставок та інтерфейсу програми, взагалі, використовувалися графічні редактори Adobe Photoshop CS4, Paint.NET. Для створення mht-документів, для завантаження у теоретичну частину, довідку та у розділ «Що таке задача комівояжера», використовувалася програма Microsoft Office Word 2003.
Для створення даної роботи використано наступні компоненти Delphi:
TImage – для завантаження малюнків;
TLabel – для підписання елементів на формі;
TStringGrid – для заповнення матриці та заповнення таблиць з даними;
Приклад використання:
for i:=1 to NumberEdit.Value do
for j:=1 to NumberEdit.Value do
stringgrid1.Cells[j,i]:=Floattostr(a[i,j]);
TButton, TToolButton, TBitBtn – для здійснення різного роду операцій, таких як: переміщення по формах, відкриття нових форм, та здійснення підрахунків.
TLabelEdit, TListBox – для виведення результатів розв’язання на форму.
TPanel – елемент інтерфейсу, потрібен для скупчення декількох елементів в одному місці на формі.
TSpinEdit – для регулювання кількості стовпчиків та рядків у матриці.
Приклад використання:
procedure TMainForm.ResetStringGrid1(const n: Integer);
var
i: Integer;
begin
StringGrid1.ColCount:= n + 1;
StringGrid1.RowCount:= StringGrid1.ColCount;
for i:= 1 to StringGrid1.RowCount-1 do
begin
StringGrid1.Rows[i].Text:= IntToStr(i);
StringGrid1.Cols[i].Text:= StringGrid1.Rows[i].Text;
end;
end;
procedure TMainForm.NumberEditChange(Sender: TObject);
begin
ResetStringGrid1(NumberEdit.Value);
end;
TRadioGroup – для того щоб у користувача була можливість вибирати методи розв’язку з переліку методів розв’язку;
TsaveDialog, TOpenDialog – для того щоб відбувалися збереження файлів та завантаження файлів до програми;
Приклад завантаження файлів
opendialog1.InitialDir:= extractfilepath(paramstr(0));
if opendialog1.Execute then fname:= opendialog1.FileName;
Приклад збереження файлів
SaveDialog1.FileName:= 'Метод гілок та меж.txt';
SaveDialog1.DefaultExt:= 'txt';
SaveDialog1.Filter:= 'Text Files (*.txt)|*.txt|All Files (*.*)|*.*';
SaveDialog1.FilterIndex:= 0;
if (SaveDialog1.Execute) then
Code:= SaveList(BoundList, 'Данні методу гілок та меж:', SaveDialog1.FileName);
TMainMenu – для активації головного меню на формі;
TWebBrowser – для відображення web-сторінок у форматі mht.
Приклад використання
Webbrowser1.Navigate(extractfilePath(paramstr(0))+'Sourse/Theory/Texts/1.mht');
TTreeView – для організування списку пунктів довідки у розділі «Довідка». При натисканні на пункт до TWebBrowser завантажується mht-документ;
Приклад використання:
for i:=0 to 7 do
if treeview1.Items.Item[i].Selected
then treeview1.Items.Item[i].Expand(true);
if treeview1.Items.Item[0].Selected
then WebBrowser1.Navigate(extractFilePath(paramstr(0))+'Sourse/Help/Texts/1.mht');
2.Опис роботи
Робота складається з п’яти розділів, які користувач може побачити у головному меню:
Що таке «Задача комівояжера»
Теорія
Методи розв’язку задачі
Тур по Україні
Довідка
Це та форма через яку здійснюються усі переходи між розділами, що робить користування програмою дуже зручним.
О
сь
так виглядає вікно головного меню
(рис.9).
Зовнішній вигляд головного меню
рис. 9
У розділі «Що таке «Задача комівояжера» користувач зможе взагалом дізнатися, що це за задача. Опис ЗК у цьому розділі не опирається на математичні факти, а розповідає користувачу про історично-складену ЗК, як взагалі з’явилось питання пошуку найкоротшого маршруту.
Інформація у розділі подана у WEB – браузері.
О
сь
так виглядає вікно розділу «Що таке
«Задача комівояжера»
(рис.10):
Зовнішній вигляд розділу «Що таке «задача комвояжера»
рис. 10
У розділі «Теорія» користувач має змогу більш детальніше познайомитися з задачею комівояжера та описом, як вважає автор роботи, основних методів розв’язку ЗК.
В цьому розділі користувач зможе ознайомитися з усіми аспектами задачі комівояжера: з формулюванням самої задачі, з її математичною моделлю, з прикладами задач типу ЗК, з терміном «матриця» та з теорією графів, на яку опираються описи методів розв’язку задачі.
Інформація про теорію подається у WEB – браузері, при натисканні на один з пунктів теорії, що дуже легко та зручно.
О
сь
так виглядає вікно розділу «Теорія»
(рис.11):
Зовнішній вигляд розділу «Що таке «задача комівояжера»
рис. 11
Розділ «Методи розв’язання задачі» - основний розділ програми. У ньому користувач має змогу розв’язати задачу комівояжера трьома методами, запропонованими автором програми, завантажити результати розв’язку до порівняльної таблиці, де він зможе зіставити ці методи між собою на якісність. Також результати занесені до порівняльної таблиці можна зберегти в окремий текстовий файл.
Заповнення матриці даним користувач може робити декількома способами: заповнити вручну, заповнити випадковими числами та заповнити готові данні з текстового файлу.
Також користувач може продивитися теорії про методи не повертаючись до «Теорії», а натиснув на кнопку зі знаком питання навпроти метода.
О
сь
так виглядає вікно розділу «Методи
розв’язання задачі» (рис. 12):
Зовнішній вигляд розділу «Методи розв’язання задачі»
рис. 12
О
сь
так виглядає порівняльна таблиця (рис.
13):
Зовнішній вигляд порівняльної таблиці
рис. 13
У розділі «Тур по Україні» користувач має змогу продивитися один з найпоширеніших прикладів застосування задачі комівояжера – пошук найкоротшого маршруту, при об’їзді певної кількості міст. Так у цьому розділі представлена карта України з обласними центрами.
Користувач повинен вибрати місто з якого він виїжджає (і до якого він повернеться) та вибрати міста які він хоче відвідати. Програма видасть йому оптимальний маршрут відвідувань областей (найкоротший шлях) та покаже його відстань.
Також користувач може відкрити таблицю відстаней між обласними центрами України та звірити методи з нею.
На формі є підказки, які говорять, в якій послідовності і що треба робити, щоб підрахувати і знайти оптимальний маршрут руху. Це дуже зручно та полегшує роботу у цьому розділі.
Ось так виглядає вікно розділу «Тур по Україні (рис. 14):
З
овнішній
вигляд розділу «Тур по Україні»
рис. 14
А
так виглядає вікно таблиці відстаней
між обласними центрами України:
У розділі «Довідка» користувач зможе ознайомитися з механізмом роботи програми, прочитати як нею треба користуватися та знайти опис усіх компонентів програми.
Цей розділ реалізовано так, що користувач вибирає у списку потрібний йому пункт і у WEB – браузері відображається потрібна йому інформація.
Ось так виглядає вікно розділу «довідки» (рис. 15):
З
овнішній
вигляд розділу «Довідка»
рис. 15
