Автоматизация тендерных закупок фонда государственного имущества

Примечаниеот редактора: учебное заведение не указано
Загрузить архив:
Файл: ref-21832.zip (326kb [zip], Скачиваний: 143) скачать

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

1 ПОСТАНОВКА ЗАДАЧИ РАЗРАБОТКИ СИСТЕМЫ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ ДЛЯ ФОРМИРОВАНИЯ ЗАКАЗА НА ТОРГОВО-ЗАКУПОЧНОМ ПРЕДПРИЯТИИ

1.1 Описание предметной области

1.1.1 Деятельность торгово-закупочного предприятия и общие подходы к ее оптимизации

1.1.1.1 Понятие коммерческой организации

1.1.1.2 Работа с посредниками

1.1.1.3 Практическое применение маркетинга

1.1.1.4 Размещение заказов через торги

1.1.1.5 Информационный обмен на торгово-закупочном предприятии

1.1.2. Территориальный фонд ОМС – организация, осуществляющая деятельность во многом аналогичную деятельности торгово-закупочного предпри­ятия

1.2 Техническое задание к разработке системы поддержки принятия решений для формирования заказа на торгово-закупочном предприятии

1.2.1 Цель разработки и ее назначение

1.2.2 Постановка задачи

1.2.3 Требования к программному и аппаратному обеспечению

1.2.4 Основные требования к разрабатываемому программному обеспе­чению

1.3 Выбор и обоснование математического метода решения задачи

1.3.1 Аналитический обзор состояния проблемы

1.3.2 Генетические алгоритмы

1.3.3 Возможные случаи применения генетического алгоритма

1.3.4 Символьная модель генетического алгоритма

1.3.5 Работа генетического алгоритма

2РАЗРАБОТКА СИСТЕМЫ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ ДЛЯ ФОРМИРОВАНИЯ ЗАКАЗА НА ТОРГОВО-ЗАКУПОЧНОМ ПРЕДПРИЯТИИ

2.1 Обоснование выбора инструментальных и аппаратных средств

2.1.1 Языки программирования

2.1.1.1 Язык Turbo Pascal

2.1.1.2 Язык TurboС

2.1.1.3 Язык Delphi Client/Server Suite

2.1.1.4 Язык C++ Builder

2.1.2 Системы управления базами данных

2.1.2.1 СУБД Paradox и dBase

2.1.2.2 СУБД InterBase

2.1.3 Выбор аппаратных средств

2.2 Выбор алгоритма решения задачи формирования заказа

2.3 Инженерное решение задач дипломного проекта

2.3.1 Общая структура проекта

2.3.2 Представление проекта в модульных диаграммах

2.3.3 Базы данных системы.

2.3.3.1 Справочники для автоматического занесения входной информации

2.3.3.2 База входных данных

2.3.3.3 База выходных данных

2.3.4 Подсистема конвертирования и наполнения базы входных данных

2.3.5 Подсистема формирования заказов на товары

2.4 Методы уменьшения затрат машинного времени, методы отладки и тестирования

3 ЭКСПЕРИМЕНТАЛЬНАЯ ОЦЕНКА РАЗРАБОТАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

3.1.Испытание системы

3.2. Оценка надежности

4 ОЦЕНКА ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА

Выводы по главе

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ


ВВЕДЕНИЕ

Каждое предприятие, будь то производственное или торгово-закупочное предприятие, стремится максимизировать свою прибыль добиваясь того, чтобы именно его товар (или услуга) пользовалась наибольшим спросомна рынке. Чем выше качество товара, чем меньше его себестоимость и больше объем реализации, тем больше масса прибыли.

Все предприятия, в той или иной степени делают покупки, продают товары или услуги, получают прибыль.

Торгово-закупочное предприятие – это предприятие, которое в целях получения прибыли периодически закупает товары у различных фирм-поставщиков и реализует их потребителям в условиях рынка оптом или в розницу. Условимся далее по тексту торгово-закупочное предприятие именовать словом предприятие.

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

Одним из наиболее распространенных методов современной торговли является размещение заказов через внутренние и между­народные торги. Торги — метод заключения договоров купли-про­дажи или подряда, при котором покупатель (заказчик) объявляет конкурс для продавцов (поставщиков) на товар или услуги с зара­нее определенными характеристиками и после сравнения полу­ченных предложений подписывает контракт с тем продавцом (по­ставщиком), который предложил товар на более выгодных для по­купателя (заказчика) условиях.

Белгородский территориальный фонд обязательного медицинского страхования– это внебюджетное некоммерческое учреждение Российской Федерации. В Законе «О медицинском страховании граждан в Российской Федерации»(статья 1) сказано, что обязательное медицинское страхование – это  часть государственного социального страхования; что граждане Российской Федерации имеют равные возможности в получении лекарственной и медицинской помощи, которая предоставляется за счет средств обязательного медицинского страхования в объеме и на условиях, соответствующих программам ОМС.

Важнейшей функциейтерриториального фонда ОМС является обеспечение  лечебно-профилактиче­ских учреждений Белгородской области и ее населения жизненно-необходи­мыми медицинскими средствами. Необходимые денежные средства в ТФОМС поступают с обязательных отчислений других предприятий и их подразделений.

Фонд ОМС производит закупки медикаментов по аналогии с торгово-закупочными предприятиями. Поставщики лекарственных средствТФОМС – это:оптовые, торгово-закупочные предприятия, аптеки; потребители – больные, медицинские учреждения.Поставщики являются посредниками между производителями лекарственных средств и территориальным фондом ОМС.

Выбор поставщиков медикаментов осуществляется на конкурсной основе через проведение тендера. Победители конкурса заключают договора с территори­альным фондом на поставку товаров, осу­ществляют поставку медикаментов в соответствии со спецификацией и разнарядкой, отчитываются перед фондом за выполнение до­говорных обязательств.

Формируя заказ на закупку товаров предприятие может учитывать такие факторы как: качество товара, цена товара, скидки на закупочную стоимость, надежность поставщика, упаковка и т.д. Таким образом, учитывая конкретные критерии, предприятие может составить оптимальный по этим критериям заказ (у какого поставщика какой товар и в каком количестве необходимо приобрести). Когда номенклатура товаров велика и предприятие имеет информацию о большом количестве поставщиков, то переработка имеющейся информации и формирование оптимального по каким-либо критериям заказа вручную займет много сил и времени. Учесть же скидки на каждом шаге поиска оптимального заказа просто невозможно.

Россия переходит к компьютеризации управления делопроизводством, применение которой позволяет достичь более высокой четкости и оперативности коммерческой работы. Основными задачами компьютеризации делопроизводства яв­ляются следующие:

· ускорение доведения коммерческой информации до испол­нителей, координация принятия решений и подготовки ответов;

· комплексность в проработке коммерческой документации;

· обеспечение возможности осуществления постоянного кон­троля за проработкой коммерческой документации, принятием решений и подготовкой ответов;

· установление четких направлений потоков коммерческой документации и определение мест хранения ее оригиналов;

· резкое уменьшение бумажных потоков коммерческих доку­ментов.

При формировании оптимального заказа на закупку товаров ЭВМ поможет принять правильное решение, освободив человека от длительной и рутинной работы.

Цель дипломного проекта: изучение и анализ рынка товаров, закупаемых и реализуемых торгово-закупочным предприятием; поддержка в принятии управленческих решений на такое приобретение необходимых партий товаров требуемых характеристик и качества, чтобы общая стоимость покупки и доставки всех приобретаемых у поставщиков товаров была минимальной.

Система поддержки принятия решений для формирования заказа на торгово-закупочном предприятии должна обеспечивать выполнение следующих задач:

1) сбор информации;

2) анализ собранной информации;

3) формирование оптимального заказа на закупку товаров;


1 ПОСТАНОВКА ЗАДАЧИ РАЗРАБОТКИ СИСТЕМЫ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ ДЛЯ ФОРМИРОВАНИЯ ЗАКАЗА НА ТОРГОВО-ЗАКУПОЧНОМ ПРЕДПРИЯТИИ

1.1 Описание предметной области.

1.1.1 Деятельность торгово-закупочного предприятия и общие подходык ее оптимизации.

1.1.1.1 Понятие коммерческой организации

Фирма – самое общее название предприятия, компании, хозяйственного общества, торгово-закупочного предприятия и т.д..

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

Это могут быть маленькие семейные фирмы, вложившие в коммерческий бизнес свои сбережения; более крупные, созданные в форме товариществ или обществ с ограниченной ответственностью путем сложения капиталов нескольких физических и юридических лиц, и, наконец, большие фирмы, представляющие закры­тые или открытые акционерные общества, образованные в результате приватизации или инвестирования капиталов банками, страховыми компаниями, фондами, предприятиями и другими организациями. Акционеры, обладающие наиболее крупными пакетами акций, управляют такими компаниями в интересах получения прибыли на вложенный капитал, определяя их общую коммерческую политику.

Мелкие, средние и крупные фирмы юридически и финансово независимы от своих клиентов. Малые фирмы, найдя на рынке нишу для сбыта определенных товаров, сами выбирают поставщиков и потребителей товаров, выступая посредниками между ними. Риск вложений капитала в малые фирмы достаточно велик, по­скольку им трудно конкурировать с крупными коммерческими образованиями, занимающими ту же нишу на рынке. Малые фирмы, как правило, не обладают достаточными резервами капи­тала для покрытия временных убытков, а их удельные издержки обращения обычно выше, чем у крупных фирм. Однако мелкие фирмы могут обладать и определенными преимуществами, напри­мер меньшей инерционностью вложенного капитала с возмож­ностью быстрой переориентации на другие секторы рынка, боль­шей оперативностью в принятии решений, относительно низ­кими административными расходами и т.д.

Средние и крупные фирмы обычно специализируются на тор­говле товарами предприятий одной или нескольких отраслей. Они вкладывают средства в серьезные исследования рынка, рекламные кампании, создание сбытовых сетей и систем технического обслу­живания, что часто не могут себе позволить мелкие фирмы. Сред­ние и крупные фирмы сами определяют обслуживаемый ими круг поставщиков и покупателей, коммерческие операции с которыми способны обеспечить стабильную и достаточно высокую прибыль. Если новые поставщики или потребители обратятся с предложе­нием о сотрудничестве, то такие фирмы, оценив ситуацию на рынке, могут принять наиболее выгодные заказы на сбыт или при­обретение товаров.

Независимые коммерческие фирмы выполняют посредничес­кие функции обычно за счет своих клиентов, т. е. поставщики сами финансируют разработку, изготовление и поставку своих то­варов, выплачивая посредническим фирмам вознаграждение из полученной выручки. Покупатели также финансируют коммер­ческие операции, вознаграждая фирмы за выполнение заказов.

Если исследование рынка показывает перспективу роста спро­са на определенные виды товаров, коммерческие фирмы ориенти­руют на этот сегмент рынка своих традиционных поставщиков. Если крупная коммерческая фирма заинтересована в содействии сбыту или приобретению определенных товаров, она может авансировать рекламные кампании, кредитовать расходы по обраще­нию товаров, а также финансировать их разработку и изготовле­ние. Таким образом, чем крупнее коммерческая компания, тем большими она обладает возможностями, с одной стороны, воздействовать на увеличение спроса, а с другой — стимулировать производство наиболее перспективных товаров. В Российской Федерации даже крупные коммерческие фирмы, действующие на внутреннем рынке, пока работают в основном односторонне, ограничиваясь стимулированием спроса. Только некоторые, наиболее крупные акционерные общества имеют возможность финансировать производителей, привлекая для этой цели кредиты.

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

1.1.1.2 Работа с посредниками

Товары торговля получает как путем прямых связей с предприятиями (прямые закупки товаров), так и через товарные биржи, оптовые ярмарки и т. п. (закупки товаров через посредников). Как правило, приобретение оптовых партий товаров осуществляется через агентов-посред­ников, брокеров, дилеров. Торговыми посредниками выступают специальные коммерческие фирмы, которые получают прибыль за счет разницы между закупочной и реализационной ценой или за счет комиссионного вознаграждения, выплачиваемого посред­нику продавцом или покупателем, а также иные предприятия и фирмы, занимающиеся посредничеством.

В условиях цивилизованного рынка торговые посредники освобождают предприятие от необходимости создавать сбыто­вую сеть, которая требует крупных инвестиций (в свою мате­риальную базу, в рекламу, транспорт, складское хозяйство и т. д.). Они оказывают производителям и покупателям полный комплекс услуг, связанных с заключением и реализацией ком­мерческой сделки — от поиска партнера и составления контрак­та до гарантийного и послепродажного обслуживания, включая поставку, монтаж, наладку, испытания, запуск в работу обору­дования.

Чем больше посредников использует предпринима­тель, тем меньше непосредственных контактов с потребителями он получит, и, следовательно, ниже будет степень его контроля за рынком.

Торгово-посреднические операции по характеру взаимоотношений между предприятием и посредником в прак­тике зарубежного рынка делятся на следующие основные виды:

· операции по перепродаже, когда посредник покупает то­вар у производителя, т. е. становится его собственником;

· комиссионные операции — строятся на основе договора комиссии между предприятием и посредником. При этом по­средник не покупает товар у производителя, а совершает сделки купли-продажи за его счет и за вознаграждение, обусловленное договором комиссии;

· агентские операции — строятся на основе агентского со­глашения не на конкретную сделку, а на срок с распростране­нием на определенный регион (заключаются между предприятием и посредником на осуществление операций купли-продажи за счет и от имени предприятия);

· брокерские операции, при которых посредник осуществля­ет контакт между продавцом и покупателем. Брокер за услугуполучает вознаграждение до 2-3 процентов. Такие операции почти всегда используются на биржах и аукционах и при купле-продаже одного или двух товаров.

1.1.1.3 Практическое применение маркетинга

Поиск поставщиков подразумевает:

· знание необходимого количества каждого вида продукции или услуг;

· определение коммерческих требований, таких как уровень обслуживания, поставка товара и т.д.;

· эффективное использование источников информации.

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

Существуют разные типы поставщиков:

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

· Новаторы, использующие новые идеи в области товаров и услуг.

Каждой фирме нужны и консервативные поставщики и новаторы.

Предприятию необходимо делать регулярный обзор поставщиков. Перечень требований к поставщику может включать следующее:

· индивидуальный размер заказа;

· частоту заказов;

· подробное описание товаров с техническими подробностями;

· качество;

· срок ожидаемого ответа;

· цены товаров;

· система скидок, которые позволят покупать большие партии товаров;

· налоги;

· обычные кредитные льготы;

· минимальный уровень заказа;

· временной интервал между заказом и доставкой;

· условия оплаты и доставки;

· наличие возможности получать товар частями в течение оговоренного периода, т.е. возможность подписать общий договор и в течение всего срока получать часть товаров в пределах оговоренного в общем договоре количества;

· условия срочных поставок.

Информация, полученная от поставщиков, фиксируется и может составить базу для постоянно ведущейся картотеки поставщиков.

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

Большие фирмы обладают так называемыми списками поступивших товаров. Это копии бланков заказов, используемые отделом, занимающимся приемкой заказанных товаров как для того, чтобы проверить соответствие доставленных товаров заказанным, так и для того, чтобы выявить несоответствия в количестве и дефекты в качестве полученных товаров.

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

Качество товара – важнейший уровень конкурентоспособности – это степень достижения заданного технического уровня в каждой единице продукции при ее массовом производстве. 

Значимость фактора сертификации продукции определяется тем, что товар, не прошедший требования обязательной сертификации, вообще не может продаваться потребителям.

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

При импорте лекарств и других товаров, срок годности кото­рых отсчитывается от даты их выпуска, в контрактах необходимо оговаривать, что срок годности, оставшийся к моменту поставки таких товаров, должен составлять не менее, например, 80% от срока годности, указанного на их упаковке. При импорте товаров в Россию следует согласовывать с иностранным продавцом более длительные гарантийные периоды с даты поставок, компенсирую­щие затраты времени на перевозки товаров на большие расстоя­ния до потребителей.

1.1.1.4 Размещение заказов через торги

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

Покупатели, принявшие решение о размещении заказов через торги, создают тендерные комитеты, в состав которых входят технические и коммерческие эксперты, представители администраций. Председателями тендерных комитетов обычно назначаются руководители организаций, производящих закупки. Тендерные комитеты осуществляют всю организационную работу по проведению торгов. Они публикуют объявления о торгах, распространяют их условия между участниками, анализируют представленные предложения и выносят решения о передаче заказов.

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

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

Объявления о проведении открытых торгов публикуются покупателями в газетах или специализированных журналах. Поэтому часто такие торги называют публичными. Понятие «открытые торги» происходит не от того, что об их проведении даются открытые публикации, а в связи с возможностью участия в них всех желающих фирм. Обычно открытые торги проводятся при размещении заказов на массовые товары, относительно неслож­ное оборудование и услуги, которые могут предложить многие фирмы.

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

Приглашения к участию в таких торгах рассылаются их устроителями непосредственно наиболее известным поставщикам и под­рядчикам, имеющим достаточно высокий авторитет на внутрен­нем или мировом рынке. Получив такие приглашения, продавцы выкупают условия торгов у тендерных комитетов.

Закрытые торги обычно проводятся на поставки дорогостоя­щего современного оборудования с высокими техническими ха­рактеристиками и на сложные подрядные работы, требующие вы­сокой квалификации.

При объявлении как закрытых, так и открытых торгов на сложное оборудование, при значительных объемах поставок и работ продавцы обычно объединяются в консорциумы, состоящие из нескольких иностранных фирм — поставщиков основного оборудования и одной или нескольких национальных фирм, привлекаемых в качестве поставщиков вспомогательного оборудования или исполнителей строительных и монтажных работ.

Открытые торги дают возможность бороться за получение заказов гораздо большему числу фирм и консорциумов. Обычно в открытых и предквалификационных торгах принимают участие до нескольких десятков фирм и консорциумов, в закрытых торгах число участников сокращается до 5—7.

К установленному тендерным комитетом сроку закрытия торгов участники готовят комплексные технические и коммерческие предложения. С целью сохранения коммерческой тайны участники торгов передают свои предложения в последние минуты перед закрытием торгов. После закрытия торгов участники не имеют права менять условия своих предложений и обязаны в случае получения заказа выполнить его строго в соответствии с представленными предложениями. Чтобы исключить возможность отказа участников от своих предложений, условия торгов предусматривают обязанность претендентов предоставлять банковские гарантии серьезности предложений (bidbond) в размере 1—3% от общей суммы предложения.

В день закрытия торгов тендерные комитеты организуют публичное вскрытие предложений. В присутствии всех участников торгов руководители тендерных комитетов вскрывают пакеты с предложениями, называют фирмы или составы консорциумов, подавших предложения, а также объявляют предложенные участ­никами цены. Такие торги называются гласными. При проведении негласных торгов тендерные комитеты не производят публичного вскрытия предложений и не объявляют ни состава участников, ни предложенных ими условий.

Объявление цен предложений еще не позволяет судить о том, кто из участников торгов получит заказ. Тендерные комитеты в те­чение определенного срока (от 1 до 3 месяцев) изучают представ­ленные предложения в комплексе с техническими характеристика­ми, ценами, условиями кредитов и платежей, которые могут иметь существенные различия у участников. Каждый тендерный комитет пользуется своей методикой сопоставления предложений. В про­цессе рассмотрения предложений тендерные комитеты имеют право обращаться к участникам с просьбами сделать дополнитель­ные уточнения и разъяснения их предложений. Нередко это право используется тендерными комитетами как повод для дополнительного согласования предложений участников в свою пользу.

Если участники торгов по каким-либо каналам получают ин­формацию о конкурентоспособности своих предложений, то они, давая разъяснения и уточнения, имеют возможность косвенно улучшить технические и коммерческие условия. Известны случаи, когда тендерные комитеты явно преднамеренно способствовали утечке информации о положении участников торгов. Такая прак­тика является грубым нарушением общепринятого порядка тор­гов. Особенно часто подобные нарушения допускаются при про­ведении торгов в странах с коррумпированной системой государ­ственного управления. Другие участники торгов, чьи интересы оказываются ущемленными, практически не имеют никаких прав опротестовать действия и решения тендерных комитетов.

При гласных торгах решения тендерных комитетов о передаче заказов победителям, а также информация о приведенных ценах других участников публикуется в печати или сообщается заинте­ресованным фирмам. При негласных торгах тендерные комитеты не публикуют никакой информации. Решение о передаче заказов при негласных торгах сообщается победителям в конфиденциаль­ной форме.

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

Схема проведения торгов представлена на рис. 1.1. 

t à

ПОДРЯДЧИК

З А К А З Ч И К

П Р Е Т Е Н Д Е Н Т

1. Принятие ре­шения о со­оружении объекта или закупке товара.

2. Создание тен­дерного коми­тета.

3. Разработка проектного задания или технических условий.

4. Разработка тендера:

·порядок проведения

·инструкция для претендентов;

·условия будущего контракта.

5. Объявление о торгах в средствах массовой информации (открытие торгов).

6. Выкуп усло­вий торгов претендентами

7. Разработка тех­нико-коммер­ческого пред­ложения.

8. Получение гарантий (банка) серьезности предложения.

9. Передача предложения в тендерный комитет (закрытие торгов).

10. Сопостав­ление пред­ложений претендентов.

11. Принятие тендерным комитетом решения о победителе торгов.

12. Подписание подрядного контракта.

13. Предоставление подрядчикам гарантий (банка) должного исполнения контракта.

14. Начало исполнения подрядного контракта.

1

2

11

6

3

4

5

7

8

9

10

12

12

13

14

Рис. 1.1 Схема проведения торгов



Контракты подписываются после предоставления поставщи­ками или подрядчиками банковских гарантий должного исполне­ния обязательств (performancebond) в размерах до 10% от общей суммы полученного заказа.

Размещение заказов через торги дает значительное преимуще­ство покупателям. Проведение торгов обостряет конкуренцию между поставщиками, а в случае участия в них консорциумов под­нимает ее на уровень состязания союзов крупнейших компаний.

В Российской Федерации принят Закон РФ от 06.05.99 №97-Ф3 «О конкурсах на размещение заказов на поставку товаров, выполнение работ, оказание услуг для государственных нужд».

1.1.1.5 Информационный обмен на торгово-закупочном предприятии

У торгово-закупочного предприятия имеется сеть собственных скла­дов, где хранится приобретенная у фирм-поставщиков продукция, и торго­вых точек (контрагентов), на которых происходит ее продажа. Условимся торгово-закупочное предприятие именовать термином "предприятие". Предприятие также может реализовывать объект потребления оптом заказ­чикам, предоставившим ему заказ на определенное количество товара одного или нескольких наименований. Причем товары могут постав­ляться заказчику со складов и торговых точек фирмы, если запасы товаров данных наиме­нований на складах и торговых точках не иссякли. Иначе предприятие учтет заказ этих товаров при составлении собственного заказа фирмам-поставщи­кам для последующего приобретения продукции.

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

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

Рис. 1.2 Информационный обмен на торгово-закупочном предприятии.

ЦЕНТРАЛЬ­НЫЙ ОФИС

. . .

ТОР­ГОВАЯ

ТОЧКА 1

ТОРГО­ВАЯ ТОЧКАP

. . .

ПОСТАВ­ЩИК 1

ПОСТАВ­ЩИК K

. . .

ЗАКАЗЧИК 1

ЗАКАЗЧИК L

. . .

СКЛАД

1

СКЛАД

M

Информация о потребно­стях товаров

Команды на перемещение товаров

Информация об излишках товаров

Предложе­ния   

товаров

Информация о потребностях товаров

Заказ

товаров

Команды на перемещение товаров

Информация об излишках товаров



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

Сейчас, в условиях перехода к рыночной экономике, ситуация поменялась: у предприятия появился выбор среди фирм, предлагающих свои товары. А значит, предприятие должно решить у какого поставщика наиболее выгодно (дешевле) приобрести тот или иной товар, надежен ли выбранный поставщик; должно оценить, насколько качественен предлагаемый поставщиком товар, что зависит от производителя товара. Существует также и другие критерии, которыми может руководствоваться предприятие при выборе фирмы-поставщика. Одним из таких критериев является гибкая система скидок, суть которой состоит в том, что фирма-поставщик, предлагая свою продукцию оговаривает скидки на определенные суммы закупок (часть стоимости закупок, выраженная в процентах, –вычитается из этой стоимости, если она равна указанной сумме или превысила ее).    

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

1.1.2 Территориальный фонд ОМС – организация, осуществляющая деятельность во многом аналогичную деятельности торгово-закупочного предпри­ятия

Белгородский территориальный фонд обязательного медицинского страхования– это внебюджетное некоммерческое учреждение Российской Федерации.

Важной его функциейявляется обеспечение всех лечебно-профилактиче­ских учреждений города и области жизненно-необходи­мыми медицинскими
средствами.При этом территориальный фонд ОМС не взимает платы с ЛПУ за доставленные лекарственные средства.

Денежные средства в фонд ОМС поступают с обязательных отчислений других предприятий и их подразделений.

Лечебно-профилактические учреждения нуждаются в лекарственных средствах для лечения и профилактики заболеваний своих пациентов.

Территориальный фонд ОМС обеспечивает ЛПУ области только теми медицинскими препаратами, которые входят в ОМС – 70% жизненно необходимых области медицинских препаратов. Причем ЛПУ направляют информацию о собственных потребностях в управление здравоохранения, которое анализирует полученную информацию, корректирует ее и отправляет сводныезаявки лекарственных средств в территориальный фонд ОМС. Фонд составляет по этим спискам общий заказ предприятиям, поставляющим лекарственные средства,проводя между ними тендер. Выигравшим в тендере предприятиям он предоставляет разнарядки (каким ЛПУ, в каком количестве они обязаны поставить определенные медицинские препараты и в течение какого времени), заключает с этими предприятиями договора и производит оплату указанных в разнарядке медицинских препаратов.

Предприятия-поставщики соответственно разнарядкам в течение оговоренного в договорах времени поставляют товары ЛПУ.

Разнарядки также рассылаются и заказчикам (ЛПУ области). Эти разнарядки уже содержат иную информацию: какие предприятия обязаны поставить данному ЛПУ определенные медицинские препараты, в каком количестве и в какой промежуток времени.

Заказчики (ЛПУ области) соответственно полученным разнарядкам ведут учет получаемых лекарственных средств и периодически предоставляют эту информацию территориальному фонду ОМС. Таким образом территориальный фонд ОМС контролирует выполнение договоров фирмами-поставщиками.

Заказ формируется с периодом в 1 месяц с помощью программного обеспечения, реализующего составление заказа по минимальным ценам медикаментов.

На рисунке 1.3 показаны связи между субъектами системы лекарственного обеспечения региона.


Рис. 1.3 Связи между субъектами системы лекарственного обеспечения региона

БЕЛГОРОДСКИЙ ТЕРРИТОРИАЛЬ­НЫЙ ФОНД ОМС

УПРАВЛЕНИЕ ЗДРАВООХРАНЕНИЯ ОБЛАСТИ

. . .

ПОСТАВ­ЩИК 1

ПОСТАВ­ЩИК K

. . .

ЛПУ 1

ЛПУ L

ТЕНДЕРНЫЙ КОМИТЕТ

Перечень лек. средств, оплачиваемых за счет средств ОМС

Руководящая и координир. деятельность

Сводная заявка на лек средства

Отчетность о проведенной работе за отчетный период

Заявки на лек. средства

Информация о территориальном заказе иобщей стоимости заказа

Согласование территориального заказа и перечня поставщиков

Информация о вы­полнении условий договоров предыду­щего отчетного пе­риода

Решение о распределении заказа между поставщиками, информация об условиях договоров

Формирование оптимального территориального заказа на лек. средства

Заключение договоров на поставку лек. средств и финансирование поставщиков

Информация о поставках лек. средств

Поставка лек. средств

Контроль выполнения договоров поставки

Информация о ценах и поставщиках

Отчетность о проведенной работе



1.2 Техническое задание к разработке системы поддержки принятия решений для формирования заказа на торгово-закупочном предприятии

1.2.1 Цель разработки и ее назначение.

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

Целью разработки в частном случае является изучение и анализ рынка лекарственных средств, реализуемых в Белгородской области Белгородским территориальным фондом обязательного медицинского страхования, а также поддержка БТФОМС в принятии решений на наиболее выгодное в стоимостном отношении приобретение жизненно необходимых медицинских препаратов для Белгородской области, обладающих требуемымихарактеристиками и качеством.

Разработка предназначена для: автоматизации обработки   информацииоценах  натовары (в частном случае, лекарственные средства) и скидки на суммы закупок у поставщиков, обработки информации (заказов), поступающейот заказчиков, проведения анализа состояния рынка товаров, проведения анализа спроса на товары, формирования оптимальных по закупочной стоимости и другим критериям вариантов заказов на товары. Критерии могут задаваться как заказчиками торгово-закупочного предприятия, так и самим торгово-закупочным предприятием.

1.2.2 Постановка задачи.

Система поддержки принятия решений для торгово-закупочного предприятия должна обеспечивать выполнение следующих задач:

1) Сбор информации.

2) Анализ собранной информации.

3) Формирование оптимального заказа.

1) Сбор информации.

Система должна предусматривать сбор и периодическое обновление сведений от организаций, торгующих необходимыми торгово-закупочному предприятию товарами, а также – сведений от заказчиков.

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

2) Анализ собранной информации.

Система должна обеспечивать проведение анализа предложений товаров и анализа спроса на товары

3) Формирование оптимального заказа.

Система должна позволять формировать оптимальный заказ на приобретение товарову фирм-поставщиков по заданным критериям и учитывать собственные складские запасы товаров и запасы в торговых точках (см. п. 1.1.1.5).

В связи с тем, что в роли торгово-закупочного предприятия выступает Белгородский территориальный фонд обязательного медицинского страхования, в роли товаров – жизненно-необходимые медицинские препараты для Белгородской области,  а в роли заказчиков – лечебно-профилактические учреждения Белгородской области, то в качестве критериев для формирования оптимального общего заказа могут быть использованы следующие критерии:

a) закупочная стоимость (интересует и само торгово-закупочное предприятие, БТФОМС, и его заказчиков, ЛПУ) – формирование заказа с минимальной общей стоимостью закупки;

b) критерии, задаваемые заказчиками, ЛПУ (в листе заказа заказчика указывается требуемое для конкретного товара значение, соответствующее указанному критерию):

nпроизводитель товара, определяющий его качество (если нет товара указанного производителя, то ищется товар альтернативного производителя); 

nсрок годности товара – срок годности товара в позиции заказа заказчика должен быть меньше срока годности в позиции прайс-листа поставщика;

c) критерии, задаваемые торгово-закупочным предприятием, БТФОМС (критерии выбора поставщиков):

nусловия поставки товаров;

nтерритория поставщика.

Причем, критерий "закупочная стоимость" при формировании оптимального общего заказа должен быть использован обязательно, значения, соответствующие критериям "производитель товара" и "срок годности товара" задаются в листах заказов заказчиков, использование же остальных из перечисленных критериев должно зависеть от выбора пользователя.

Формирование заказа с минимальной общей стоимостью закупки по критерию "закупочная стоимость" должно осуществляться с учетом скидок, предлагаемых фирмами-поставщиками на определенные суммы закупок (см. п. 1.1.1.5). Оценить экономическую эффективность такого метода оптимизации заказа по критерию "закупочная стоимость" можно, сравнив полученный результат с результатами, получение которых должно быть обеспечено следующими способами:

1) Формирование общего заказа с минимальной закупочной стоимостью, учитывая минимальные цены товаров, но не учитывая скидки на каждом шаге формирования заказа, то есть, скидки на суммы закупок у конкретных поставщиков учитываются только в окончательно сформированном общем заказе.

2) Формирование общего заказа с максимальной закупочной стоимостью, учитывая максимальные цены товаров, но не учитывая скидки на каждом шаге формирования заказа (скидки учитываются только в сформированном заказе).

3) Формирование общего заказа для одного поставщика.

1.2.3 Требования к программному и аппаратному обеспечению.

Инструментальными средствами, используемыми при разработке, а далее, и при работе системы поддержки принятия решений для торгово-закупочного предприятия являются: BorlandDelphiClient/ServerSuiteVersion 3.0, СУБД Interbase 5.0.

Кроме инструментальных средств при разработке и работе создаваемого программного обеспечения частично использованию подлежат следующие программные средства: MicrosoftWordдля Windows 95, MicrosoftExcelдля Windows 95, InternetExplorer, архиватор rar.

Так как вышеуказанные программные средства совместимы с такими операционными системами, как Windows95, Windows 98 и WindowsNT, и не совместимы с другими операционными системами, то настоятельно рекомендуется использовать одну из вышеперечисленных систем. Наиболее приемлимой является операционная система Windows 95.

В качестве аппаратного обеспечения работы системы поддержки принятия решений для торгово-закупочного предприятия должны использоваться IBM-совместимые персональные компьютеры с процессорами Pentium или, в крайнем случае, 486. Это обуславливается используемыми при разработке программными средствами и операционной системой соответственно. От быстродействия ЭВМ зависит скорость работы программного обеспечения, поэтому, чем мощнее ЭВМ, тем лучше.


1.2.4 Основные требования к разрабатываемому программному обеспечению.

СППР для торгово-закупочного предприятия должна  удовлетворятьследующим общим требованиям:

nиметь"дружественный" интерфейс, то есть интерфейс, рассчитанный на неподготовленного пользователя;

nдиалог системы с пользователем должен вестись в терминах и понятиях предметной области, привычной для пользователя;

nсистема должна быть открытой, то есть позволять проводить модификацию и добавление новых структур данных и модулей по реализации новых функций без каких-либо значительных изменений существующих структур данных и программных модулей;

nсистема должна быть надежной, то есть при любых корректных входных данных и запросах пользователя должны выдаваться корректные результаты, иначе должно быть выдано сообщение о некорректности введенных данных или некорректности произведенных действий.

При проектировании и разработке информационного обеспечения необходимо решить такие задачи, как:

nопределение состава данных, используемых при решении комплексов задач и их формализация;

nунификация входной и выходной информации, определение рациональных форм документооборота;

nразработка способов представления и хранения информации на всех этапах ее движения и обработки;

nразработка способов контроля вводимой информации;

nопределение состава и структуры нормативно-справочной информации.

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

1.3 Выбор и обоснование математического метода решения задачи

1.3.1 Аналитический обзор состояния проблемы

Чтобы найти оптимальный заказ по закупочной стоимости необходимо учитывать не только минимальные цены товаров, но и скидки, предлагаемые поставщиками на общую стоимость закупки. Таким образом, оптимальным заказом будет компромисс между минимальными ценами товаров и скидками на стоимость закупаемых у поставщиков партий товаров. Чтобы найти этот компромисс надо проанализировать все возможные варианты решений задачи. Такой подход называется методом перебора(см. п.1.3.3). Но из-за большого размера области значений алгоритм будет работать очень долго. Следовательно надо искать другой подход к решению задачи.

Функция, составленная по нашей задаче, не является линейной. Поэтому для решения этой задачи не могут использоваться методы линейного программирования. При использовании метода нелинейного программирования, градиентного спуска (см. п.1.3.3), будет найдено неоптимальное решение, так как, достигнув локального экстремума алгоритм останавливается, и, следовательно, для поиска глобального оптимума потребуются дополнительные усилия. Поэтому для решения поставленной задачи требуется применение кокого-либо другого алгоритма.

Создаваемый программный продукт для формировании оптимального заказа должениспользовать генетический алгоритм, реализующий метод случайного поиска по аналогии с теорией эволюции Дарвина. Применение этого алгоритма дает возможность находить близкие к оптимальным решения задачи. Причем данный алгоритм выполняется существенно быстрее других алгоритмов поиска на большом пространстве поиска и значительно экономит память компьютера. Эти характеристики алгоритма позволяют применять его для решения нашей задачи таким образом, чтобы для всех найденных промежуточных решений высчитывалась окончательная стоимость закупки с учетом гибких систем скидок фирм-поставщиков. В связи с этим генетический алгоритм может находить такие решения, которые становятся оптимальными, если к ним применить системы скидок, но являлись бы неоптимальными без их применения. Оптимизация формирования заказа по другим критериям тоже может осуществляться применением генетического алгоритма.

1.3.2 Генетические алгоритмы

Генетические алгоритмы - адаптивные методы поиска, используемые для решения задач функциональной оптимизации. Они основаны на естественном отборе – основном механизме эволюции, работающем по принципу "выживает наиболее приспособленный", который открыл Чарльз Дарвин. Подражая этому процессу генетические алгоритмы способнырешать реальные задачи, если те соответствующим образом закодированы. Генетические алгоритмы могут использоваться, например, для нахождения наиболее прибыльного варианта распределения капитала, при условии, что заданы минимальный и максимальный объем инвестиций для каждого проекта, для формирования оптимального заказа на закупку товаров. Они могут также использоваться для интерактивного управления процессом в автоматизированной системе управления, где важно не только определение правильного решения, но и время реакции системы. В отличии от эволюции, происходящей в природе, генетические алгоритмы только моделируют те процессы в популяциях, которые являются существенными для развития.

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

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

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

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

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

1.3.3 Возможные случаи применения генетического алгоритма

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

Достоинство генетического алгоритма состоит в том, что он способен манипулировать одновременно многими параметрами. Пусть есть реальная задача поиска оптимального решения. Если пространство поиска, которое предстоит исследовать, большое, и предполагается, что оно не совершенно гладкое и не является унимодальным (содержащим один гладкий экстремум) или не очень понятно, или если функция приспособленности с шумами, или если задача не требует строго нахождения глобального оптимума - т.е. если достаточно быстро просто найти приемлемое "хорошее" решение (не всегда наилучшее) - генетический алгоритм будет работать эффективно, превосходя другие методы, которые не используют знания о пространстве поиска.

Но бывают случаи, когда генетический алгоритм не работает эффективно.

Если пространство поиска небольшое, то наилучшее возможное решение может быть найдено методом полного перебора. Переборный метод наиболее прост в программировании. Для поиска оптимального решения (точки минимума целевой функции) требуется последовательно вычислить значения целевой функции во всех возможных точках, запоминая минимальное из них. Недостатком этого метода является большая вычислительная стоимость.

Метод градиентного спуска работает очень быстро, но не гарантирует оптимальности найденного решения. Он хорош для применения в унимодальных задачах, где целевая функция имеет единственный локальный экстремум (он же - глобальный). При этом выбираются некоторые случайные значения параметров, а затем эти значения постепенно изменяют, добиваясь наибольшей скорости "улучшения" значения целевой функции. Достигнув локального экстремума, такой алгоритм останавливается.

Комбинируя переборный и градиентный методы, можно получить хотя бы приближенное решение, точность которого будет возрастать при  увеличении времени расчета. Генетический алгоритм является таким комбинированным методом. Механизмы скрещивания и мутации аналогичны переборной части метода, а отбор лучших решений - градиентному спуску.

1.3.4 Символьная модель генетического алгоритма

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

Структура данных генетического алгоритма состоит из одной или большего количества хромосом (обычно из одной). Как правило, хромосома - это битовая строка, так что термин строка часто заменяет понятие "хромосома". В принципе, генетические алгоритмы не ограничены бинарным представлением. Пока ограничимся только структурами, которые являются одиночными строками по l бит.

Каждая хромосома (строка) представляет собой конкатенацию ряда подкомпонентов называемых генами. Гены располагаются в различных позициях или локусах хромосомы, и принимают значения, называемые аллелями. В представлениях с бинарными строками, ген - бит, локус - его позиция в строке, и аллель - его значение (0 или 1). Биологический термин "генотип" относится к полной генетической модели особи и соответствует структуре в генетического алгоритма. Термин "фенотип" относится к внешним наблюдаемым признакам и соответствует вектору в пространстве параметров. Простой пример - задача максимизации функции от нескольких переменных.

Обычно, методика кодирования реальных переменных состоит в их преобразовании в двоичные целочисленные строки достаточной длины - достаточной для того, чтобы обеспечить желаемую точность. Предположим, что 10-разрядное кодирование достаточно.

Установить соответствие между генотипом и фенотипом закодированных особей можно, разделив соответствующее двоичное целое число на (N*10-битная строка, представляющая конкатенацию кодировок Nпеременных. Первая переменная размещается в крайних левых 10 разрядах, тогда как последняя – в правой части генотипа особи (N*10-битовой строке).

Генотип - точка в N*10-мерном хеммининговом пространстве, исследуемом генетическим алгоритмом. Фенотип - точка в N пространстве параметров.

Чтобы оптимизировать структуру, используя генетический алгоритм, нужно задать некоторую меру качества для каждой структуры в пространстве поиска. Для этой цели используется функция приспособленности. В функциональной максимизации, целевая функция часто сама выступает в качестве функции приспособленности; для задач минимизации, целевую функцию следует инвертировать и сместить затем в область положительных значений.

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

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

1.3.5 Работа генетического алгоритма

Простой генетический алгоритм случайным образом генерирует начальную популяцию структур. Работа генетического алгоритма представляет собой итерационный процесс, который продолжается до тех пор, пока не выполнятся заданное число поколений или какой-либо иной критерий остановки. На каждом поколении генетического алгоритма реализуется отбор пропорционально приспособленности, одноточечный кроссовер и мутация. Сначала, пропорциональный отбор назначает каждой структуре вероятность Ps(i) равную отношению ее приспособленности к суммарной приспособленности популяции:

Затем происходит отбор (с замещением) всех n особей для дальнейшей генетической обработки, согласно величине Ps(i). Простейший пропорциональный отбор - рулетка Голдберга – отбирает особей с помощью n "запусков" рулетки. Колесо рулетки содержит по одному сектору для каждого члена популяции. Размер i-ого сектора пропорционален соответствующей величине Ps(i). При таком отборе члены популяции с более высокой приспособленностью с большей вероятностью будут чаще выбираться, чем особи с низкой приспособленностью.

После отбора, n выбранных особей подвергаются кроссоверу (иногда называемому рекомбинацией) с заданной вероятностью Pc. n строк случайным образом разбиваются на n/2 пары. Для каждой пары с вероятность Pc может применяться кроссовер. Соответственно с вероятностью 1-Pc кроссовер не происходит и неизмененные особи переходят на стадию мутации. Если кроссовер происходит, полученные потомки заменяют собой родителей и переходят к мутации.

Одноточечный кроссовер работает следующим образом. Сначала, случайным образом выбирается одна из n-1 точек разрыва (участок между соседними битами в строке). Обе родительские структуры разрываются на два сегмента по этой точке. Затем, соответствующие сегменты различных родителей склеиваются и получаются два генотипа потомков.На рисунке 1.4 представлен одноточечный кроссовер с точкой разрыва, равной 2.

Родитель1

Родитель2

Потомок1

Потомок2

Рис. 1.4 Одноточечный кроссовер с точкой разрыва, равной 2.

               

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

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

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

Существуют также такие операторы мутации как: генная мутация (ген заменяется на другой ген, удовлетворяющий требованиям к символьной модели задачи), макромутация точечная (точечная мутация в нескольких точках – битах хромосомы), макромутация генная (генная мутация в нескольких генах хромосомы), инверсная мутация (последний ген меняется с первым геном хромосомы, предпоследний – со вторым и т.д.)


2РАЗРАБОТКА СИСТЕМЫ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ ДЛЯ ФОРМИРОВАНИЯ ЗАКАЗА НА ТОРГОВО-ЗАКУПОЧНОМ ПРЕДПРИЯТИИ

2.1 Обоснование выбора инструментальных и аппаратных средств

В процессе обучения по специальности ПО ВТиАС в БелГТАСМ мною были изучены такие языки высокого уровня как Turbo Pascal (Турбо Паскаль) , TurboC (самостоятельное изучение), Delphi Client/Server Suite, системы управления базами данных: FoxPro, dBase, Paradox, InterBase.

Чтобы выбрать инструментальные средства для написания дипломного проекта, необходимо произвести обзор указанных программных средств.

2.1.1 Языки программирования

2.1.1.1 Язык Turbo Pascal

Язык Паскаль разрабатывался как язык для обучения основам систематического программирования. Процесс его развития осуществлялся по пути расширения возможностей.

Язык Паскаль разработан с учетом принципов структурного программирования. Для структурированных программ характерны легкость отладки и корректировки, низкая частота ошибок. Паскаль обладает полным набором структурных типов данных таких как простые переменные, массивы, файлы, множества, записи, записи с вариантами, ссылочные переменные.

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

Язык содержит ряд изобразительных средств таких как case, repeat, if, while, помогающих организовать ветвление в программе без использования операторов перехода, что способствует простому пониманию алгоритма.

Некоторые из основных расширений Паскаль-стандарта и дополнительные возможности Турбо Паскаля:

* Введены типы данных word,byte,string.

*Введены понятия типизированного и нетипизированного файлов и разработаны соответствующие процедуры.

*В Турбо Паскале разработаны процедуры и функции ввода-вывода для работы с любыми файлами.

*Предусмотрены процедуры и функции для работы с переменными типа string.

В Турбо Паскале разработаны программные средства для построения графических изображений на экране компьютера; создана интегрированная Среда разработчика (ИСР), то есть ряд специализированных средств и возможностей, позволяющих создавать на экране персональной ЭВМ так называемые “окна”. В рамках этих окон, рабочих областей, пользователь может задавать те или иные действия. ИСР является средством, используемым при создании, редактировании, компиляции, выполнении и отладке Паскаль-программ.

В Турбо-Паскале введено понятие модуля, определены его соответствующие части и разрешена отдельная компиляция модулей. Турбо Паскаль обеспечивает работу с заранее составленными фирмой Borland модулями, которые содержат наборы процедур, функций, необходимых для них объявлений, помогающих в написании программ.

Начиная с версии 5.5 Турбо Паскаль еще один современный метод проектирования программ —объектно-ориентированное программирование.

Объект — это структура данных, содержащая поля данных (подобно записи) различных типов и заголовки методов (процедур или функций). Это — как в природе — каждый объект имеет свои функциями. Основные свойства объекта — инкапсуляция, наследование, полиморфизм.

2.1.1.2 Язык TurboС

Язык Си разрабатывался как язык системного программирования. Его развитие шло по пути повышения надежности программ.

Язык Си поддерживает принципы структурного программирования, обеспечивает простой доступ к аппаратным средствам, является гибким. Такое свойство, как гибкость языка, предъявляет человеку, программирующему на нем, большие требования.

Программа Си состоит из небольших функций. Функции в Си – это и функции и процедуры Паскаля. Функция может возвращать значение, и тогда ее используют как функцию. Функция может и не возвращать значение, тогда говорят о возвращении нулевого значения (void – пустой тип), и функция может использоваться только как процедура.

Одна из функций Си-программы обязательно должна называться main(). С этой функции начинается выполнение программы. Вложенных функций в языке нет. В Си параметры в функции передаются только по значению. Если некоторый параметр передается для записи или изменения, то он должен быть передан и записан как указатель.

Описания переменных в Си являются и операторами. Операторы в Си аналогичны операторам Паскаля. В языке имеется множество операций и их приоритетов, которые способствуют возникновению побочных эффектов. В трактовке типов данных Си не является таким строгим как Паскаль. Синтаксис языка опасен, но позволяет писать компактные программы.

Например:

Операции увеличения и уменьшения увеличивают или уменьшают значение операнда на единицу и могут быть записаны как справа так и слева от операнда. Если знак операции записан перед операндом (префиксная форма), то изменение операнда происходит до его использования в выражении. Если знак операции записан после операнда (постфиксная форма), то операнд вначале используется в выражении, а затем происходит его изменение.

В Си нет строк переменной длины. В Си нет средств средств ввода и вывода, но функции ввода и вывода входят в стандартную библиотеку.

В Турбо Си, также как и в Турбо Паскале есть нововведения, такие как интегрированная среда разработчика, дополнительные операторы и типы, функции и т.д.

Основываясь на приведенных описаниях можно было бы в качестве программного средства для написания дипломного проекта выбрать язык Турбо Паскаль, так как:

· язык Турбо Паскаль используется в учебных целях и мое знание его проверено преподавателями в процессе написания лабораторных работ и сдачи экзаменов;

· удобочитаемость программ Турбо Паскаль лучше, чем программ Турбо Си;

· синтаксис языка безопасен;

· больше примитивных типов данных, чем в Турбо Си;

· трактовка типов данных более строгая, чем в Турбо Си.

Но структурированный подход к программированию уже устарел, и большей популярностью и удобством пользуется объектно-ориентированный подход. Хотелось бы получить возможность намного более быстрого и легкого написания программ, чем в Турбо Паскаль, облегчить процесс создания баз данных и объединения их с программой.Поэтому рассмотрим другие программные средства, такие как Delphi Client/Server Suite и С++Builder.

2.1.1.3 Язык Delphi Client/Server Suite

Говоря о том или ином средстве разработки приложений всегда хочется понять какие тенденции приводят к его появлению. Borland Delphi не является исключением из

правил.

Одно направление - объектно-ориентированный подход, хорошо структурирующий

задачу, как таковую, так и ее решение в виде прикладной системы.

Другое направление, возникшее во многом благодаря объектной ориентации, -

визуальные средства быстрой разработки приложений (RAD - Rapid Application

Development), основанные на компонентной архитектуре.

Третья тенденция - использование компиляции, а не интерпретации. Это объясняется тем, что скоростные характеристики компилируемых приложений в десятки раз лучше,

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

отчуждаемости готовых систем, так как отпадает необходимость "таскать за собой" сам

интерпретатор (run-time), выполненный обычно в виде динамической библиотеки и

занимающий в лучшем случае несколько сотен килобайт (а большинстве случаев -

два-три мегабайта). Отсюда и меньшая ресурсоемкость у скомпилированных систем.

Четвертая тенденция - возможность работы с базами данных универсальными

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

файл-серверных данных к архитектуре клиент-сервер.

Delphi создавался как продукт, в полной мере реализующий описанные тенденции, с архитектурой, открытой для расширения спектра поддерживаемых стандартов и

подходов.

Система объектно-ориентированного программирования Delphi Client/Server Suite производства корпорации Borland предназначена для операционных систем Windows 95 и NT. Интегрированная среда Delphi обеспечивает скорость визуальной разработки, продуктивность повторно используемых компонент в сочетании с мощью языковых средств Delphi, усовершенствованными инструментами и разномасштабными средствами доступа к базам данных.

Интегрированная среда разработки объединяет Редактор форм, Инспектор объектов, Палитру компонент.

Администратор проекта и полностью интегрированные Редактор кода и Отладчик - инструменты быстрой разработки программных приложений, обеспечивающие полный контроль над кодом и ресурсами.

Конструирование по способу "drag-and-drop " позволяет создавать приложение простым перетаскиванием захваченных мышью визуальных компонент из Палитры на форму приложения. Инспектор объектов предоставляет возможность оперировать со свойствами и событиями компонент, автоматически создавая заготовки функций обработки событий, которые наполняются кодом и редактируются в процессе разработки.

Свойства, методы и события - это именно те элементы языка, которые обеспечивают быструю разработку приложений в рамках объектно-ориентированного программирования. Свойства позволяют легко устанавливать разнообразные характеристики объектов. Методы производят определенные, иногда довольно сложные, операции над объектом. События связывают воздействия пользователя на объекты с кодами реакции на эти воздействия. События могут возникать при таких специфических изменениях состояния объектов как обновление данных в интерфейсных элементах доступа к базам данных. Работая совместно, свойства, методы и события образуют среду RAD быстрого и интуитивного программирования надежных приложений для Windows.

Исходные тексты Библиотеки Визуальных Компонент облегчают разработку новых компонент на базе готовых примеров.

Borland Database Engine (BDE) обеспечивает единообразную работу с локальными данными (Paradox, dBase) и серверами БД (Oracle, Sybase, MS SQL Server, InterBase и т.д.), за счет применения навигационных методов доступа к серверным СУБД двунаправленные курсоры, закладки и т.п.) и SQL - к локальным форматам (подмножество Local SQL).

Компилятор Delphi является самым быстрым; имеет общий генератор кода с Borland C++. Компилятор Delphi (точнее, Object Pascal) является продолжением линии компиляторов Turbo Pascal / Borland Pascal.

Открытые интерфейсы Delphi - Open Tools API - обеспечивают контроль над средой разработки "извне" и доступ к информации о проекте.

Система Delphi 3 Client/Server Suite предоставляет в распоряжение программистов-профессионалов высокопродуктивные средства разработки 16- и 32-разрядных приложений для операционных систем Windows 95, NT.

2.1.1.4 Язык C++ Builder

Среда С++ Builderпроизводства корпорации Borland во многом похожа на среду Delphi Client/Server Suite. C++Builder и Delphi скомпилируют и соберут готовое приложение с одинаковым успехом.

C++Builder, как следует из названия, построен на языке C++, который наиболее распространен в крупных фирмах, занимающихся разработкой математического обеспечения профессионального уровня.

Профессиональные C++ разработки пользуются гораздо большим спросом, нежели продукты системы Delphi, да и оплачиваются C++ программисты несколько выше.

C++Builder является более мощной системой, чем Delphi, однако, хорошо известно, что опытные разработчики способны справиться с поставленной задачей на Паскале лучше, чем большинство рядовых C++ программистов. Также, Delphi предоставляет более гибкие средства для разработки компонент, хотя созданные компоненты предназначены для внедрения в обе системы.

На основании приведенного выше описания языков Delphi и С++Builder и на основании того, что Delphi использует язык Объектный Паскаль, мой выбор остановился наDelphi Client/Server Suite (версии 3.0).

2.1.2 Системы управления базами данных

Среда Delphi Client/ServerSuite обеспечивает программисту условия для легкой и быстрой разработки и эксплуатации приложений, использующих базы данных, за счет специальных средств. Приведем краткое их описание.

BDE (Borland DatabaseEngine) – машина баз данных фирмы Borland (набор библиотек), выполняющая действия по доступу к данным и проверке их правильности.

SQLLinks – драйверы для работы с удаленными "промышленными" СУБД, такими как Sybase, MSSQLServer, Oracle. Для работы с SQL -сервером BorlandInterBase устанавливать SQLLinksнет необходимости. Доступ к таблицам локальных СУБД типа Paradox, dBaseтакже осуществляется BDEбез использования SQL Links.

BDEAdministrator – утилита для установки псевдонимов (имен) баз данных, параметров баз данных и драйверов баз данных на конкретном компьютере.

DatabaseDesktop (DBD) – средство для создания, изменения и просмотра БД. Эта утилита прежде всего ориентирована на работу с таблицами локальных ("персональных") СУБД, таких как Paradox и dBase. В ряде случаев может использоваться и для работы с таблицами удаленных СУБД. Например, из DBDможно с некоторыми ограничениями создавать таблицы БД, работающие под управлением InterBase, Oracle, и просматривать их содержимое.

DatabaseExplorer (SQLExplorer) – утилита для конфигурирования псевдонимов БД, просмотра структуры БД, таблиц БД, выдачи запросов к БД, создания словарей данных.

SQLMonitor – средства для трассировки выполнения SQL-запросов.

VisualQueryBuilder – средство в составе интегрированной среды Delphi для автоматического создания SQL-запросов методом QBE (QuerybyExample, запрос по образцу).

DataDictionary – словарь данных. Средство для хранения атрибутов полей таблиц БД отдельно от самих БД и приложений. Информация о полях может использоваться различными приложениями.

DataModule – невизуальные компоненты типа TDataModuleприменяются для централизованного хранения наборов данных в приложении, работающем с БД. Одним из главных удобств является приписывание каждому набору данных правил по управлению данными. Такие правила называются бизнес-правилами. Они обычно определяют реакцию системы при добавлении, изменении, удалении данных, при вводе ошибочных значений и реализует блокировку действий, которые могут разрушить ссылочную и смысловую целостность БД. Такие бизнес-правила, хранящиеся централизованно на уровне приложения, при использовании одного и того же набора данных в разных формах приложения, позволяют унифицировать поведение набора данных на уровне всего приложения.

ObjectRepository – репозиторий объектов Delphi. Будучи единожды разработанными для какого-либо приложения, формы с визуальными и невизуальными компонентами, а также компоненты TDataModuleмогут сохраняться в репозитории. Тогда они могут использоваться другими, вновь создаваемыми приложениями. Таким образом устраняется необходимость повторного написания идентичного или схожего кода в приложениях.

DataMigrationWizard – средство для перемещения данных между БД различных типов.

Невизуальные компоненты для работы с базой данных служат для соединения приложений с таблицами БД.

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

Компоненты для построения отчетов – около двадцати компонентов для построения отчетов.

LocalInterBaseServer – локальная однопользовательская версия SQL-сервера BorlandInterBase. Поддерживает два активных соединения клиентов с сервером. Используется в основном для создания БД, отладки клиентских приложений, которые будут работать с удаленными БД. В дальнейшем, после отладки, БД переносятся на действительно удаленный сервер, а приложение клиентского места перенастраивается для работы с удаленной БД.

InterBaseServerдля Windows 95 –4-пользовательская версия SQL-сервера BorlandInterBase, которая может устанавливаться на компьютерах, работающих под управлением Windows 95. Используется для тех же целей, что и Local InterBase Server, однако на InterBase для Windows 95 можно производить отладку в многопользовательском режиме, что важно для проверки корректности изменений, одновременно вносимых пользователями БД при параллельной работе с ней.

BDE включает в себя драйвер Paradox, при помощи которого осуществляется доступ к таблицам Paradoxв db-файлах. BDE игнорирует Paradox Engine в то время как другие программы для того, чтобы использовать файлы Paradox должны взаимодействовать с ParadoxEngine.

BDEсодержит драйверы, позволяющие работать с файлами dBase, Paradox, LocalInterBase, InterBase (не входит в поставку Delphi). Для работы с другими СУБД имеются необходимые средства поддержки ODBC.

Я решила остановиться на одной из СУБД, для подключения к которым не надо использовать ODBC, потому что ODBC взаимодействует с другими СУБД через собственные драйверы, что замедляет работу приложения.

2.1.2.1 СУБД Paradoxи dBase

Плоские системы – это системы, где файлы, содержащие таблицы находятся на жестком диске. Это обыкновенные файлы DOS. Плоские системы могут быть реляционными. Процессор баз данных, как, например, BDE, в этом случае работает непосредственно с файлами.

Paradox и dBaseпомещют каждую таблицу в отдельный файл и организуют базу данных в виде каталога. Это удобно при потере одного из файлов. Тогда не исключена возможность его восстановления (это мог быть, например, индексный файл), и другие таблицы базы данных не будут потеряны.

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

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

dBaseи Paradoxболее удобны в использовании, чем InterBase, но они хорошо работают до тех пор, пока можно подключать свой персональный компьютер к одному централизованному серверу и нет большого числа пользователей, работающих одновременно с одними и теми же таблицами.

При обеспечении многопользовательского доступа к БД были выявлены следующие недостатки:

· вся тяжесть вычислительной нагрузки при доступе к БД ложится на приложение клиента (при запросе на выборку данных из таблицы вся БД копируется на клиентское место, где и ведется выборка);

· локальные СУБД используют подход, ориентированный на работу с отдельными записями;

· неоптимально расходуются ресурсы клиентского компьютера в сети (когда копируется вся база данных на клиентское место при запросе на выборку информации из таблицы);

· низкий уровень безопасности данных, так как гораздо проще вносить изменения в отдельные таблицы, минуя приложения, например из DatabaseDesktop;

· правила работы базы данных (бизнес-правила) реализуются в приложении, что позволяет в разных приложениях, работающих с одной БД, проектировать взаимоисключающие бизнес-правила; смысловая целостность информации при этом может нарушаться;

· недостаточно развитый аппарат транзакций служит потенциальным источником ошибок.

Эти недостатки в использовании баз данных можно убрать переведя приложения из архитектуры плоских систем (файл-сервер) в архитектуру клиент-сервер.

2.1.2.2 СУБД InterBase

InterBase – это система клиент-сервер – масштабируемый высокопроизводительный SQL сервер баз данных, совершенный по простоте инсталляции, использования и обслуживания. SQL-сервер InterBase предназначен для хранения и обработки больших объемов информации в условиях одновременной работы с БД множества клиентских приложений.

Для задания смысловой и ссылочной целостности БД используются механизмы:

·отношение подчиненности между таблицами за счет первичных и вторичных

ключей;

· ограничения на значения полей таблиц (бизнес-правила);

· триггеры – подпрограммы, автономно выполняющиеся сервером до или после события изменения записи в таблице БД;

· генераторы – для создания и использования уникальных значений нужных полей.

Для ускорения работы клиентских приложений с удаленными БД могут быть определены хранимые процедуры – подпрограммы, способные выполнять запросы к БД. Текст таких процедур хранится на сервере в откомпилированном виде.

Могут использоваться определенные пользователем функции, реализовывающие функциональности, отсутствующие в наборе стандартных встроенных функций.

Могут определяться виртуальные таблицы (просмотры) из одной или нескольких таблиц. Просмотры можно просмотреть, создать и уничтожить.

Для управления сервером используется InterBase ServerManager.

Для создания и редактированияБД можно  использовать Windows InteractiveSQL (WISQL), на котором можно писать любые запросы, минуя BDE. Для создания, редактирования и просмотра БД можно также использовать DatabaseDesktopи SQL Explorer.

Таким образом, преимущества архитектуры клиент-сервер заключаются в следующем:

· большинство вычислительных процессов происходит на сервере; таким образом снижаются требования к вычислительным мощностям компьютера клиента;

· снижается сетевой трафикза счет посылки сервером клиенту только тех данных, которые он запрашивал (вся база данных не копируется на клиентское место);

· упрощается наращивание вычислительных мощностей – проще заменить один сервер на более мощный, чем много компьютеров с клиентскими приложениями;

· база данных на сервере – это один файл, в котором содержаться таблицы БД, бизнес-правила и другие компоненты БД; взломать такую БД нелегко; увеличивается защищенность БД от ввода неправильных значений, что обеспечивают бизнес-правила, автоматически проверяя вводимые значения; кроме того сервер отслеживает уровни доступа для каждого пользователя и блокирует попытки выполнения неразрешенных для пользователя действий;

· сервер реализует управление транзакциями и предотвращает попытки одновременного изменения данных; различные уровни транзакций определяют поведение сервера при одновременном изменении данных;

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

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

Так как предприятию, заключившему контракты с фирмами-поставщиками, нужно вести учет поступивших товаров, чтобы проверить соответствие доставленных товаров заказанным, то ему необходимо соответственное программное обеспечение. Это программное обеспечение тоже должно содержать справочники поставщиков, заказчиков, наименований товаров и т.д., содержащие те же самые значения, что и соответствующие справочники разрабатываемого программного обеспечения, что может обеспечиваться обращением к одной и той же базе данных по сети.

На основании всего вышесказанного я останавливаю свой выбор на СУБД InterBase (версии 5.0).  

2.1.3 Выбор аппаратных средств

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

Так как в качестве инструментального средства для разработки программного обеспечения используется Delphi 3.0 Client/Sever Suite, а для разработки системы баз данных – система управления базами данных Interbase 5.0 Server, то в качестве аппаратного обеспечения работы системы поддержки принятия решений для торгово-закупочного предприятия должен использоваться IBM-совместимый персональный компьютер с процессором Pentium или, в крайнем случае, 486. Желательно, чтобы память компьютера была не меньше 32 мегабайта.

От быстродействия ЭВМ зависит скорость работы программного обеспечения, поэтому, чем мощнее ЭВМ, тем лучше. Так как в качестве решения задачи дипломного проекта используется генетический алгоритм, который работает намного быстрее метода перебора, то можно было бы предположить, что задача может быть решена за очень малый промежуток времени. Но так как размерность входных данных в реальных условиях является очень большой (около 500 товаров и 50 поставщиков), и сложность метода перебора равна 50 в 500-й степени, то и сложность генетического алгоритма тоже не мала. Поэтому, для решения поставленной задачи особенно требуется быстродействующий компьютер, и чем больше его быстродействие, тем лучше.

Так как у разработчика в наличииимеется компьютер Pentium 166 MMX, который не особенно (малое быстродействие), но удовлетворяетпоставленным выше требованиям, то в качестве аппаратного средства для разработки системы поддержки принятия решений для формирования заказа будет использоватьсяименно этот компьютер.


2.2 Выбор алгоритма решения задачи формирования заказа

1) Информацию о предложениях товаров можно представить в виде двух таблиц:

a) Таблица цен P.

                                                                                                              Таблица2.1

Наименование Наименование

  поставщика           товара

Товар 1

. . .

Товар N

Поставщик 1

цена11

. . .

цена1N

. . .

. . .

Поставщик N

ценаN1

. . .

ценаNN

b) Таблица скидок S.

                                                                                                 Таблица2.2

Наименование       Сумма

  поставщика            закупки

Сумма 1

. . .

Сумма N

Поставщик 1

сумма11

. . .

сумма1N

. . .

. . .

Поставщик N

суммаN1

. . .

суммаNN

Примечание: С помощью таких же таблиц можно представить информацию о излишках товаров, при этом цены и суммы скидок нулевые. Такой подход позволяет достичь общности структур данных.

2) Информацию о потребностях товаров представим в виде таблицы :

Таблица2.3

Торговая точкаНазвание

  или Заказчик          товара

Товар 1

. . .

Товар N

Торговая точка 1

потребность11

. . .

потребность1N

. . .

. . .

. . .

Торговая точка P

потребностьP1

. . .

потребностьPN

Заказ 1

потребность(P+1)1

. . .

потребность(P+1)N

. . .

. . .

Заказ Е

потребность(P+E)1

. . .

потребность(P+E)N

Суммарная потребность в товарах представима в виде вектора C:

                                                                                             Таблица   2.4

Наименование товара

Товар1

. . .

Товар N

Суммарная потребность

потребность1

. . .

потребностьN

3) Заказ товаров формируется на основании вектора заказа N.

                                                 Таблица2.5

Наименование товара

Товар1

. . .

Товар N

Номер поставщика

номер1

. . .

номерN

4) Таким образом, для формирования оптимального заказа необходимо минимизировать функцию:

(2.1)

Минимизировать функцию 2.1 можно с помощью генетического алгоритма (обоснование см. в пункте 1.3.3).

При выборке оптимального заказа также могут учитываться неформальные факторы: качество товаров, срок годности и т.д. Поэтому необходимо разработать алгоритм генерации различных вариантов заказа, выбрать лучшие варианты. При этом окончательный выбор остается за руководителем.


2.3 Инженерное решение задач дипломного проекта

2.3.1Общая структура проекта

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

Структура программы "СППР для формирования заказа на торгово-закупочном предприятии" представлена на рисунке 2.1.

Рис. 2.1 Структура программы "СППР для формирования заказа на торгово-закупочном предприятии".

БД

ПРАЙС-

ЛИСТОВ

БД

ЛИСТОВ ЗАКАЗА

БД РАЗНАРЯДОК

БДЗАКАЗОВ

ФОРМИ­РОВАНИЕ

ЗАКАЗА

ВЫВОД ИНФОРМАЦИИ

АНАЛИЗСПРОСА

СОСТОЯНИЕ РЫНКА

КОН­ВЕР­ТИРОВАНИЕ

ИНФОР­МАЦИИ

КОН­ВЕР­ТИРОВАНИЕ

ИНФОР­МАЦИИ


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

Информация на вход программы может приходить в различном виде, например в виде файлов различных форматов и структуры. Для того, чтобы занести ее в базы входных данных ее необходимо обработать: преобразовать файлы в единый формат и структуру. Это происходит в блоках, называемых  "конвертирование", которые входят в подсистему конвертирования.

Обработанная информация затем заносится в базы входных данных.

Из базы входных данных информация поступает на вход подсистемы формирования заказа, где на основе полученных данных в результате взаимодействия пользователя и программы формируется оптимальный заказ на поставку товаров, и заказы, необходимые для оценки экономии за счет использования оптимального заказа.

Полученный заказ заносится в базу выходных данных, которая содержит в себе базу данных заказов и базу данных разнарядок на поставку и получение продукции. Сформированные заказы пользователь может просмотреть, отредактировать. Он может выбрать интересующий его заказ и просмотреть разнарядки на поставку и получение товаров этого заказа. Пользователь может вывести на принтер любой заказ и разнарядку.

Информация из базы данных прайс-листов может использоваться для просмотра пользователем состояния рынка: по отмеченным поставщикам и товарам выводится информация о том, предлагает ли каждый из поставщиков отмеченные товары и по каким ценам. Эта информация также может выводиться на принтер.

Информация из базы данных листов заказа может использоваться для анализа спроса на рынке: по каждому из отмеченных заказчиков выдается информация какие из отмеченных товаров ему необходимы и в каком количестве. Эта информация по желанию пользователя может быть выведена на печать.

2.3.2 Представление проекта в модульных диаграммах

Вследствие того, что выбранный инструмент разработки (Delphi) представляет собой среду, базирующуюся на объектно-ориентированной методологии построения программ, то целесообразно провести проектирование основных компонент программы в соответствие с этой методологией. Для описания общей структуры программы будем использовать диаграммы Гради Буча, а именно: высокоуровневые и обычные модульные диаграммы.

На рисунке 2.2 представлена высокоуровневая модульная диаграммавсего проекта – СППР для формирования заказа на торгово-закупочном предприятии.

СППР для формирования заказа на торгово-закупочном предприятии

Подсистема конвертирования и наполнения базы входных данных

Подсистема формирования заказов на товары

База данных СППР

Рис. 2.2 Высокоуровневая модульная диаграмма СППР для формирования заказа на торгово-закупочном предприятии.


В функции СППР для формирования заказа на торгово-закупочном предприятии входит решение следующих подзадач:

1.ввод и обработка входных данных системы : прайс-листов поставщиков, листов заказа заказчиков;

2.формирование на основе введенных данных общего заказа поставщикам по одному из выбранных пользователем методов : по минимальным ценам, по максимальным ценам, на одно предприятие, генетический алгоритм по минимальной стоимости заказа и поставки; формирование разнарядок на поставку и получение товаров по сформированному заказу.

3.просмотр состояния рынка и анализ спроса на рынке;

4.вывод на экран и на принтер разнарядок на поставку и на получение товаров;

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

Для реализации этих функций система включает в себя и использует подсистему конвертирования и наполнения базы входных данных (подзадача 1), подсистему формирования заказов на товары (подзадача 2) и базу данных, которая используется для хранения входных и выходных данных системы, поставляемых подсистемами, а также используется подсистемой конвертирования и наполнения базы входных данных (см. п. 2.3.4).

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

На рисунке 2.3 представлена модульная диаграмма СППР для формирования заказа на торгово-закупочном предприятии (обозначим ее СППР).

Главный модуль (СППР) по сути является модулем, в котором происходят вызовы подпрограмм и использование результатов работы других модулей, выполняющих необходимые в данный момент действия. Этот модуль связан с главной формой проекта, которая появляется после запуска программы.  

Модули "Ввод входных данных" и "Работа со справочниками" отвечают за введение данных,необходимых для решения основной задачи системы, реализуемого в подсистеме формирования заказов на товары – и решения остальных подзадач, которые представлены нарисунке 2.3.


Рис. 2.3 Модульная диаграмма СППР для формирования заказа на торгово-закупочном   предприятии.

Просмотр состояния рынка и спроса

СППР (главный модуль)

Столбчатая диаграмма

Ввод входных данных

Сформированные заказы

Разнарядки

Работа со справочниками


В модуле "Ввод входных данных" (подзадача 1) реализуется ввод содержимого прайс-листов и листов заказа, который осуществляется вручную, автоматизированно, с помощью списков часто используемых товаров, или автоматически, с использованием конвертированных файлов.Модуль "Работа со справочниками" отвечает за введение данных в справочники.

Модуль "Просмотр состояния рынка и спроса" отвечает за решение подзадачи 3 системы, в которой используются входные данные, полученные в результате работы ранее указанных модулей ввода.

Модули "Сформированные заказы", "Разнарядки" и "Столбчатая диаграмма " работают уже с выходными данными, полученными в результате работы подсистемы формирования заказов на товары. Модуль "Сформированные заказы" отвечает за работу пользователя с базой выходных данных, в которойхранится информация о полученных в результате работы программы заказах. Модуль "Разнарядки" реализует выполнение подзадачи 4 системы, а модуль "Столбчатая диаграмма" – подзадачи 5.

Конвертор входных файлов

Внесение информации в БД

Рис. 2.4 Модульная диаграмма подсистемы конвертирования и наполнения базы входных данных.

На рисунке 2.4 представлена модульная диаграмма подсистемы конвертирования и наполнения базы входных данных.

Если входные данные системы поступают в виде файлов различных форматов, то в модуле "Конвертор входных файлов" осуществляетсяпреобразование этих файлов в текстовый формат и приведение ихс помощью пользователя к единой структуре.

В модуле "Внесение информации в БД" на вход поступают конвертированные файлы. Извлекаемая из этих файлов информация обрабатывается с использованием справочников наименований товаров и производителей (см. п. 2.3.3.1), а затем заносится в базу входных данных.

На рисунке 2.5 представлена модульная диаграмма подсистемы формирования заказов на товары.

Рис. 2.5 Модульная диаграмма подсистемы формирования заказов на товары.

Формирование заказа простыми методами

Формирование заказа с помощью Генетического алгоритма

В модуле " Формирование заказа простыми методами " осуществляется введение установок для формируемого заказа, таких как учет территории поставщика, учет условий поставки, учет содержимого на складе и учет производителей. Затем пользователем выбирается один из четырех методов формирования заказа (включая и генетический алгоритм). Данный модуль реализует только три метода формирования заказа : по минимальным ценам, по максимальным ценам и на одно предприятие.

В модуле " Формирование заказа с помощью Генетического алгоритма " производится сначала выбор пользователем, использовать ли учет производителей как критерий, выбор операторов генетического алгоритма, используемых при формировании заказа и задание вероятностей их осуществления. А затем, после настройки пользователемгенетического алгоритма, реализуется методформирования заказа "генетический алгоритм по минимальной  стоимости закупки и поставки товаров".

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

2.3.3 Базы данных системы.

База данных системы поддержки принятия решений для формирования заказа состоит из двух подбаз – базы входных данных и базы выходных данных – и двух наборов справочников. Первый набор справочников используетсяподсистемой конвертирования и наполнения базы входных данных. Назовем его "Справочники для автоматического занесения входной информации". Второй набор справочников, назовем его "Справочники", обеспечивает базе данных реляционные свойства и облегчает пользователю введение информации в базу входных данных и корректировку базы выходных данных. Ввод информации в базу входных данных может осуществляться пользователем вручную (с бумажных бланков), тогда справочники играют свою роль облегчения ввода информации; автоматизированно – с помощью списков часто используемых товаров, которые составляются пользователем заранее; автоматически – подсистемой конвертирования и наполнения базы входных данных.


2.3.3.1 Справочники для автоматического занесения входной информации

Справочники для автоматического занесения входной информации используются подсистемой конвертирования и наполнения базы входных данных для корректного занесения наименований товаров и производителей из конвертированных файлов прайс-листов и листов заказа. Дело в том, что такие наименования в прайс-листах разных поставщиков могут звучать одинаково, а писаться по-разному, например, в наименовании может присутствовать вместо знака "– " знак "/" и т.д. Вот здесь то и могут пригодиться вышеуказанные справочники. Справочники для автоматического занесения входной информации показаны на рисунке 2.6. Это реляционные справочники. Родительскиетаблицы здесь содержат код и основное наименование товара/производителя, а дочерние – наименования, которые могут встречатьсяв процессе автоматического считывания содержимого прайс-листов и листов заказа.

Рис. 2.6 Справочники для автоматического занесения входной информации

СПРАВОЧНИК ТОВАРОВ

Numb

MainNumb

Name

   SUBDRUG

Numb

Name

MAINDRUG

СПРАВОЧНИК ПРОИЗВОДИТЕЛЕЙ

Numb

MainNumb

Name

   SUBPROD

Numb

Name

MAINPROD



MAINDRUG (родительская таблица справочника товаров)

Таблица2.6

Наименование поля

Тип

Логический смысл

Физический смысл

Numb

Integer

номер основного наименования товара

ключевое поле

Name

Char(80)

основное наименование товара

значащее поле

SUBDRUG (дочерняя таблица справочника товаров)

Таблица2.7

Наименование поля

Тип

Логический смысл

Физический смысл

Numb

Integer

номер наименования товара

ключевое поле

MainNumb

Integer

номер основного наименования товара

вторичный ключ для соединения с родительской таблицей

Name

Char(80)

наименование товара

значащее поле

MAINPROD(родительская таблица справочника производителей)

Таблица2.8

Наименование поля

Тип

Логический смысл

Физический смысл

Numb

Integer

номер основного наименования производителя

ключевое поле

Name

Char(60)

основное наименование производителя

значащее поле

SUBPROD (дочерняя таблица справочника производителей)

Таблица2.9

Наименование поля

Тип

Логический смысл

Физический смысл

Numb

Integer

номер наименования производителя

ключевое поле

MainProd

Integer

номер основного наименования производителя

вторичный ключ для соединения с родительской таблицей

Name

Char(60)

наименование производителя

значащее поле


2.3.3.2 База входных данных.

Рис. 2.7 Структура базы входных данных и используемые справочники

СПРАВОЧНИКИ

Code

Name

Parent

Child

REGION

Code

Name

Parent

Child

   DGROUP

Numb

Name

Weight

CntNumb

   PROD

Code

Name

INTERNAT

Numb

Name

RegionCod

Address

Phone

SUPPLIER

Numb

Name

   CONDITION

Numb

Name

LastChange

Code

IntCode

GrNumb

PrNumb

   DRUG

Code

Name

RegionCod

Address

Phone

LPU

БАЗА ДАННЫХПРАЙС-ЛИСТОВ

БАЗА ВХОДНЫХ ДАННЫХ

Numb

SuNumb

CoNumb

Date_

Inform

Margin

Disc1

Disc1P

.

.

.

Disc5

Disc5P

LkDelTag

   PRICEATR

Numb

PANumb

DrnNumb

IntCode

Price

Package

PerValidity

   PRICESHEET

БАЗА ДАННЫХЗАЯВОК

Numb

LpuCod

Date_

Inform

AnDelTag

   ZAKSHATR

Numb

ZSANumb

DrnNumb

IntCode

Quant

PerValidity

   ZAKSHEET

1

СПИСКИ ЧАСТО

ИСПОЛЬЗУЕМЫХ ТОВАРОВ

1.1

Струк­тура базы входных данных и используемые справочники  представлены на рисунке 2.7.


           База входных данных разделяется на две подбазы : база данных прайс-листов и база данных листов заказа (заявок заказчиков).

В базах входных и выходных данных используются справочники данных (набор "Справочники"), необходимые для придания базам данных реляционных свойств и облегчения ввода информации пользователем.

Рассмотрим подробно структуру базы входных данных.

Таблица PRICEATR– это таблица, представляющая атрибуты прайс-листов, является родительской таблицей базы данных прайс-листов. Основные ее поля: ссылка на справочник поставщиков SUPPLIER, ссылка на справочник условий поставки CONDITION, дата прайс-листа, дополнительная информация, наценка и поля системы скидок, предоставляемой поставщиком : первое поле – первая сумма, на которую предоставляется скидка, второе поле – скидка в процентах на стоимость большую или равную первой сумме, но меньшую второй суммы, третье поле – вторая сумма и т.д. (всего пять скидок). Описание полей таблицы PRICEATR смотрите в таблице 2.10.   

Таблица 2.10 Описание полей таблицы PRICEATR

Наимен. поля

Тип

Логический смысл

Физический смысл

1

2

3

4

Numb

Integer

идентификационный

номер

первичный ключ

SuNumb

Integer

номер поставщика

вторичный ключ

CoNumb

Integer

номер условия поставки

вторичный ключ

Date_

Date

дата прайс-листа

значащее поле

Inform

Char(65)

дополнит. информация

значащее поле

Margin

Double Precision

наценка

значащее поле

Disc1

Double Precision

первая сумма для скидки

значащее поле

Disc1P

Double Precision

первая скидка в процентах

значащее поле

Disc2

Double Precision

вторая сумма для скидки

значащее поле

См. продолжение

Продолжение таблицы 2.10

Наимен. поля

Тип

Логический смысл

Физический смысл

1

2

3

4

Disc2P

Double Precision

вторая скидка в процентах

значащее поле

. . .

. . .

. . .

. . .

Disc5

Double Precision

пятая сумма для скидки

значащее поле

Disc5P

Double Precision

пятая скидка в процентах

значащее поле

LkDelTag

Char1

поле отметки прайс-листа на просмотр или удаление

(отметка: '>')

логическое поле

Таблица PRICESHEETпредставляет содержимое прайс-листов, является дочерней таблицей базы данных прайс-листов. Основными его полями являются: ссылка на атрибуты прайс-листа в родительской таблице PRICEATR, ссылка на справочник лекарственных средств DRUG, ссылка на международное наименование в справочнике международных наименований INTERNAT(о том, зачем необходимо это поле см. в описании справочника DRUG), цена лекарственного средства, упаковка, срок годности. Описание полей таблицы PRICESHEET смотрите в таблице 2.11.   

Таблица 2.11 Описание полей таблицы PRICESHEET

Наимен. поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный номер

первичный ключ

PANumb

Integer

номер атрибута прайс-листа

вторичный ключ

DrnNumb

Integer

номер лек. средства

вторичный ключ

IntCode

Integer

номер международного

наименования

вторичный ключ

Price

Double Precision

Цена в рублях

значащее поле

Package

Char(18)

Упаковка

значащее поле

PerValidity

Date

Срок годности

значащее поле

Таблица ZAKSHATR – родительская таблица базы данных листов заказа –представляет атрибутылистов заказа от ЛПУ и содержит такие значащие поля как: код заказчика (ЛПУ) – ссылка на справочник LPU, дата листа заказа, дополнительная информация. Описание полей таблицы ZAKSHATR смотрите в таблице 2.12.

Таблица 2.12 Описание полей таблицы ZAKSHATR

Наимен. поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

LpuCod

Char(30)

код заказчика (ЛПУ)

вторичный ключ

Date_

Date

дата листа заказа

значащее поле

Inform

Char(65)

дополнительная

информация

значащее поле

AnDelTag

Char(1)

поле отметки листа заказа на просмотр или удаление

(отметка: '>')

логическое поле

Таблица ZAKSHEET – дочерняя таблица базы данных листов заказа – представляет содержимое листов заказа от ЛПУ. Основными полями этой таблицы являются: ссылка на родительскую таблицу ZAKSHATR(номер атрибутов листа заказа), ссылка на справочник лекарственных средств DRUG, ссылка на справочник международных наименований INTERNAT, необходимое количество упаковок указанного лекарственного средства, срок годности. Описание полей таблицы ZAKSHEET смотрите в таблице 2.13.


Таблица 2.13 Описание полей таблицы ZAKSHEET

Наимен. поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

ZSANumb

Integer

номер атрибутов листа

заказа

вторичный ключ

DrnNumb

Integer

номер лек. средства

вторичный ключ

IntCode

Integer

номер международного

наименования

вторичный ключ

Quant

Double Precision

количество упаковок

значащее поле

PerValidity

Date

срок годности

значащее поле

В базе входных для облегчения пользователю ввода содержимого прайс-листов и листов заказа используетсядвухуровневый справочник "Списки часто используемых товаров" (см. рисунок 2.7). Родительская таблица LISTNAME (1) содержит наименования списков, а дочерняя таблица LIST(1.1) – их содержимое.

При вводе одного из списков часто используемых товаров в прайс-лист или лист заказа получаетсялист, содержащий ссылки на лекарственные средства (справочник DRUG), а все остальные поля – пустые.

Описание полей таблицы LISTNAME смотрите в таблице 2.14.

Таблица 2.14 Описание полей таблицы LISTNAME

Наимен. поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

Name

Char(35)

наименование списка часто используемых товаров

значащее поле

Описание полей таблицы LISTсмотрите в таблице 2.15.


Таблица 2.15 Описание полей таблицы LIST

Наимен. поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

LNNumb

Integer

номер наименования

списка часто

используемых товаров

вторичный ключ

DrnNumb

Integer

номер лек. средства

вторичный ключ

На рисунке 2.7 справочники указываются потому, что основное их использование осуществляется базами входных данных (прайс-листов и листов заказа). В базах выходныхданных справочники практически не используются, потому что для анализа эффективности предыдущих заказов и сравнения их с текущими заказами эти базы должны храниться. А так как входная информация, представляющая из себя содержимое прайс-листов и листов заказа предыдущих формирований заказов, пользователя не интересует, то базы входных данных удаляются.

Во всех справочниках, кроме справочников SUPPLIER (поставщики) и LPU (лечебно-профилактические учреждения (заказчики)), могут удаляться записи. В справочниках SUPPLIER и LPU записи, где указаны поставщики и заказчики, которые включены в сохраняемые базы выходных данных, не могут быть удалены из-за нарушения, в случае удаления, целостности информации базы выходных данных.

Справочник SUPPLIERпредставляет информацию о поставщиках: содержит поля: наименование поставщика, ссылку на справочник территорий REGION, адрес, телефон и т.д. Описание полей справочника SUPPLIER смотрите в таблице 2.16.


Таблица 2.16 Описание полей справочника SUPPLIER

Наимен. Поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

Name

Char(60)

наименование поставщика

значащее поле

RegionCod

Char(10)

код территории (региона)

вторичный ключ

Address

Char(70)

адрес

значащее поле

Phone

Char(30)

телефон

значащее поле

Справочник LPU содержит информацию о заказчиках (ЛПУ), аналогичную информации о поставщиках. Описание полей справочника LPU смотрите в таблице 2.17.

Таблица 2.17 Описание полей справочника LPU

Наимен. Поля

Тип

Логический смысл

Физический смысл

Code

Char(30)

код заказчика (ЛПУ)

первичный ключ

Name

Char(60)

наименование заказчика (ЛПУ)

значащее поле

RegionCod

Char(10)

код территории (региона)

вторичный ключ

Address

Char(70)

адрес

значащее поле

Phone

Char(30)

телефон

значащее поле

Справочник REGION – это справочник территорий (регионов). В нем указаны наименования и коды регионов, где могут располагаться поставщики или заказчики. Описание полей справочника REGION смотрите в таблице 2.18.


Таблица 2.18  Описание полей справочника REGION

Наимен. поля

Тип

Логический смысл

Физический смысл

Code

Char(10)

код территории (региона)

первичный ключ

Name

Char(40)

наименование территории

значащее поле

Parent

Char(10)

код территории верхнего уровня

поле для поддержания иерархии

Child

Smallint

количество дочерних

территорий

поле для поддержания иерархии

Справочник CONDITION – справочник условий поставки поставщиков. Значащим в нем является одно поле – наименование условия поставки. Описание полей справочника CONDITION смотрите в таблице 2.19.

Таблица 2.19 Описание полей справочника CONDITION

Наимен. поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

Name

Char(35)

условие поставки

значащее поле

Справочник DRUGпредставляет из себя справочник лекарственных средств, в котором указаны торговое наименование лекарственного средства, зависящее от его производителя, код (штрих-код) лекарственного средства и ссылки на справочники международного наименования лекарственных средств, групп, производителей. Международное наименование лекарственного средства – это наименование всех лекарственных средств, идентичных по своему составу – не зависит от производителя. Но в зависимости от того, в каких пропорциях в лекарстве находятся его структурные элементы, лекарство приобретает свои специфические свойства, поэтому качество лекарства зависит от его производителя.

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

Заказчики могут указывать в своих заявках торговые наименования медикаментов, указывая тем самым его производителя. И, если в установках программы поставить учет производителей, то при формировании заказа медикаменты, имеющие различные торговые наименования будут считаться различными и поиск их в прайс-листах будет вестись по торговому наименованию.

Если же установка учета производителей не указана перед началом формирования заказа, то заказ будет формироваться по международным наименованиям лекарственных средств, то есть медикаменты, указанные в листах заказа с различными торговыми наименованиями, но одним международным будут считаться одним и тем же лекарственным средством, и его поиск в прайс-листах будет вестись по международному наименованию. Описание полей справочника DRUG смотрите в таблице 2.20.

Таблица 2.20 Описание полей справочника DRUG

Наимен. поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

Name

Char(80)

наименование лекарственного средства

значащее поле

LastChange

Date

дата последнего

изменения записи

значащее поле

Code

Integer

код лекарственного

средства

значащее поле

IntCode

Integer

номер международного

наименования

вторичный ключ

GrNumb

Integer

код группы

вторичный ключ

PrNumb

Integer

номер производителя

вторичный ключ

Справочник INTERNAT– справочник международных наименований лекарственных средств. О том, зачем необходимо международное наименование, смотрите описание справочника DRUG. Описание полей справочника INTERNAT смотрите в таблице 2.21.

Таблица 2.21 Описание полей справочника INTERNAT

Наимен. поля

Тип

Логический смысл

Физический смысл

Code

Integer

идентификационный

номер

первичный ключ

Name

Char(40)

международное

наименование

значащее поле

Справочник DGROUP – это справочник групп лекарственных средств. Лекарство может относиться к той, или иной группе в зависимости от того, от какого недуга оно применяется. Описание полей справочника DGROUP смотрите в таблице 2.22.

Таблица 2.22 Описание полей справочника DGROUP

Наимен. Поля

Тип

Логический смысл

Физический смысл

Code

Integer

код группы

первичный ключ

Name

Char(200)

наименование группы

лекарственного средства

значащее поле

Parent

Integer

код группы верхнего уровня

поле для поддержания иерархии

Child

Smallint

количество дочерних

групп

поле для поддержания иерархии

Справочник PROD– справочник производителей лекарственных средств, в котором, помимо наименования и ссылки на справочник стран производителей COUMTRY, указан вес производителя. Это поле используется при формировании заказа с помощью генетического алгоритма, когда поставлена установка на то, чтобы, если установлен учет производителей, использовать производителя лекарственных средств как критерий (см. п. 2.3.5). Лекарственные средства производителя, имеющего больший вес, являются качественнее  лекарственных средств производителя с меньшим весом.

Описание полей справочника PROD смотрите в таблице 2.23.

Таблица 2.23 Описание полей справочника PROD

Наимен. поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

Name

Char(60)

наименование

производителя

лекарственного средства

значащее поле

Weight

Double Precision

вес производителя

значащее поле

CntNumb

Integer

номер страны

производителя

вторичный ключ

Справочник COUMTRY(на рисунке не указан) – справочник стран производителей – значащее поле – наименование страны производителя. Описание полей справочника COUMTRY смотрите в таблице 2.24.

Таблица 2.24 Описание полей справочника COUMTRY

Наимен. поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

Name

Char(20)

наименование страны

значащее поле

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

В базе входных данных имеются следующие основные триггеры:

nBD_PRICEATR, который позволяет удалить прайс-лист полностью (атрибуты и содержимое) удаляя запись в таблице атрибутов прайс-листа;

nBD_ZAKSHATR – позволяет удалить лист заказа полностью (атрибуты и содержимое) удаляя запись в таблице атрибутов листа заказа;

nтриггеры, удаляющие в вводимых значениях строковых полей ведущие и последние пробелы;

nтриггеры, вводящие текущую дату в поле даты атрибутов вводимого прайс-листа,листа заказа, в поле даты последнего изменения записи справочника DRUG;

nBD_LISTNAME, позволяющий удалить список часто встречающихся товаров удалив его название в таблице LISTNAME;

nBD_CONDITION запрещает удалять условие поставки в справочнике CONDITION, если оно занесено в атрибуты хотя бы одного прайс-листа;

nBD_SUPPLIER запрещает удалять наименование поставщика в справочнике SUPPLIER, если этот поставщик занесен хотя бы в один сформированный заказ;

nBD_LPU запрещает удалять наименование заказчика (ЛПУ) в справочнике LPU, если этот заказчик занесен хотя бы в одну разнарядку сформированного заказа;

nтриггеры, обеспечивающие корректную работу со справочником территорий REGION;

nBD_REGION запрещает удалять наименование территории в справочнике территорий REGION, если она встречается хотя бы у одного поставщика или заказчика в справочниках SUPPLIER и LPU;

nтриггеры, обеспечивающие корректную работу со справочником групп лекарственных средств DGROUP;

nBD_GROUP запрещает удалять группу в справочнике групп лекарственных средств DGROUP, если она указана хотя бы для одного лекарственного средства в справочнике лекарственных средств DRUG;

nBD_PROD запрещает удалять производителя в справочнике производителей лекарственных средств PROD, если он указан хотя бы для одного лекарственного средства в справочнике лекарственных средств DRUG;

nBD_INTERNAT запрещает удалять международное наименование лекарственного средства в справочнике международных наименований INTERNAT, если оно указано хотя бы для одного лекарственного средства в справочнике лекарственных средств DRUG;

nBD_COUNTRY запрещает удалять страну в справочнике стран производителей COUNTRY, если она указана хотя бы для одного производителя в справочнике производителей лекарственных средств PROD.

2.3.3.3 База выходных данных.

Струк­тура базы выходных данных, используемые ею таблицы и справочникипредставлены на рисунке 2.8.

. . .

Рис. 2.8 Струк­тура базы выходных данных, используемые ею таблицы и  

               справочники

СПРАВОЧНИКИ

БАЗА ВЫХОДНЫХ ДАННЫХ

Numb

ZSuNumb

ZSANumb

LPUCode

Inform

Sum

   RAZNARATR

Numb

PANumb

ZakNumb

Quant

Cost

   RAZNARYAD

БАЗА ДАННЫХ РАЗНАРЯДОК

Numb

Code

Name

Date_

TotSum

TotDisc

DelTag

   ZAKAZATR

Numb

ZKNumb

SuNumb

PANumb

Address

CoName

Inform

DiscTotSum

Discount

   ZAKSUPPL

Numb

ZKNumb

ZSuNumb

SuNumb

DrnName

DrnCode

IntName

GrName

PrName

Price

Quant

Cost

   ZAKAZ

БАЗА ДАННЫХЗАКАЗОВ

БАЗА ВХОДНЫХ ДАННЫХ

БАЗА ДАННЫХПРАЙС-ЛИСТОВ

БАЗА ДАННЫХЗАЯВОК

PRICEATR

PRICESHEET

ZAKSHEET

ZAKSHATR

DRUG

SUPPLIER

LPU

. . .


База выходных данных разделяется на две подбазы: база данных заказов и база данных разнарядок. Информация в базу выходных данных заносится программно – это информация о сформированных системой заказах и разнарядках. Пользователь может просматривать, корректировать базу выходных данных и выводить на печать ее содержимое в виде отчетов. В базе выходных данных используется поля входной базы данных и справочники лекарственных средств DRUG, поставщиков SUPPLIER и заказчиков LPU.

При удалении из базы входных данных и справочников всех значений, на которые имеются ссылки в заказе, кроме поставщиков и заказчиков, целостность информации в базе выходных данных не нарушится, так как в нее введены поля, содержащие все значения, которые могут быть удалены (см. п. 2.3.3.2).

ТаблицаZAKAZATR – таблица атрибутов сформированных заказов – является родительской таблицей базы данных заказов.Основные ее поля: код заказа (код, присваиваемый заказу пользователем по его усмотрению), наименование заказа, дата формирования, итоговая сумма заказа с учетом всех скидок и итоговая скидка. Описание полей таблицыZAKAZATR смотрите в таблице 2.25.

Таблица 2.25 Описание полей таблицы ZAKAZATR

Наимен. Поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

Code

Double Precision

код заказа

значащее поле

Name

Char(28)

наименование заказа

значащее поле

Date_

Date

дата формирования заказа

значащее поле

TotSum

Double Precision

итоговая сумма с учетом скидок

значащее поле

TotDisc

Double Precision

итоговая скидка

значащее поле

DelTag

Char(1)

поле отметки заказа на удаление (отметка: '>')

логическое поле

Таблица ZAKAZпредставляет содержимое сформированного заказа. Основными ее полями являются: ссылка на лекарственное средство справочника лекарственных средств DRUG, ссылка на поставщика справочника SUPPLIER, цена указанного лекарственного средствау данного поставщика, количество упаковок, стоимость всех упаковок лекарственного средства у данного поставщика.

Кроме основных полей в таблице ZAKAZ имеются поля для сохранения целостности информации. К ним относятся: наименование лекарственного средства, его код, международное наименование, наименование группы и наименование производителя. Описание полей таблицыZAKAZ смотрите в таблице 2.26.

Таблица 2.26 Описание полей таблицы ZAKAZ

Наимен. поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

ZKNumb

Integer

номер атрибутов заказа

вторичный ключ

ZSuNumb

Integer

номер поставщика заказа

в таблице ZAKSUPPL (поставщики заказов)

вторичный ключ

SuNumb

Integer

номер поставщика

вторичный ключ

DrnNumb

Integer

номер лекарственного

средства

вторичный ключ

DrnName

Char(80)

наименование

лекарственного средства

значащее поле

DrnCode

Integer

код

лекарственного средства

значащее поле

IntName

Char(40)

международное

наименование

значащее поле

GrName

Char(200)

наименование группы

значащее поле

ProdName

Char(60)

наименование

производителя

значащее поле

Price

Double Precision

цена

значащее поле

Quant

Double Precision

количество упаковок

значащее поле

Cost

Double Precision

стоимость всех упаковок

значащее поле

Таблица ZAKSUPPL (поставщики заказов) представляет информацию по суммам закупки у каждого поставщика, прайс-лист которого входит в сформированный заказ. Основными полями таблицы являются: ссылка на поставщика справочника SUPPLIER, сумма закупки у этого поставщика с учетом скидки, скидка в рублях. Поля, обеспечивающие сохранность информации: условие поставки поставщика, дополнительная информация. Описание полей таблицы ZAKSUPPLсмотрите в таблице 2.27.

Таблица 2.27 Описание полей таблицы ZAKSUPPL

Наимен. Поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

ZKNumb

Integer

номер атрибутов заказа

вторичный ключ

SuNumb

Integer

номер поставщика

вторичный ключ

PANumb

Integer

номер атрибутов

прайс-листа

вторичный ключ

CoName

Char(35)

условие поставки

значащее поле

Inform

Char(65)

дополнительная

информация

значащее поле

DiscTotSum

Double Precision

сумма закупки у поставщика с учетом скидки

значащее поле

Discount

Double Precision

скидка

значащее поле

База данных разнарядок состоит из двух таблиц: родительской таблицы RAZNARATR (атрибуты разнарядок) и дочерней таблицы RAZNARYAD (содержимое разнарядок). В эти таблицы заносится информация из сформированных заказов, распределенная по потребностям заказчиков (ЛПУ). По этой информации программно составляются отчеты, которые представляют из себя разнарядки на поставку поставщиками и разнарядки на получение ЛПУ лекарственных средств.

Поле "дополнительная информация" в RAZNARATR – поле, относящееся к полям  для обеспечения целостности информации.

Описание полей таблицы RAZNARATR смотрите в таблице 2.28.

Таблица 2.28 Описание полей таблицы RAZNARATR

Наимен. Поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

ZSuNumb

Integer

номер поставщика заказа

вторичный ключ

ZSANumb

Integer

номер атрибутов листа

заказа заказчика

вторичный ключ

LPUCode

Char(30)

код заказчика (ЛПУ)

вторичный ключ

Inform

Char(65)

дополнительная

информация

значащее поле

Sum

Double Precision

сумма закупки всех необходимых заказчику

лекарственных средств

значащее поле

Описание полей таблицы RAZNARYAD смотрите в таблице 2.29.

Таблица 2.29 Описание полей таблицы RAZNARYAD

Наим. Поля

Тип

Логический смысл

Физический смысл

Numb

Integer

идентификационный

номер

первичный ключ

PANumb

Integer

номер атрибутов прайс-листа

вторичный ключ

ZakNumb

Integer

номер позиции в таблице сформированного заказа ZAKAZ содержимого

вторичный ключ

Quant

Double Precision

количество упаковок

значащее поле

Cost

Double Precision

стоимость закупки без учета скидки всех упаковок лек. средства из позиции ZakNumb у поставщика с прайс-листом PANumb

значащее поле


Перечислим основные триггеры базе выходных данных:

nBI_ZKDATE вносит в поле даты формирования заказа текущую дату;

nтриггеры, позволяющие удалив атрибуты заказа в таблице ZAKAZATR удалить содержимое всего заказа и его разнарядок.

2.3.4 Подсистема конвертирования и наполнения базы входных

данных

Входными данными для решения задачи нахождения оптимального заказаявля­ются заявки заказчиков на необходимые им партии товаров и прайс-листы фирм, предла­гающих товары.Входные данные могут поставляться в виде файлов таких форматов, как *.xls (Excel), *.doc, *.rtf (Word), *.html, *.dbf(dBase) и txt, а также на бумажных бланках. Информация, имеющаяся на бумажных бланках, должна быть занесена в базу входных данных вручную. Информация, имеющаяся в виде файлов, обрабатывается автоматизиро­ванно и заносится в базу входных данных автоматически. Автоматизированная обработка состоит в том, что файлы преобразовываются в текстовый формат (txt) и приводятся к единой структуре с использованием конвертора файлов. А затем ин­формация из полученных файлов заносится в базу входных данных автоматически.За нехваткой времени данная подсистема осталась недоработанной.


2.3.5 Подсистема формирования заказов на товары

Основными, несущими наибольшую смысловую нагрузку и решающими основную задачу СППР для формирования заказа на торгово-закупочном предприятии, модулями являются модули, представленные на рис. 2.5 в п. 2.3.2 :

" Формирование заказа простыми методами " и " Формирование заказа с помощью Генетического алгоритма ".

Рассмотрим функционирование модуля "Формирование заказа простыми методами ".

Сначала пользователь указывает дату прайс-листов или то, что прайс-листы должны быть выбраны по отметке, ранее произведенной пользователем. Аналогичная операция осуществляется и для листов заказа.

После нажатия кнопки <Выбрать> в модуле обрабатывается событие нажатия кнопки. Обработка события состоит в следующем: осуществляется выборка данных из базы данных прайс-листов и базы данных листов заказа.

К данным, выбираемым из прайс-листов относятся:

nномер прайс-листа;

nномер поставщика;

nномер условия поставки;

nсистема скидок;

nсодержимое прайс-листа, к которому относятся номера лекарственных средств и соответствующие им номера международных наименований, цены и сроки годности.

Данными, выбираемыми из листов заказа являются:

nномер лекарственного средства;

nномера заказчиков по каждому лекарственному средству и заказываемое ими количество.

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

Далее функционирование модуля " Формирование заказа простыми методами " рассмотрим в рамках подсистемы: на рисунке 2.9 представлена блок-схема функционирования подсистемы формирования заказов на товары.   Выборку информации в блок-схему решено не вносить, так как она производится для увеличения быстродействия программы – считывание при работе алгоритма формирования заказа информации из базы данных сильно замедляет работу алгоритма.

Начало

Ввод используемых установок (true, false): учет территории (УТ), учет условий поставки (УУ), учет производителей (УП), учет товаров на складе (УС);

Выбор метода формирования заказа (К) : по минимальной цене, по максимальной цене, на одно предприятие, Генетический алгоритм по минимальной стоимости

Выбрать отмеченные прайс-листы поставщиков с учетом введенных установок УТ иУУ

Конец

Вывод результатов в базу выходных данных

4

3

1

2

Формирование заказа с использованием генетического алгоритма по минимальной стоимости с учетом установокУП,УС,ПК,ЗК

Формирование заказа по максимальным ценам с учетом установок  УП и УС

Формирование заказа на одно предприятие с учетом установок  УП и УС

Формирова­ние заказа по минимальным ценам с учетом установок  УП и УС

K

Ввод установок : учитывать производителя как критерий (ПК), решать задачу коммивояжера (ЗК)

Рис. 2.9 Блок схема функционирования подсистемы формирования заказов на товары


После окончания выборки входной информации пользователь настраивает систему: отмечает, надо ли при формировании заказа учитывать территорию поставщиков, их условия поставки, производителей лекарственных средств, товары на складе.

Далее пользователь вводит наименование и код заказа, который надо сформировать. А затем уже выбирает один из методов формирования заказа:

1) по минимальным ценам;

2) на одно предприятие;

3) по максимальным ценам;

4) генетический алгоритм по минимальной стоимости.

Первые три из указанных методов выполняются в этом же модуле, откуда он и получил свое название: "Формирование заказа простыми методами ".

На рисунке 2.10 показано окно модуля "Формирование заказа простыми методами ".

Рис. 2.10 Окно модуля "Формирование заказа простыми методами "


Приведем список основных подпрограмм модуля.


В секции private класса TForm1 находятся следующие методы:

Процедура BringToArrs – занесение данных прайс-листов в динамические массивы.

Процедура SetSellMatr – заполнение матрицы SellMatr.  В матрице элемент равен 0, если в i-ом прайс-листе не предлагается товар j, и 1, если в i-ом прайс-листе товар j предлагается.

Функция SupplSell – проверка, предлагает ли указанный поставщик (соответствующий емупрас-лист) указанный товар. Если да, то функция возвращает true, иначе – false.

Процедура Calc_BringToDB – вычисляет сумму закупки по всему заказу с учетом скидок и общую скидку на эту сумму, а также другие необходимые значения и заносит все результаты в базу выходных данных.

Процедура SolverForOne – формирование заказа на закупку товаров для одного указанного поставщика.

В секции public класса TForm1 находятся следующие методы

Функция SuDiscountCost – возвращает стоимость закупки с учетом скидки у поставщика, которому соответствует указанный прайс-лист.

Процедура MinMaxSolver(min:boolean . . .)-- формирование заказа на закупку товаров по минимальной цене, если min=true,или по максимальной цене, если min=false.

Рассмотрим теперь функционирование модуля "Формирование заказа с помощью генетического алгоритма ".

После выбора в окне модуля "Формирование заказа простыми методами " метода формирования заказа "Генетический алгоритм по минимальной стоимости" и нажатия кнопки <Сформировать> появляется окно модуля "Формирование заказа с помощью генетического алгоритма ", которое показано на рисунке 2.11.

Рис. 2.11 Окно модуля "Формирование заказа с помощью генетического алгоритма "


В этом окне пользователь должен настроить генетический алгоритм:

nввести количество особей в популяции;

nвыбрать операторы, которые должны выполняться над особями популяции, и задать вероятность выполнения там, где это необходимо;

nввести количество выводимых наилучших решений в базу данных заказов.

После нажатия кнопки <Старт ГА> генетический алгоритм начинает свою работу в соответствии свыбранными установками.

На рисунке2.12 показана блок-схема работы генетического алгоритма.


Инициализировать популяцию P(0) размером v

Начало

Оценить степень приспособленности m(t) каждой особи в P(0)

Вычислить среднюю степень приспособленности   в P(t)

Да

Нет

Отстранять

от выбора наименее приспособленных ?

В список особей для выбора S(t) включить все особи

В список особей для выбора S(t) включить особи, у которых

Да

Нет

Использовать

стратегию

элитизма ?

Включить в группу нового поколения PR(t) особь из P(t) с наибольшейстепенью приспособленности

1

Выбрать родительскую особь из S(t), учитывая ее приспособленность

2

4

Рис. 2.12 Блок-схема работы генетического алгоритма


Нет

Да

3

Группа нового

поколения PR(t) заполнена ?

2

4

4

1

Оценить степень приспособленности полученной особи ( особей)

Поместить потомка (потомков) в группу нового поколения PR(t)

8

1

2

K

3

4

5

6

7

Выбрать вторую особь из S(t) с учетом m(t)

Выбрать вторую особь из S(t) с учетом m(t)

Провести одноточечную мутацию

Провести копирование

Провести инверсно-точеч-ную мутацию

Провести генную макромутацию

Провести генную мутацию

Провести точечную макромутацию

Провести обычную или доминантную рекомбинацию генов с одним или двумя потомками

Провести одноточечный кроссовер с одним или двумя потомками

Продолжение. Рис. 2.12


Да

Нет

Заканчивать ?

Конец

4

3

Да

Нет

Формировать

репродуктивную группу ?

P(t+1)=PR(t)

Выбрать в репродуктивную группу R(t) особи, у которых

В P(t+1) выбрать из R(t) наиболее приспособленные особи

Продолжение. Рис. 2.12


Приведем список основных подпрограмм модуля.

В секции private класса TForm2 находятся следующие методы:

1) Методы для преобразования кода Грея в десятичное число:

Процедура SetGraySeq– генерация последовательности переходов

Функция IntToBin –   преобразование числа (0..127) в двоичный код

Функция GrayToDec –   Код Грея --> Десятичное число

2) Методы реализации генетического алгоритма (ГА)

Функция SupplSellDrug – проверка, предлагает ли указанный поставщик (значение гена -- порядковый номер соотвествующий номеру прайс-листа поставщика) данный товар локус -- номер гена в хромосоме, соответствующий номеру товара);

Функция SetFirstPopulat – генерация хромосомного набора начальной популяции, удовлетворяющего требованиям, предъявляемым к символьной модели задачи;

Функция SupplierCost -- возвращает стоимость закупки данного товара без учета скидки у поставщика, прайс-лист которого указан;

Функция OneFtnDegree – преобразование строки в коде Грея в соответствующий ей вектор управляемых переменных и вычисление общей скидки,стоимости с учетом скидок и степениприспособленности особи;

Функция GetAvgDegree – вычисление средней степени приспособленности по популяции;

Функция RemoveBeforeSkresch – предварительное отстранение особей, имеющих степени приспособленности меньше средней, от участия в скрещивании;

Процедура SetSelectVerSect – вычисление отрезков распределения вероятностей выбора особей, которыемогут участвовать в скрещивании, на интервале [0,1];

Процедура SetOneVerSect – разбиение интервала [0,1] на 2 отрезка: Р и 1-Р , где Р -- указанная вероятность;

Процедура SetEquipVerSect – формирование отрезков распределения равных вероятностей на [0,1];

Функция Select – выбор объекта (особи, гена, точки) на основе отрезков распределения вероятностей выбора;

Функция Elit – стратегия элитизма: возвращает индекс особи в популяции, степень приспособленности которой максимальна;

Процедура Interchange – обмен хромосом участками, состоящими из одного или более генов (один участок первой хромосомы ßà один участок второй хромосомы);

Процедура OnePntCrossover – размножение по схеме "Одноточечный кроссовер";

Функция SetGeterList – формирует список номеров гетерозиготных генов в родительских хромосомах и возвращает порядковый номер в списке последнего номера гетерозиготного гена;

Процедура Dominant – вычисляет для аллельных форм каждого гетерозиготного гена указанного родителя вероятность доминантности, равную частоте данной аллельной формы в текущей популяции;

Процедура GenosRecomb – размножение по схеме "Рекомбинация генов";

Функция PntMutatInGen – точечная мутация в конкретном гене (Если мутированный ген в указанном локусе удовлетворяет требованиям, предъявляемым к символьной модели задачи (см. описание предыдущей функции), то функция возвращает true, иначе мутация производится в каком-либо другом бите гена и т.д., до тех пор, пока мутированный ген не станет удовлетворять требованиям задачи или, пока не будет пройдено предельное число шагов. Если требования задачи так и не будут удовлетворены, то выдается false, и  значение переданного через параметр гена остается неизменным.);

Процедура PntMutation – Точечная мутация производится в случайно выбранном гене хромосомы до тех пор, пока мутированный ген не станет удовлетворять требованиям задачи (см. функцию PntMutatInGen); Если требования задачи так и не будут удовлетворены, то у особи останется старый (немутированный) ген;

Процедура GenMutation – генная мутация;

Процедура MacroPntMut -- макромутация точечная (использует функцию PntMutation);

Процедура MacroGenMut – макромутация генная (использует функцию GenMutation);

Процедура Inverse – инверсно-точечная мутация (Если ген в новом локусе не удовлетворяет требованиям задачи, то он подвергается точечной мутации до тех пор, пока не станет удовлетворять им(см. функцию PntMutatInGen). Если требования задачи так и не будут удовлетворены, то он заменяется на старый ген.);

Функция SetReprodGroup – формирование репродуктивной группы по второй селекционной схеме (в репродуктивную группу попадают те особи, у которых степень приспособленности больше или равна средней);

Процедура NatureSelect – Естественный отбор в (t_+1)-ю популяцию из репродуктивной группы по жесткой" схеме, если isElit=false, иначе членами (t_+1)-й популяции будут все произведенные особи плюс 1 элитная. Размер всех популяций одинаков, равен размеру первой.

Функция AllelDifference – функция возвращает аллельное разнообразие популяции (граничные случаи: если все хромосомы равны, то результат -- 0; если все аллели всех хромосом различны, то результат -- 1);

Функция WorldLimToGraphic – возвращает значение итоговой стоимости заказа с учетом скидок для графикаэволюции минимальной стоимости;

Функция ConvertFitness – преобразование особи в вектор управляемых переменных;

Процедура BringToDB – занесение результатов одного заказа (одного вектора управляемых переменных) в базу данных;

2.4 Методы уменьшения затрат машинного времени, методы отладки и тестирования

Реальные данные для разработанногопрограммного обеспечения занимают большие объемы: в одном рпайс-листе может быть около пяти тысяч записей, листы заказов также могут содержать до тысячи записей. Количество прайс-листов, хранимых в базе данных также велико – около двухсот набирается несколько месяцев эксплуатации программы. Количество листов заказа примерно такое же. Кроме того сформированные заказы и разнарядки имеют большие объемы, так как они сохраняются для сравнения сформированных заказов между собой.

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

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

Для отладки и тестирования программы были применены следующие методы: установка контрольных точек в программе, прогон программы по шагам на тестовых данных.

Тестовые данные для отладки и тестирования небольшие: четыре прайс-листа, в каждом из которых предлагается по пять медикаментов, причем цены в первом прайс-листе у всех товаров равны 1,1; во втором – 2,2; в третьем – 3,3; в четвертом – 4,4; в атрибутах прайс-листов установлены скидки; ;количество листов заказа равно четырем и суммарная потребность --  четыре медикамента в различных количествах.

Тестировалась выборка данных в динамические массивы при различных ситуациях: задавались существующие и несуществующие даты листов, выборка по отметке производилась при наличии отмеченных листов и наоборот.

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

Затем в прайс-листах выборочно у товаров ставились нулевые цены – значит, что товар не предлагается, и опять проходило тестирование.

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

3 ЭКСПЕРИМЕНТАЛЬНАЯ ОЦЕНКА РАЗРАБОТАННОГО

ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

3.1. Испытание системы

Последней задачей дипломного проекта должна быть апробация системы на реальном предприятии.

Реальным предприятием, как уже ранее упоминалось, является Белгородский территориальный фонд ОМС. Здесь товарами являются лекарственные средства, изделия медицинского назначения и расходные материалы, а заказчиками – лечебно-профилактические учреждения города и области. В настоящее время Белгородский территориальный фонд ОМС закупает медикаменты на сумму двенадцать – тринадцать миллионов рублей.

Для испытания "Системы поддержки принятия решений для формирования заказа на торгово-закупочном предприятии" были взяты следующие исходные данные:

nпрайс-листы 12 (двенадцати) поставщиков;

nлисты заказа, потребности которых в общем объеме составляют 277 (двести семьдесят семь) медикаментов;

В итоге сложность алгоритма перебора, формирующего заказ по минимальным ценам невелика: 12*277=3324. Но сложность алгоритма перебора, формирующего заказ по минимальной стоимостис учетом скидок колоссальна:

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

nпо максимальным ценам;

nна одного поставщика;

nпо минимальным ценам;

nгенетический алгоритм по минимальной стоимостиучетом скидок.

Результаты работы генетического алгоритма с различными настройками были сравнены с результатами работы других методов на столбчатой диаграмме, предоставляемой в программе специально для этих целей. Сравнительная оценка показала преимущество генетического алгоритма при формировании заказа с учетом скидок над методами, не использующие этот подход (см. рисунки 2.13, 2.14, 2.15, 2.16). Здесь порядок заказов, сформированных различными методами такой же, как и при перечислении выше. На рисунке 2.13 представлен первый эксперимент.

ОПЕРАТОР

p

ОДНОТОЧЕЧ­НЫЙ

КРОССОВЕР

0,9

ТОЧЕЧНАЯ

МУТАЦИЯ

1

СТРАТЕГИЯ ЭЛИТИЗМА

Установки генетического алгоритма:

Рис. 2.13 Первый эксперимент



На рисунке 2.14 представлен второй эксперимент.

Установки генетического алгоритма:

ОПЕРАТОР

p

РЕКОМБИНАЦИЯ ГЕНОВ

0,9

ГЕННАЯ

МУТАЦИЯ

1

СТРАТЕГИЯ

ЭЛИТИЗМА

Рис. 2.14 Второй эксперимент



На рисунке 2.15 представлен третий эксперимент.

ОПЕРАТОР

p

ОДНОТОЧЕЧ­НЫЙ

КРОССОВЕР

С ДВУМЯ

ПОТОМКАМИ

0,9

МАКРОМУТАЦИЯТОЧЕЧНАЯ

1

РЕПРОДУКТИВ­НАЯ ГРУППА

Установки генетического алгоритма:

Рис. 2.15 Третий эксперимент



На рисунке 2.16 представлен четвертый эксперимент.

ОПЕРАТОР

p

ОТСТРАНЕНИЕ ОТ ВЫБОРА НАИМЕНЕЕ ПРИСПОСОБЛЕННЫХ

ДОМИНАНТНАЯ

РЕКОМБИНАЦИЯ ГЕНОВ

С ДВУМЯ

ПОТОМКАМИ

0,9

ТОЧЕЧНАЯ

МУТАЦИЯ

0,7

ИНВЕРСНО-ТОЧЕЧНАЯ

МУТАЦИЯ

1

СТРАТЕГИЯ

ЭЛИТИЗМА

Установки генетического алгоритма:

Рис. 2.16 Четвертый эксперимент


3.2. Оценка надежности

Надежность работы разработанного программного обеспечения была обеспечена за счет:

nнаписания триггеров для баз данных;

nнаписания для баз данных триггеров, вызывающих исключения;

nвведения различных ограничений в базы данных;

nза счет проверки вводимой пользователем информации при работе программы.

Триггеры в базах данных выполняют действия, которые обеспечивают корректное заполнение баз данных, каскадные обновления и многие другие удобства при работе с базами данных. Триггеры действуют тогда, когда запись вставляется, изменяется или удаляется. Основные, имеющиеся в базах данных триггеры указаны в описании баз входных данных (см. п. 2.3.3.2) и описании баз выходных данных (см. п. 2.3.3.3).

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

Ограничения в базах данных применены следующие:

nпервичные ключи;

nненулевые поля.

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

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


4 ОЦЕНКА ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА

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

Одним из основных аспектов деятельности любого торгово-закупочного предприятия является закупка различных товаров. Получив серию заказов, в торгово-закупочном предприятии анализируют предложения фирм-поставщиков и поступившие заказы и составляют итоговый заказ на закупку товаров у поставщиков.

Одним из методов формирования заказа является метод "по минимальным ценам товаров"—  в заказ включается те поставщики, у которых цены на требуемые товары минимальны.

Многие предприятия-поставщики предоставляют гибкие системы скидок.

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

В качестве реального предприятия, заказчика программного обеспечения, выступает Белгородский территориальный фонд ОМС. Одной из важнейших функций фонда является лекарственное обеспечение лечебных профилактических учреждений региона.

В настоящее время фонд закупает медикаменты у различных поставщиков (коммерческих фирм и производителей) через проведение торгов. Заказы от ЛПУ принимаются один раз в месяц.

В Белгородском территориальном фонде ОМС автоматизированные рабочие места уже внедрены и для решения задачи формирования оптимальных заказов на закупку лекарств используется программное обеспечение, которое для нахождения минимальных затрат на закупку использует метод "формирование заказа по минимальным ценам ".

Создаваемый программный продукт для составления оптимального заказа использует метод формирования заказа по минимальной стоимости с учетом скидок. Этот метод для решения задачи использует генетический алгоритм. Применение такого алгоритма дает возможность находить близкие к оптимальным решения задачи. Причем данный алгоритм выполняется существенно быстрее других алгоритмов поиска на большом пространстве поиска.

Расчет затрат времени на разработку по охватывает работы, выполняемые на следующих стадиях: техническое задание; эскизный проект; технический проект; рабочий проект; внедрение.

При расчете фактических затрат времени на программирование необходимо учитывать представленные ниже исходные данных по задаче.

Степень новизны разрабатываемой задачи: В - разработка проекта с использованием типовых проектных решений, при условии их изменения; разработка проектов, имеющих аналогичные решения.

Сложность алгоритма: 1   – алгоритм оптимизации.

Трудоемкость разработки проекта зависит также от вида используемой информации:

ПИ - переменной информации: 1 вид;

НСИ - нормативно-справочной информации: 1 вид;

БД - баз данных: 2 вида;

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

разработки и режима работы:

ТОУ - телекоммуникационная обработка данных и управление удаленными объектами; от объема входной информации.

Сложность организации контроля входной и выходной информации:

12 - входные данные и документы однообразной формы и содержания, осуществляется формальный контроль;

22 - печать документов однообразной формы и содержания, вывод массивов данных на машинные носители.

Срок разработки: 8 месяцев.

Количество разновидностей форм входной информации: 5.

Доля стандартных модулей: 0,7.

Объем входной информации 273 тыс. документострок

Комплекс задач подсистем:

Управление материально-техническим снабжением, управление сбытом продукции, управление комплектацией, управление экспортными и импортными поставками.

По комплексу задач подсистем и степени новизны задачи определяется базовая трудоемкость разработки технического задания и эскизного проекта.

Базовая трудоемкость разработки, человекодней:

nТехни­ческое задание – 42 ;

nЭскиз­ныйпроект – 53;

nТехни­ческий проект – 11;

nРабочий проект – 50;

nВнедрение – 11.

Базовые затраты времени на программирование приняты условно для комплексов задач степени новизны В, группы сложности алгоритма решения 3, следовательно, для определения трудоемкости разработки задачи с другими характеристиками следует пользоваться поправочными коэффициентами.

В результате применения вычисленных поправочных коэффициентов нормы времени технического проекта, рабочего проекта, внедрения и общая норма времени будутиметь следующие значения:

Нвр.т.пр.= 28 чел.дн.

Нвр.раб.пр.= 49 чел.дн.

Нвр.внедр.= 13 чел.дн.

Нвр=Нвр.т.пр.+Нвр.раб.пр.+Нвр.внедр.=28+49+13=90 (чел.дн.)

Расчет общей трудоемкости разработки проекта Тоб:

Тоб.= tт.зад.+t эск.пр.+tт.пр.+tраб.пр. +tвнедр. = 42+53+90=185 (чел.дн.)

Численность исполнителей, необходимая для выполнения работ по стадиям проектирования и по комплексам задач (задаче) в целом:

Фпл.=22*2+23*5+21=180;

где Фпл - плановый фонд рабочего времени одного специалиста.

Основная заработная плата Зосн разработчиков:

Дополнительная зарплата рассчитывается, как 10% к основной.

Зср.дн.=79,6 руб.

Зосн.=14728,5 руб.

Здоп.=1472,85 руб.

Смета затрат на разработку ПО представлена в таблице 4.1.

Таблица 4.1 Смета затрат на разработку ПО

Элементы затрат

Стоимость, руб.

Материальные затраты

231,2

Основная и дополнительная зарплата

16201,35

Отчисления на социальные нужды

6237,52

Затраты на оплату машинного времени

1746,55

Стоимость инструментальных средств

483,59

Накладные расходы

2945,7

Всего (Спо)

27845,91

Стоимость одного машино-часа работы ЭВМ за время проектирования равна 6,36 рублей.

Структура цены ПО

Себестоимость ПО

Прибыль (20-30%): Пр=Спо*0,2=5569,18(руб.)

НДС 20%: НДС=(Спо+Пр)*0,2=6683,02(руб.)

Цена программного обеспечения (Цпо): Цпо=Спо+Пр+НДС=40098,11(руб.)

Единовременные затраты пользователя ПО Кобщ будут затраты на:

1. Оплату программного обеспечения (ЦПО).

2. Обучение персонала (Косв),

так как оборудование и инструментальные средства у заказчика имеются.

Кобщ.=Цпо+Косв.

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

Расчет объемов работ, выполняемых на АРМ, начинается с установления перечня задач, подлежащих реализации на ЭВМ, периодичности их решения и годового объема обрабатываемой информации по каждой из них. Количество машинных одноадресных операций на один условный показатель информации приведено в таблице 4.2. Периодичность решения каждой задачи в месяце равна 1.

Таблица 4.2 Количество машинных одноадресных операций на один условный показатель информации

Вид задачи

Количество операций (тысячи)

1. Сбор заказов и предложений фирм ()

2. Обработка поступившей информации – формирование БД с использованием НСИ и перекачивание данных в динамические массивы.    (Управление

материально-техническим снабжением)

3,6

3,6

3. Формирование оптимального заказа

(Оптимизационные расчеты)

7,3

Объем обрабатываемой информации представлен в таблице 4.3.

Таблица 4.3 Объем обрабатываемой информации

Номер задачи

Месяц

январь

февраль

…………

декабрь

1

2

3

Всего

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

Расчет стоимости оборудования и амортизационных отчислений смотрите в таблице 4.4.

Таблица 4.4 Расчет стоимости оборудования и

амортизационных отчислений

Наименование машин и оборудования

Коли-чество, шт

Цена, руб.

Общая стоимость, руб.

Норма амортиза-ции, %

Амортиза-ционные отчисления, руб

Вычислительная техника

1 Pentium

15000

15000

30

4500

Периферийное оборудование

1матр. принтер

4455

4455

20

891

Средства коммуникаций и связи

1 факс-модем

1 сетевое оборуд.

1 телефон

3000

10000

300

3000

10000

300

å=13300

10

åвсего оборудования (комп+принт+ср.комм.)=32755

1330

Хозяйственный инвентарь, мебель

2 стула

1 стол

1 шкаф

1 сейф

1000

2000

5000

7000

2000

2000

5000

7000

10

1600

Итого

48755

8321

Ам=Ам.б.*0,19=8321*0,19=1581 (руб.)

Расчет стоимости и амортизационных отчислений инструментальных средств смотрите в таблице 4.5.

Таблица 4.5 Расчет стоимости и амортизационных отчислений инструментальных средств

Виды инструментальных средств

Стоимость, руб.

Норма амортизации, %

Амортизационные отчисления

Операционная система Win98

MSOffice

1755

1215

30

30

526,5

364,5

Итого

2970

891

Изн.и.=Изн.и.б.*0,19=891*0,19=169 (руб.)

Ам.общ.=Ам+Изн.и.=1750 (руб.)

Единовременные расходы пользователя на освоение ПО и обучение персонала будут:

Смаш.=3,3 (руб.)

Косв.= 524 (руб.)

Кобщ.=40098,11+524=40622,11 (руб.)

План инвестиций поквартально представлен в таблице 4.6 (вся сумма есть цена ПО).


Таблица 4.6 План инвестиций поквартально.

Этапы реализации

проекта

Год

        19992000

Инвестиции, руб..

4

1

2

1. Разработка ПО:

1) техническое задание

2) эскизный проект

3) технический проект

4) рабочий проект

5) внедрение

2. Затраты на оборудование и инструментальные ср-ва

3. Затраты на обучение персонала

9103,5

5635,5

5852,25

6069

2601

8019,75

2817,75

524


График реализации проекта, специалиста (жизненный цикл проекта) представлен в таблице 4.7.

Таблица 4.7 График реализации проекта, специалиста (жизненный цикл проекта)

Этапы реализации проекта

       1999                     2000

квартал

4

1

2

месяц

10

11

12

1

2

3

4

5

6

1. Разработка ПО:

1) техническое зад-е

2) эскизный проект

3) технический проект

4) рабочий проект

5) внедрение

2. Покупка ЭВМ,оборудования и инстр. средств

3. Обучение персонала

4. Эксплуатация ПО

Так как до внедрения данного ПО использовалось ПО, формирующее оптимальный заказ лекарств по принципу минимальной стоимости единицы товара, а данное ПО формирует оптимальный заказ лекарств с учетом гибкой системы скидок на стоимость закупаемой партии, отсюда следует, что заказчик получит экономический эффект за счет использования разработанного программного продукта, в среднем равный:

где – средняя стоимость оптимального заказа с учетом скидок;

– средняя стоимость оптимального заказа по минимуму;

Средний экономический эффект от использования нового ПО (с учетом скидок) по отношению к ранее используемому ПО (принцип минимума) в процентах:

Данные для расчета экономической эффективности смотрите в таблице 4.8.

Таблица 4.8 Данные для расчета экономической эффективности.

Сmin i

Cскид.i

С i

1

12540380,7

12038765,5

501615,2

2

11426932,56

11033880

393092

3

12103210,77

11788527,24

314683,48

12023507,99

11620390,91

403117,08

  

Лликвидность – способность проекта отвечать по имеющимся финансовым обязательствам, которые включают в себя все выплаты, связанные с осуществлением всего жизненного цикла инноваций.

Оценка ликвидности проекта основывается на планировании движения денежных средств. Для этой цели по каждому кварталу отдельно рассматриваются доходы и расходы объекта и разность между ними в денежном выражении. Оценка финансовой состоятельности проекта поквартально представлена в таблице 4.9.

Таблица 4.9 Оценка финансовой состоятельности проекта

поквартально

Показатель

1999-йгод               2000-йгод

2001-й год

квартал

4

1

2

3

4

1

Приток:

Увеличение дохода организации при внедрении ПО

Источники финансирования

40622

1209351

1209351

1209351

Итого:

1209351

1209351

1209351

Отток:

Основной капитал

Издержки производства

(Амобщ +Срем.+ Собт.смаз.)

Налоги (30%)

14739

508

14522

508

11361

508

508

362805

508

362805

508

362805

Итого:

15247

15030

11869

363313

363313

363313

Сальдо денежной наличности

25357

10345

- 1524

846038

846038

846038

Сальдо денежной наличности нарастающим итогом (кумулятивная наличность)

25357

35702

34178

880216

1726254

2572292

Сальдо денежной наличности нарастающим итогом является по всем периодам положительной величиной, следовательно переходим к определению чистой текущей стоимости проекта, характеризующей эффективность проекта.

Интегральный экономический эффект (NPV , чистая текущая стоимость проекта ) определяется путем вычисления разности совокупного дохода за весь период функционирования проекта и всех видов расходов, суммированных за тот же период с учетом дисконтирования.

Дисконтированный поток реальных денег поквартально (NPV) представлен в табл.4.10.

Таблица 4.10Дисконтированный поток реальных денег поквартально

(начало жизни проекта – с октября 1999 года)

Потоки

1999-йгод                 2000-йгод

2001-й год

4

1

2

3

4

1

Приток наличности:

Увеличение дохода организации при внедрении ПО

1209351

1209351

1209351

Амортизация (Ам+Изн.и)

437

437

437

437

437

437

Отток наличности:

Издержки произв-ва (без Ам)

Налоги (30%)

70

70

70

70

362805

70

362805

70

362805

Инвестиции в основной капитал (Кt)

14739

14522

11361

Чистая прибыль (Дt –Зt)

- 70

- 70

- 70

846475

846475

846475

Чистый денежный поток ЧДП

-14372

-14155

-10994

846912

846912

846912

Коэффициент дисконтирования (при r=30/4=7,5%)

0,93

0,86

0,80

0,75

0,70

0,65

Дисконтированный доход

0

0

0

635184

592838

550493

Дисконтирован. капвложения

13707

12489

9089

0

0

0

Дисконтированный денежный поток (ДДП)

-13366

-12173

-8795

635184

592838

550493

Дисконтированный денежн. поток нарастающим итогом (чистая текущая, кумулятивная стоимость проекта) NPV

-13366

-25539

-34334

600850

1193688

1744181

Индекс доходности(SRR – SimpleRateof Return) определяется как отношение суммарного дисконтированного дохода к суммарным дисконтированным капитальным вложениям:

SRR=50,4 > 1

Внутренний коэффициент эффективности проекта (внутренняя норма доходности) (IRR – Internal RateofReturn) определяется как пороговое значение рентабельности, при котором NPVравно нулю.

Здесь берем rквартальное.

r1 – исходная ставка дисконтирования;

r2 – взятая нами любая ставка дисконтирования;

rпор – внутренний коэффициент дисконтирования проекта, при котором NPVравно нулю.

Проект считается эффективным, если rпор > r1 .


Внутренний коэффициент дисконтирования проекта определяется на графике рисунка 4.1.

r1=7,5%, NPV1=1744181;

                                    r2=20%, NPV2=996582.

                                                                rпор=15% > r1=7,5%

Рис. 4.1 Вíóòðåííèé коэффициент дисконтирования проекта

2000000

r, %

NPV, руб.

1000000

-1000000

-2000000

5

10

15

20

25

0


Срок окупаемости проекта определяется на графике рисунка 4.2.

Рис. 4.2 Срок окупаемости проекта

Tок. 3,05 квартала

t, квартал

NPV, руб.

400000

600000

-200000

1

2

3

4

800000

200000

0


                                                                                                                 

                                                                                                             

Выводы по главе

Необходимые условия принятия инвестиционного проекта выполняются:

nсальдо реальных накопленных денег в любом временном интервале, где участник осуществляет затраты или получает доходы является положительным;

nинтегральный экономический эффект больше нуля: NPV=1744181;

nиндекс доходности больше 1: SRR=50,4;

nвнутренний коэффициент эффективности IRRзначительно больше заданной ставки дисконтирования: 15%>7,5%.

Следовательно проект можно считать экономически эффективным.


ЗАКЛЮЧЕНИЕ

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

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

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

Была освещена проблема введения входной информации программы в базу входных данных из файлов различных форматов и структуры и подходы к ее преодолению. При реализации проекта были применены способы увеличения быстродействия программы.

Разработанная программа была отлажена и протестирована на тестовых данных. А затем были проведены эксперименты с реальными данными, предоставленными Белгородским территориальным фондом обязательного медицинского страхования. Эксперименты доказали, что применение генетического алгоритма для формирования оптимального заказа по минимальной стоимости закупки с учетом скидок дает за реальное время работы программы результаты, лучшие результатов других методов.

СПИСОК ЛИТЕРАТУРЫ

1.Основы предпринимательского дела. / под. ред. Осипова Ю.М./— М: Благородный бизнес, 1995 — 430 с.

2.Мескон М.Х., Альберт М., Хедоурн Ф. Основы менеджмента. Пер. с англ. М: Дело, 1997 — 704 с.

3.Гэммон Джон. Покупка и продажа в малом бизнесе.  Руководство барклайз-банка:пер. с англ. М: Аудит, 1996 — 231 с.

4.Синецкий Б.И. Основы коммерческой деятельности. М: Юрист, 1998 — 657с.

5.Фатхутдинов Р.А. Менеджмент конкурентоспособности товара. М: Интел-синтез, 1995 — 55 с.

6.Ильенкова Н.Д. Спрос: Анализ и управление. М: Финансы и статистика, 1997 — 190 с.

7.Журнал. Экономический вестник информации. №2 (24) февраль 2000

8.Батищев Д.И. Генетические алгоритмы решения экстремальных задач. Учебное пособие. Воронеж: ВГТУ, 1995 — 69 с.

9.http://www.neuroproject.ru/

10.http://www.GAmain.ru/

11.Довгаль С.И., Сбитнев А.И. Персональные ЭВМ: Турбо Паскаль v 7.0, Объектное программирование. Киев: Довгаль, 1995 — 314 с.

12.Бошкин А.В., Дубнер П.Н. Работа в Турбо Си. / под. ред. Генса Г.В., Дубнера П.Н./ М: ЮКИС, 1991 — 182 с.

13.Килверт Чарльз. Delphi 2. Энциклопедия пользователя. Пер. с англ. Киев: ДиаСофт, 1996 — 736 с.

14.Шумаков П.В. Delphi 3 и создание приложений баз данных. М: Нолидж,1999 — 704 с.

15.Джефф Когсвелл. Delphi 2.0 сегодня. Минск: Попурри, 1997 — 446 с.

16. Вороновский Г.К., Махотило К.В., Петрашев С.Н., Сергеев С.А. Генетические алгоритмы, искусственные нейронные сети и проблемы виртуальной реальности. Харьков: Курсор, 1997 – 112 с.

17. Г.И. ЗдоровцовРезервы лекарственного обеспечения: Учебное пособие. Белгород: издательство Белгородского государственного университета, 1998 – 108 с.

18. Г.И. Здоровцов  Аккумулирование и использование средств на ОМС: Практическое пособие. Белгород: издательство Белгородского государственного университета, 1999 – 79 с.

19. Айала Ф. Введение в популяционную и эволюционную генетику. /Пер. С англ. – Москва: Мир, 1984

20. Батищев Д.И. Методы оптимального проектирования. – Москва: Радио и связь, 1984