Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом Voldem@r / Оно / ПЗ_release.doc
Скачиваний:
49
Добавлен:
16.04.2013
Размер:
1.6 Mб
Скачать

1.3. Выводы

В исследовательской части пояснительной записки были рассмотрены основные принципы генетических алгоритмов и показана их пригодность для решения поставленной задачи.

В конструкторской части были сформулированы требования к программе, описаны разработанные алгоритмы, а также структура и формат входных и выходных данных. Кроме того, была описана иерархия классов, которая составила основу программы.

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

Объём самостоятельно разработанного программного кода составляет порядка 160 Кб или около 6 тысяч строк.

2. Технологический раздел

2.1. Использование стандартных библиотек

2.1.1. Библиотека stl

STLStandart Template Library – это стандартная библиотека шаблонов, которая представляет большой набор структур данных и алгоритмов [6]. STL - это не просто расширение языка программирования C++, недавно он был принят комитетом по стандартизации ANSI/ISO в качестве составляющей стандартной библиотеки C++. STL поддерживают все современные компиляторы. Как видно из названия, библиотека STL основана на шаблонах. Шаблонами называются функции или классы, определяемые без указания одного или нескольких типов. При использовании шаблона эти типы передаются в виде аргументов явно или косвенно.

Основные компоненты STL - контейнеры и стандартные алгоритмы (такие как сортировка, поиск и т. д.). Контейнер - это объект, который содержит набор других объектов. Пример - обычный массив. Но в отличие от массива, контейнеры не имеют фиксированного размера (что очень удобно и весьма эффективно при написании программ). Размер контейнера можно изменять, добавляя или удаляя объекты из контейнера. Есть следующие контейнеры:

  • vector - линейный массив

  • list - двусвязанный список

  • queue - структура данных типа очередь

  • deque - очередь с двухсторонним доступом

  • stack - структура данных типа стек

  • set - ассоциативный массив уникальных ключей

  • multiset - ассоциативный массив с возможность дублирования ключей

  • map - ассоциативный массив с уникальными ключами и значениями

  • multimap - ассоциативный массив с возможность дублирования ключей и значений

Алгоритмы STL - это шаблоны функций, работающих с объектами.

Доступ к данным, находящимся внутри контейнера, осуществляется с помощью итераторов. Итераторы - это обобщённые указатели, которые позволяют работать с различными структурами данных (контейнерами) единообразным способом.

Есть пять категорий итераторов в зависимости от операций, определённых для них: ввода (input iterators), вывода (output iterators), последовательные (forward iterators), двунаправленные (bidirectional iterators) и произвольного доступа (random access iterators).

Основная идея STL заключается в уменьшении зависимости от стандартных библиотек C++. Главная беда стандартных библиотек – очень тесная их связь с данными, что делает их неудобными для работы с типами данных пользователя. STL позволяет работать с любыми типами данных и производить над ними операции. Кроме того, STL отделяет структуры данных от алгоритмов, которые с ними работают [7].

Таким образом, использование библиотеки STL оправдывает себя, в частности, когда необходимо организовывать хранение переменных пользовательских типов в достаточно большом и неизвестном заранее количестве. Вся работа по динамическому распределению памяти перекладывается на библиотеку STL, программисту нет нужды следить за правильным распределением памяти и, самое главное, её своевременным освобождением.

Соседние файлы в папке Оно