
- •Оглавление
- •Обоснование выбора языка программирования.
- •Обоснование выбора структур данных для решения задачи.
- •Спецификации программных модулей.
- •Обоснование выбора типа интерфейса и описание основных форм ввода-вывода.
- •Тестирование программы.
- •Заключение
- •Приложение 1
- •Алгоритмы обработки данных
- •Порядок контроля и приемки.
- •Приложение 2
- •Приложение 3
- •Приложение 4
Порядок контроля и приемки.
Табл. П1.2
Наименование контрольного этапа |
Сроки контроля |
Отметка о приеме |
Техническое задание в бумажном виде |
1 октября |
|
Продолжение табл. 1.2
Обобщенный алгоритм в бумажном виде |
30 октября |
|
Приблизительный интерфейс в электронном виде |
10 ноября |
|
Не менее 50% реализованной программы в электронном виде |
17 ноября |
|
Расчетно-пояснительная записка в бумажном виде (без приложений) |
15 ноября |
|
Защита |
20 – 24 декабря |
|
Приложение 2
Обобщенный алгоритм программы
Любой муравьиный алгоритм, независимо от модификаций, представим в следующем виде
• Пока (условия выхода не выполнены)
Создаём муравьев
Ищем решения
Обновляем феромон
Дополнительные действия
Теперь рассмотрим каждый шаг в цикле более подробно
1. Создаём муравьев
Стартовая точка, куда помещается муравей, зависит от ограничений, накладываемых условиями задачи. Потому что для каждой задачи способ размещение муравьев является определяющим. Либо все они помещаются в одну точку, либо в разные с повторениями, либо без повторений.
На этом же этапе задаётся начальный уровень феромона. Он инициализируется небольшим положительным числом для того, чтобы на начальном шаге вероятности перехода в следующую вершину не были нулевыми.
2. Ищем решения
• Вероятность перехода из вершины i в вершину j определяется по следующей формуле
Где τij(t) - уровень феромона, dij - эвристическое расстояние, a и β - константные параметры.
При =0 выбор ближайшего города наиболее вероятен, то есть алгоритм становится жадным.
При β = О выбор происходит только на основании феромона, что приводит к субоптимальным решениям.
Поэтому необходим компромисс между этими величинами, который находится экспериментально.
3. Обновляем феромон
• Уровень феромона обновляется в соответствии с приведённой формулой
Где ρ - интенсивность испарения, Lk
(t) - цена текущего
решения для k-ого
муравья, a Q
- параметр, имеющий
значение порядка цены оптимального
решения, то есть
- феромон, откладываемый k-ым
муравьем,
использующим ребро (i,j).
4. Дополнительные действия
• Алгоритм локального поиска.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, XPMan, Buttons;
type
Ant=record
City: array of integer;
Route: array of integer;
T: integer;
now: integer;
D: array of array of integer;
end;
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit6: TEdit;
Edit7: TEdit;
Label9: TLabel;
Button2: TButton;
Label10: TLabel;
XPManifest1: TXPManifest;
BitBtn1: TBitBtn;
procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,