ДонНТУ > Портал магистров ДонНТУ |
Биография Библиотека Ссылки Отчет о поиске Индивидуальное задание |
Автореферат магистерской диссертации:«Исследование применения методов генетических алгоритмов для разработки математической модели ранжирования и оптимизации тендерных торгов» |
Введение Тендерные торги, как основной инструмент закупочной практики Методы оценки конкурсных предложений Актуальность использования выбранного метода оптимизации Описание генетического алгоритма Посмотреть анимацию Постановка задачи С каждым годом бизнес становится все более гибким, мобильным и изменчивым. То, что было оптимальным буквально вчера, сегодня может оказаться весьма далеким от идеала. Нередко появляются и принципиально новые возможности, упустив которые можно быстро отстать от конкурентов, а то и вовсе «вылететь» из бизнеса — примеров последнему, к сожалению, масса. И все из-за приверженности устоявшимся, «проверенным временем» схемам, неспособности мыслить не только тактически, но и стратегически. Наибольший эффект сегодня достигается не столько с помощью наработанных связей, сколько максимальным использованием рыночных механизмов и в первую очередь конкурентной борьбы поставщиков. Ведь бизнес в современных рыночных условиях весьма схож с полномасштабными боевыми действиями, зачастую ведущимися сразу на нескольких фронтах. Поэтому мобилизация всех сил и средств — залог не только достижения успеха в конкурентной борьбе, но и выживания компании. Условно можно выделить несколько этапов введения в бой резервов:
Когда уровень конкурентной борьбы достигает максимума и все резервы уже задействованы, приходится искать дополнительные источники оптимизации хозяйственной деятельности. И одним из главных факторов, определяющих успех, является эффективность использования всех ресурсов: начиная от потребляемого сырья и материалов (включая даже канцелярские товары) и заканчивая услугами внешних консультантов. Приобретение товаров работ и услуг в мировой практике развития занимает видное место и является непрерывным процессом, направленным на рациональное освоение фондов и инвестиций. Термин "приобретение" (англ. procurement) существует в русском языке наряду с термином "закупки", в то время как в отдельных публикациях можно встретить и не совсем благозвучное "прокьюремент". В любом случае, термин "приобретение товаров, работ и услуг" в современном мире означает получение видов продукции, выполненных работ или оказанных услуг в обмен на определенное вознаграждение. В международной практике в качестве основного инструмента приобретения товаров, работ и услуг рассматриваются тендерные торги. Общая схема представлена на рисунке 1. Порядок и условия проведения торгов регламентируются общепринятыми международными нормами и правилами, которые формулируются и выражаются в правилах проведения закупок крупных международных организаций, финансовых институтов и донорских агентств. Помимо этого, методы закупок товаров, работ и услуг посредством тендерных торгов устанавливаются в национальных законодательствах отдельных стран, отраслевых нормативах и других обязательных и рекомендательных документах, используемых при проведении торгов. Рисунок 1 - Общая схема прокъюоремента. Смысл торгов заключается в получении товаров, работ и услуг за наименьшую стоимость при оптимальном качестве. Уже само по себе это утверждение содержит предположение о том, что определяющим фактором при выборе победителя торгов является соотношение цены и качества в представленном претендентом предложении. Однако, важность этих двух факторов в зависимости от предмета торгов различна, что обусловлено особенностями предмета торгов (товары, работы или услуги) и положениями тендерной документации, применяемой для проведения конкретных торгов. В истории тендерной практики был период, когда победители торгов определялись исключительно на основании наименьшей запрашиваемой цены. Данный способ выбора представляется весьма простым и эффективным, однако, по опыту выполнения заключаемых по такому методу контрактов, заказчики быстро поняли, что наименьшая цена вовсе не обязательно означает необходимое качество и может являться единственным определяющим фактором только в отдельных случаях, когда привлекаемые к участию в торгах поставщики, подрядчики или консультанты достаточно хорошо известны заказчику как исполнители, стабильно обеспечивающие требуемый уровень качества. По этой причине, по мере развития тендерных процедур, заказчики были вынуждены вводить в конкурсные документы дополнительные требования по качеству, которые в ряде случаев могли становиться определяющими. Одной из самых важных и сложных задач в оценке предложений, а быть может и проведения конкурса, является выбор победителя. Конечно, это может показаться элементарным, если речь идет о выборе по одному измеримому критерию, такому как цена, и даже по двум-трем. Но обычно критериев больше, и часть из них не количественные, а качественные, которые зачастую формализовать весьма непросто. К тому же не всегда очевидно, насколько эти критерии независимы друг от друга. Методов выбора наилучшего варианта (предложения) разработано довольно много, так как эта задача актуальна для большинства сфер человеческой деятельности, а не только для конкурсных закупок. Существует даже отдельная дисциплина — теория принятия решений, в рамках которой разработаны мощные математические модели, такие как метод анализа иерархий. Однако в закупочной практике чаще всего используются:
Применение иных методов является скорее экзотикой, поскольку для их реализации требуются достаточно глубокие математические знания и логика расчетов не прозрачна для большинства членов конкурсной комиссии, этими знаниями не обладающих. К тому же использование математических методов требует независимости и формализации сопоставляемых критериев, что зачастую проблематично. Практически все научные и технологические проблемы, стоящие перед человечеством, обладают важной объединяющей особенностью: они носят оптимизационный характер. В той или иной степени любую задачу из любой отрасли человеческой деятельности можно сформулировать как проблему оптимизации. Более того, биологическая жизнь сама по себе есть процесс оптимизации, направленный на адаптацию к постоянно меняющейся окружающей среде. Современные оптимизационные задачи отличаются экстремально большим количеством варьируемых параметров, высокой степенью связности параметров задачи, сложной топографией пространства параметров, которая зачастую заранее неизвестна, непредсказуема и, к тому же, постоянно меняется во времени. К настоящему времени для решения таких экстремальных по сложности задач разработан целый ряд оптимизационных методов, основанных на определенной гибридизации следующих двух основных оптимизационных стратегий: детерминистической и стохастической. Детерминистическая стратегия в той или иной степени использует идею о наибыстрейшем достижении ближайшего оптимума, что обеспечивается благодаря учету предыдущих тестов целевой функции и расчету необходимых градиентов. Невзирая на высокую скорость работы, алгоритмы, использующие детерминистическую стратегию, имеют тенденцию к накоплению ошибок вычислений и, что более важно, оказываются мало эффективными в пространствах параметров с большим числом локальных оптимумов. Стохастическая стратегия так или иначе сводится к набору статистики случайных проб и ошибок. По построению методы, использующие такую стратегию, свободны от недостатков, присущих методам, основанным на детерминистической стратегии, и, в принципе, позволяют избежать остановок в локальных оптимумах, однако требуют значительных вычислительных ресурсов. Описанные базовые идеи оптимизации имеют своей целью поиск либо одного очень точного решения (детерминистические методы), либо целого набора достаточно оптимальных решений (стохастические подходы). Кроме того, они либо принципиально последовательны (детерминистические методы), либо параллельны (стохастические подходы). С теоретической точки зрения, использование компьютеров с параллельной архитектурой процессоров позволяет значительно сократить время расчетов. На практике же это не дает ожидаемого выигрыша в скорости, так как для детерминистических методов требуется дополнительное распараллеливание, а для стохастических подходов становится актуальной проблема синхронизации параллельных процессов. Следовательно, наиболее мощными и производительными должны оказаться методы оптимизации, которые, с одной стороны, нацелены на нахождение целого набора достаточно оптимальных решений вместо одного очень точного (свойство популяциионности метода), а с другой стороны, хорошо приспособлены для использования на компьютерах с высокопараллельной архитектурой процессоров (свойство параллельности метода). Поэтому поиску именно таких алгоритмов в последнее время уделяется все больше внимания. Инженеры и дизайнеры программного обеспечения всегда обращались за новыми идеями к биологии. Так произошло и с эволюционными компьютерными технологиями. Ученых всегда интересовало, каким образом природе удалось достичь такого разнообразия и приспособленности различных форм жизни на Земле. Иными словами, какой метод оптимизации использует природа? Ответ на этот вопрос дает теория эволюции, изложенная в любом учебнике по биологии. Стратегию оптимизации, основанную на генетической эволюции обычно называют эволюционным алгоритмом (ЭА). С точки зрения ЭА, процесс оптимизации представляет собой отбор наиболее подходящих (оптимальных для целевой функции) наборов оптимизируемых параметров. Вместе с тем, использование дарвиновской идеи о биологической эволюции посредством естественного отбора сопровождается воспроизведением деталей механизмов, благодаря которым эта эволюция осуществляется: мутация, рекомбинация и наследование. Эволюционный взгляд позволяет классифицировать детерминистические методы оптимизации как методы с полным наследованием, так как каждое новое вычисление целевой функции полностью определено предыдущим. Методы случайного поиска в этом же ракурсе характеризуются полным отсутствием наследования (полной мутативностью), так как каждое последующее вычисление целевой функции полностью независимо. Копируя природу, ЭА комбинирует мутацию, рекомбинацию и наследование таким естественным способом, который может быть легко настроен для решения практически любой задачи. Иными словами, эволюционный алгоритм является универсальным алгоритмом. Простейший ЭА (называемый часто генетическим алгоритмом) выглядит следующим образом. Для генетической кодировки численных значений оптимизируемых параметров, наличия либо отсутствия некоторых специфических свойств сложной системы, исполняемых частей компьютерных программ, и т. д. используются двоичные числа. Каждый оптимизируемый параметр представляется последовательностью двоичных битов (генов). Полный набор генов (закодированных параметров) называют хромосомой. Каждая особь содержит полный набор хромосом (геном). Приспособленность (селективное качество) особи определяется тем, насколько хорошо данный набор параметров удовлетворяет условиям решаемой задачи. Фиксированное число особей образуют популяцию. Эволюционный процесс начинается с начальной популяции, составленной из особей, геномы которых заполнены случайными генами (численные значения оптимизируемых параметров выбраны случайно в требуемых диапазонах). Целевая функция вычисляется индивидуально для каждой особи, после чего последняя приобретает селективное качество (приспособленность). Из популяции выбираются две родительские особи, которые производят две особи-потомки (репликация родителей). Один из рецептов выбора родителей таков: чем выше приспособленность особи, тем выше для нее вероятность быть выбранной в качестве родителя. Генетические изменения в процессе репликации достигаются благодаря двум ключевым операторам алгоритма: мутации и кроссоверу. При мутации один или несколько битов гена потомка случайно инвертируются (относительно соответствующего гена родителя). При кроссовере гены потомков обмениваются комплиментарными связными порциями битов. После репликации для каждого потомка вычисляется целевая функция и им присваивается приспособленность. Далее из популяции выбираются две особи, на места которых помещаются особи потомки. Один из рецептов отбора особей из популяции следующий: если данный потомок более приспособлен, чем наименее приспособленная особь в популяции, то последняя заменяется данным потомком. Важно, что численность популяции при этом сохраняется. Затем выбирается новая пара родителей и процесс повторяется. Эволюционный процесс разумно остановить, когда, например, все особи в популяции оказываются одинаково приспособленными, так что нельзя ожидать дальнейшего улучшения, либо все соответствующие друг другу гены совпадают по битам. Ведущим оператором ЭА, порождающим эволюционный процесс, является мутация. Аналогично тому, как этот процесс возникает в живой природе, мутация в кибернетическом мире порождает новые гены. Кроссовер по сути есть механизм, посредством которого гены, рожденные благодаря мутации, дрейфуют в популяции, улучшая сходимость эволюционного процесса. Общая схема работы генетического алгоритма представлена в виде Анимации 1. Анимация 1 - Блок-схема генетического алгоритма (кадров 22, повторение 2 раза). Величины и соотношение частот применения операторов мутации и кроссовера определяет, в конечном итоге, скорость и эффективность эволюционного процесса как способа достижения решения требуемой задачи с требуемой точностью. Например, частота мутации управляет степенью наследования: если она слишком велика, то наследование почти полностью отсутствует и ЭА становится одним из стохастических подходов; если она слишком мала, то наследование является практически полным и ЭА оказывается одним из детерминистических методов. Пусть для участия в тендере по выполнению m- работ j=1..m, соревнуются n-компаний i=1..n. Известно что i-я фирма за выполнение j-й работы требует платы Xij. Критерием отбора предприятий является общая стоимость выполнения работ в указанные сроки Группируя ключевые параметры в вектор переменных, мы придаем им статус генетической информации. Рядом стоящие фрагменты не отделяют друг от друга какими-либо маркерами, но при декодировании хромосомы в вектор переменных на протяжении всего моделируемого периода эволюции применяется одна и та же маска картирования. Таким образом, для кодирования информации о предприятии используется хромосома, содержащая в себе информацию о предприятиях, претендующих на выполнение различных работ. Применим бинарное двухбитное кодирование каждого элемента массива, при котором можно не только описать все указанные варианты, но и оставить резерв для дальнейшей модификации алгоритма при его адаптации. Причем для каждого вида работ резервируется кортеж, количество разрядов которого соответствует количеству разрядов необходимого для двоичного кодирования каждого предприятия, претендующего на данный вид работ. Таким образом генерируются исходная популяция бинарных хромосом: всевозможные сочетания фирм, в позициях выполнения различных работ (Рис.2). Рисунок 2 - Кодировка предприятий-участников тендера. Из них выбираются претенденты на скрещивание, это те наборы фирм, у которых общая стоимость выполнения работ наименьшая. Далее происходит итерационный процесс генетического алгоритма. В общем случае ГА работает до тех пор, пока не будет выполнено заданное количество генераций или на некоторой генерации будет получено заданного качества, или возникает преждевременная сходимость, когда найден локальный оптимум и ГА не может найти из него выход. В отличие от других методов оптимизации ГА, как правило, анализирует различные области пространства решений одновременно и более приспособлены к нахождению новых областей с лучшими значениями целевой функции за счёт объединения квазиоптимальных решений из разных популяций |