Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом ИПОВС 2003 / Пояснительная запискаFinalVersion.doc
Скачиваний:
57
Добавлен:
16.04.2013
Размер:
1.28 Mб
Скачать
    1. Конфигурация технических средств

Программа занимает в оперативной памяти компьютера 8 MB. Поскольку база данных выполнена в видеMSAccess, память на сервер базы данных не требуется. Программа работает в семействеWindows, причем одновременно с множеством других программ. Исходя из этого, можно определить минимальные требования, предъявляемые программой:

Процессор – IntelCeleron500 (AMDK6-2 500)

Память – 64 MB

HDD– 30MBсвободных

Screen– 800x600SVGA

Принтер – любой (опционально)

Рекомендуемые требования значительно выше. Это является следствием ресурсоёмкости эвристических алгоритмов, применяемых в программе. Улучшение параметров компьютера очень сильно влияет на скорость сходимости алгоритма, и прирост производительности откликается скоростью работы программы. Поэтому рекомендуемые требования следующие:

Процессор – AMDAtlon(Duron) 1000 илиIntelPentium3 (Celeron) 1000

Память – 256 MBDDR

HDD– 30MBсвободных

Screen– 800x600SVGA

Принтер

Даже эти рекомендуемые требования не являются ничем запредельным в настоящее время, когда ведущие производители процессоров преодолели частоту 3ГГц, а память дешевеет на глазах, в SD-RAMи вовсе не выпускается. Таким образом, любой современный компьютер позволяет комфортно работать с программой. Поскольку остальные программы, применяемые в туризме уже требуют определённых ресурсов, применение моей системы не потребует от фирмы модернизации парка компьютеров.

  1. Рабочий проект

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

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

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

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

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

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

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

fGene:arrayofTGene; //Собственно, гены

Работа с объектами этого класса происходит при помощи следующих методов.

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

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

procedureSetGeneSize(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, которое хранит текущую приспособленность хромосомы, конструктор, деструктор и следующие методы и свойства.

procedureAssign(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.