Для того, чтобы сократить затраты машинного времени при работе программы был применен следующий подход – после запуска программы пользователь указывает необходимые для рассмотрения прайс-листы и листы заказа, и они перекачиваются в динамические массивы. В результате этого программе не надо будет при поиске оптимального решения обращаться к базе данных, что значительно увеличивает быстродействие программы.
Для отладки и тестирования программы были применены следующие методы: установка контрольных точек в программе, прогон программы по шагам на тестовых данных.
Тестовые данные для отладки и тестирования небольшие: четыре прайс-листа, в каждом из которых предлагается по пять медикаментов, причем цены в первом прайс-листе у всех товаров равны 1,1; во втором – 2,2; в третьем – 3,3; в четвертом – 4,4; в атрибутах прайс-листов установлены скидки; ;количество листов заказа равно четырем и суммарная потребность -- четыре медикамента в различных количествах.
Тестировалась выборка данных в динамические массивы при различных ситуациях: задавались существующие и несуществующие даты листов, выборка по отметке производилась при наличии отмеченных листов и наоборот.
При тестировании работы методов формирования заказа вычислялись заранее выходные данные для каждого из методов формирования заказа, а затем запускались сами методы, и результаты их работы сравнивались с рассчитанными.
Затем в прайс-листах выборочно у товаров ставились нулевые цены – значит, что товар не предлагается, и опять проходило тестирование.
При отладке и тестировании работы генетического алгоритма на каждом шаге выводились значения вех особей популяции, их потомков, мутантов и т.д.; проверялось выполнение всех операторов генетического алгоритма.
Испытание системы
Последней задачей дипломного проекта должна быть апробация системы на реальном предприятии.
Реальным предприятием, как уже ранее упоминалось, является Белгородский территориальный фонд ОМС. Здесь товарами являются лекарственные средства, изделия медицинского назначения и расходные материалы, а заказчиками – лечебно-профилактические учреждения города и области. В настоящее время Белгородский территориальный фонд ОМС закупает медикаменты на сумму двенадцать – тринадцать миллионов рублей.
Для испытания "Системы поддержки принятия решений для формирования заказа на торгово-закупочном предприятии" были взяты следующие исходные данные:
n прайс-листы 12 (двенадцати) поставщиков;
n листы заказа, потребности которых в общем объеме составляют 277 (двести семьдесят семь) медикаментов;
В итоге сложность алгоритма перебора, формирующего заказ по минимальным ценам невелика: 12*277=3324. Но сложность алгоритма перебора, формирующего заказ по минимальной стоимости с учетом скидок колоссальна: , поэтому алгоритм перебора здесь неуместен. А генетический алгоритм находит оптимальное решение или близкие к оптимальному решения за реальное время.
В ходе испытаний были сформированы заказы всеми методами, реализуемыми в программе:
n по максимальным ценам;
n на одного поставщика;
n по минимальным ценам;
n генетический алгоритм по минимальной стоимости учетом скидок.
Результаты работы генетического алгоритма с различными настройками были сравнены с результатами работы других методов на столбчатой диаграмме, предоставляемой в программе специально для этих целей. Сравнительная оценка показала преимущество генетического алгоритма при формировании заказа с учетом скидок над методами, не использующие этот подход (см. рисунки 2.13, 2.14, 2.15, 2.16). Здесь порядок заказов, сформированных различными методами такой же, как и при перечислении выше. На рисунке 2.13 представлен первый эксперимент.
|
На рисунке 2.14 представлен второй эксперимент.
На рисунке 2.15 представлен третий эксперимент.
На рисунке 2.16 представлен четвертый эксперимент.
3.2. Оценка надежности
Надежность работы разработанного программного обеспечения была обеспечена за счет:
n написания триггеров для баз данных;
n написания для баз данных триггеров, вызывающих исключения;
n введения различных ограничений в базы данных;
n за счет проверки вводимой пользователем информации при работе программы.
Триггеры в базах данных выполняют действия, которые обеспечивают корректное заполнение баз данных, каскадные обновления и многие другие удобства при работе с базами данных. Триггеры действуют тогда, когда запись вставляется, изменяется или удаляется. Основные, имеющиеся в базах данных триггеры указаны в описании баз входных данных (см. п. 2.3.3.2) и описании баз выходных данных (см. п. 2.3.3.3).
Триггеры, вызывающие исключения, выдают сообщения об ошибке тогда, когда пользователь пытается удалить из базы данных необходимую для ее корректной работы информацию, например, на удаляемую из таблицы запись есть ссылка в другой таблице.
Ограничения в базах данных применены следующие:
n первичные ключи;
n ненулевые поля.
В установки программы пользователь может ввести некорректную информацию: неправильно указать дату или число, ввести дату несуществующих прайс-листов или листов заказа и т.д. Программа анализирует введенную пользователем информацию и в зависимости от серьезности случая выдает сообщение об ошибке и ждет нового ввода, выдает предупреждение и продолжает работу, просто информирует и продолжает работу.
В результате использования вышеперечисленных методов надежность программы повышается и устраняется возможность возникновения фатальных ошибок при работе программы.
Применение вычислительной техники на предприятии ведет к экономии затрат на заработную плату за счет сокращения численности персонала, к уменьшению отчислений на социальные нужды, экономии материальных ресурсов за счет сокращения количества и унификации отчетных форм, приросту прибыли за счет выполнения дополнительных объемов работы, сокращению потерь за счет принятия своевременных и обоснованных управленческих решений. В результате применения вычислительной техники с соответствующим программным обеспечением облегчается труд работников предприятия и увеличивается быстрота принятия управленческих решений.