Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Рабочий проект. 
Информационная система выбора оптимальных туристских маршрутов

РефератПомощь в написанииУзнать стоимостьмоей работы

Свойство Sutability хранит текущую приспособленность популяции, но его значение доступно только через свойство fSutability, описание которого находится в разделе public. Класс TChromosome порождён от TBits и представляет собой хранилище информации, включающее методы обработки информации. В нём объявлены следующие переменные: В переменной fEpoch хранится номер текущей эпохи, который может быть… Читать ещё >

Рабочий проект. Информационная система выбора оптимальных туристских маршрутов (реферат, курсовая, диплом, контрольная)

Разработка программы

Разработка программы проводилась модульным способом. Все модули были созданы в среде Borland Delphi. Ниже приведу описание одного из самых сложных модулей, который реализует работу генетического алгоритма.

В модуле объявлены классы TChromosome и TGeneticAlgorithm. Это основные классы алгоритма, рассмотрим их подробнее.

Класс TChromosome порождён от TBits и представляет собой хранилище информации, включающее методы обработки информации. В нём объявлены следующие переменные:

Private //Раздел частных объявлений класса.

fDegree: integer; //Разрядность генов.

fGeneCount: integer; //Количество генов.

fGene: array of TGene; //Собственно, гены Работа с объектами этого класса происходит при помощи следующих методов.

procedure SetGeneCount (Value: integer); // Установка количества генов.

function GetGeneSize: integer; //Установка размеров генов.

procedure SetGeneSize (Value:integer); //Установка размера конкретного гена.

function GetGene (Index:integer):LongWord; //Получение значения гена.

procedure SetGene (Index:integer;Value:LongWord); //Установка значения гена.

function GetGeneAsInteger (Index:integer):LongInt; //Получение значения гена.

procedure SetGeneAsInteger (Index:integer;Value:LongInt); //Получение значения гена.

function GetGeneAsFloat (Index:integer):double; //Получение значения гена.

procedure SetGeneAsFloat (Index:integer;Value:double); //Получение значения гена В разделе открытых объявлений содержатся поле Suitability, которое хранит текущую приспособленность хромосомы, конструктор, деструктор и следующие методы и свойства.

procedure Assign (Source: TChromosome); //Копирование информации из одной хромосомы в другую.

property GeneCount: integer read fGeneCount write SetGeneCount; //Количество генов.

property GeneSize: Integer read GetGeneSize write SetGeneSize; //Размер генов.

property GeneValue [Index:integer]: Longword read GetGene write SetGene; //Значение гена.

property GeneAsInteger [Index:integer]: LongInt read GetGeneAsInteger write SetGeneAsInteger; //Значение гена.

property GeneAsFloat [Index:integer]: double read GetGeneAsFloat write SetGeneAsFloat; //Значение гена Класс TGeneticAlgorithm достаточно громоздкий, поэтому приведу описания лишь самых важных его свойств и методов.

Переменная fPopulation хранит набор хромосом, то есть рабочий материал для работы алгоритма.

В переменной fEpoch хранится номер текущей эпохи, который может быть использован для остановки программы, если алгоритм не сходится слишком долго.

Свойство Sutability хранит текущую приспособленность популяции, но его значение доступно только через свойство fSutability, описание которого находится в разделе public.

Функция fGetSutability — это указатель на внешнюю функцию, которая определяет фитнесс-функцию текущей хромосомы.

fBestChromosome — лучшая особь данной популяции.

fInversion, fCrossover, fMutation — вероятности инверсии, кроссовера и мутации — важных параметров алгоритма.

Процедура OneEpoch производит один шаг эволюции.

Кроме вышеупомянутых, класс содержит большое количество свойств и методов, предназначенных для устройства работы алгоритма. Полное описание их заняло бы недопустимо большой объём. Полный текст модулей, включая этот, содержится в приложении 1.

Показать весь текст
Заполнить форму текущей работой