УДК 519.168 Дата подачи статьи: 02.03.16
DOI: 10.15827/0236-235X.114.016-022
МОДЕЛЬ И АЛГОРИТМИЗАЦИЯ ОПТИМИЗАЦИОННОЙ ЗАДАЧИ О НАЗНАЧЕНИЯХ В УСЛОВИЯХ ДОПОЛНИТЕЛЬНЫХ ОГРАНИЧЕНИЙ
Р.Ю. Кордюков, к.т.н., зам.. начальника Главного управления, romkord@yandex.ru (Главное управление научно-исследовательской деятельности МО РФ,
ул. Профсоюзная, 84/32, г. Москва, 11 7997, Россия); Р.В. Допира, д.т.н., профессор, начальник отдела, rvdopira@yandex.ru; А.В. Иванова, младший научный сотрудник, tiki.mikcki@yandex.rui (НПО РусБИТех, пр-т Калинина, 1 7, г. Тверь, 1 70001, Россия); Ф.Н. Абу-Абед, к.т.н., доцент, aafares@mail.ru; Д.В. Мартынов, к.т.н., доцент, idpo@tstu.tver.ru (Тверской государственный технический университет, наб. Аф. Никитина, 22, г. Тверь, 1 70026, Россия)
В статье рассматривается задача оптимального выбора кандидатов на выполнение работ в тендерных проектах исходя из финансовых условий, выдвигаемых соискателями. Представлены критерии, являющиеся ключевыми при отборе подходящих заявок претендентов с учетом заранее объявленных нормативов. Задача приводится в формализованном виде, при этом целевой функцией является минимизация затрат на реализацию проектов. Построена модель, агрегирующая исходные данные и ограничения в единую систему и позволяющая оперировать начальными условиями для их анализа. Предлагается специальный алгоритм поиска оптимальных вариантов назначений, базирующийся на теории графов, методике последовательного анализа и отсева вариантов и неявном переборе. Данный алгоритм учитывает требования, предъявляемые к заявкам соискателей, и работает как при наличии финансовых ограничений предприятий по максимуму и минимуму, так и при их отсутствии, а также предоставляет возможность подбора исполнителей на комплексный проект, реализация которого подразумевает успешное совместное завершение множества отдельных проектов, входящих в его состав. Предлагаемое ПО, разработанное для решения данной задачи, предоставляет возможности по формированию списков конкурсных проектов, кандидатов на их выполнение и их заявок на определенные виды работ с учетом существующих стоимостных, временных и вероятностных ограничений. По представленному алгоритму осуществляется поиск всех заявок, удовлетворяющих требованиям нормативов, и среди них определяется оптимальная выборка, учитывающая возможности исполнителей по освоению выделяемых ресурсов.
Ключевые слова: задача о назначениях, тендер, распределение проектов, оптимизация расходов, теория графов, неявный перебор.
Широкое распространение конкурентной формы отбора предложений на выполнение работ по заранее объявленным условиям обусловливает актуальность проблемы выбора исполнителей того или иного проекта из числа подавших заявку на тендер. Решение задачи оптимального назначения исполнителей, претендующих на выполнение проектов на конкурсной основе, значительно повышает эффективность распределения финансирования и дает положительный экономический эффект.
При решении данной задачи необходимо учитывать соответствие подаваемых заявок следующим требованиям: выполнение проектов в установленные сроки, непревышение границ бюджета, оценка рисков по гарантиям успешного выполнения проекта - не менее заданного значения вероятности. Следует отметить, что некоторые проекты являются комплексными и включают в себя другие проекты в качестве составных частей, реализация которых обеспечит создание комплексных технических систем. В этом случае вероятность завершения проекта определяется вероятностями успешного завершения всех проектов по созданию его составных частей [1].
При выборе исполнителей необходимо принимать во внимание возможное требование обеспечения некоторых предприятий минимальным объе-
мом заказов и вместе с тем учитывать возможности предприятий по освоению выделяемых ассигнований.
Формализация задачи
Решение задачи оптимального назначения проектов исполнителям, претендующим на их выполнение, направлено на повышение экономической эффективности исполнения проектов и сопряжено с большим количеством временных и стоимостных ограничений.
В формализованном виде задачу оптимального назначения на выполнение проектов можно представить следующим образом: задано множество выставленных на конкурс проектов Q={Qb Q2, ..., Qj, ..., Qm}. Имеется множество возможных претендентов на выполнение отдельных проектов I = {I\, I2, ..., Ii, ..., In}. Требуется распределить множество проектов Q между исполнителями I:
т
ß = Uö',Ö'nöi=0
1=1
при хф-j, так, чтобы выполнялось
C = ±C (Q min (1)
j=1
при P (Qj )> P0, (2)
Сшп )< , (3)
Т&)<Т°, (4)
где Р(<0) - вероятность успешного завершения проекта С(<2,) - стоимость выполнения проектов, назначенных ,-му исполнителю; Т(0) - время завершения проекта Qj.
Заявленная стоимость ,-го исполнителя выполнения у-го проекта не должна превышать заданную (Су < Со), а время до завершения проекта т ,у превышать директивное.
По предоставленным данным формируются признаки претендентов на каждый проект:
1, если г-й исполнитель претендует
Пу = < на выполнение ] -го проекта, ж в противном случае.
Необходимо определить матрицу назначений X = Х„ , г = 1, п= 1, т,
гДе Xy =
1 при назначении г-го исполнителя
на выполнение у-го проекта,
О в противном случае.
Успешное завершение у-го проекта ,-м исполнителем оценивается вероятностью Р(Д Qj). Если проект Qj является комплексным, то есть
д ={<2^ ..., а*},
то р.=ПР (I,, Qe ),
(5)
где P(Ii, Qje) - вероятность успешного завершения составной части проекта Qj исполнителем Ii.
Таким образом, математическая формулировка задачи на основании условий (1)-(4) выглядит следующим образом:
n m
минимизировать C (X) = ЦСу%tjXy ^ min (6)
i=i j=i
при ограничениях
n m
YEXj ^ m,
i=1 j=1
n
IX j= 1 ,
i = l
x( Xj. )< Tm (Qj),
m
c,mm < IfXi- < cmBX, j=i
P ( x. )* P.
(7)
(8)
(9)
(10) (11)
Переменная щ не допускает распределение проектов исполнителям, не претендующим в конкурсе на этот проект.
Ограничения (7) и (8) означают, что все т проектов распределены в результате конкурса и один проект распределяется, соответственно, только одному исполнителю, а ограничение (9) обеспечивает выполнение проектов в заданные директивные сроки.
Ограничения (10) обусловлены необходимостью минимального обеспечения предприятия-исполнителя заказами (Cmm) для его функционирования, а также призваны учитывать его возможности по освоению выделяемых ассигнований (Cmax).
Ограничения (11) обеспечивают требуемую вероятность выполнения особо важных проектов, срыв которых может принести значительный ущерб.
Таким образом, поставленная задача формализована и представлена в математическом виде: выявлены целевая функция и ограничения, которым она должна соответствовать.
Подходы к решению
В формализованном виде задача представляет собой задачу комбинаторной оптимизации в области математической оптимизации. Также ее можно охарактеризовать как общую задачу о назначениях с дополнительными условиями.
Обобщенная задача о назначениях в наиболее общей форме формулируется следующим образом: имеется некоторое число работA = {a1, ..., ai, .... am} и некоторое число исполнителей B = {b1, .... bj, ..., b„}, при этом множество исполнителей имеют размер, необязательно равный размеру множества работ. Исполнитель может быть назначен на выполнение любых (необязательно одной) работ, но с неодинаковыми затратами, то есть эффективность пары at и bj - это c(a,, bj); Xj = 1, если ai размещено на позиции bj, и 0 в противном случае, xi,e{0, 1}. Для каждой задачи был назначен один исполни-
n
тель, то есть I = IV/. В этой формулировке ре-
i=l
шение может и не быть целым, но всегда существует оптимальное решение с целыми значениями. Это утверждение следует из абсолютной уни-модулярности матрицы [2]. Каждый исполнитель имеет определенный бюджет, так что сумма всех затрат не должна его превышать:
m
Irjkxij < Rj Vj,
.=i
где Rk - ресурс агента k. Требуется распределить работы так, чтобы выполнить их с минимальными
n m
затратами: Цс,Х ^ min.
i=lj = 1
Обобщенная задача может быть решена несколькими методами. Вот некоторые из них:
- метод полного перебора;
- метод ветвей и границ;
- эвристические алгоритмы (алгоритм жадности, метод поиска ближайшего соседа);
- метод восхождения;
- генетические алгоритмы (эволюционные вычисления);
- мета-эвристики (локальная оптимизация, гибридные схемы) и др.
Из перечисленных методов наиболее затратным по машинному времени является метод полного перебора, наиболее выгодными - метод ветвей и границ и генетические алгоритмы. Наиболее эффективное решение получается при использовании генетических алгоритмов. Однако стоит отметить, что в общем случае генетические алгоритмы не гарантируют нахождение оптимального решения [3]. Это является существенным недостатком для контекста данной задачи: различия между решением с хорошим результатом и оптимальным решением, составляющие небольшую разницу между стоимостными характеристиками C(Xij), на деле могут привести к значительным экономическим потерям.
В представленной задаче о назначениях присутствует ряд дополнительных условий - ограничений и зависимостей, что также предъявляет определенные требования к используемым алгоритмам. Во-первых, это наличие не только верхнего ограничения по ресурсам для исполнителей, но и нижнего
т
значения: С™п < ¿С^ < Ствх. Во-вторых, в слу-
j=1
чае комплексного проекта Qj возникает элемент нелинейности в ограничении по вероятности его
успешного выполнения: р = ^Р , 0е).
е=1
Для решения оптимизационных задач часто используются алгоритмы нелинейной оптимизации, представленные в вычислительных пакетах, однако они, как и все численные итеративные методы, обладают рядом недостатков, что существенно затрудняет их применение: при поиске условного экстремума данные методы осуществляют поиск локального экстремума, а также обладают вероятностью зацикливания. Кроме этого, они требуют приближенного начального решения
- определения некоторого допустимого распределения и в случае неудачных начальных значений не позволяют решить задачу [4].
Таким образом, для решения задач этого типа разрабатываются специфические алгоритмы, основанные на комбинаторике, графах и т.д. [5].
Алгоритм поиска оптимальных назначений
Исходя из того, что данная задача является задачей целочисленного (булевого) программирования и переменные матрицы назначений Xij могут принимать всего лишь два значения - 0 и 1, для оперирования предоставляемыми входными данными и ограничениями при реализации алгоритмов решения наиболее эффективно представление множества заявок на исполнение в форме графа.
Вершинами графа являются объекты заявок исполнителей на тот или иной проект Х^еХ, ребрами
- все возможные варианты назначений исполнителей I на проекты Q.
Образованный граф О является многодольным или да-дольным, так как множество X его вершин Ху можно разбить на да (по количеству проектов) непересекающихся подмножеств таким образом, что в графе О нет ни одного ребра, у которого оба конца лежали бы в одной доле [6]. Действительно, в соответствии с условием (8) каждый проект или часть комплексного проекта выполняется единственным исполнителем и, учитывая требование (7), все проекты Q2, ..., Qj, ..., Qm} должны быть выполнены.
Заявку Ху претендента I на проект Qj характеризуют следующие параметры:
- стоимостная характеристика С(Ху) - заявленная стоимость, за которую исполнитель готов реализовать проект;
- временная характеристика т(Ху) - время, необходимое исполнителю на реализацию проекта;
- вероятностная характеристика Р(Х) - гарантируемая вероятность выполнения проекта на требуемых условиях и в заданные сроки.
Множество проектов Q представляется в форме списка, где каждый проект Qj характеризуют параметры:
- заданная стоимость Су - максимальная стоимость выполнения проекта;
- временная характеристика Гдир(Оу) - директивное время выполнения проекта;
- вероятностная характеристика Р^) - нижняя граница требуемой вероятности успешного завершения проекта.
Аналогично представляется множество исполнителей I, где каждый исполнитель I характеризуется
- минимальным бюджетом Стт - бюджет минимального обеспечения исполнителя заказами;
- максимальным объемом средств Стах - максимальный объем выделяемых исполнителю ассигнований.
Структура данных в форме да-дольного графа, множества исполнителей и проектов в общем виде представлена на рисунке 1.
Используемая на начальном этапе подготовки данных методика последовательного развития, анализа и отсева вариантов состоит в способе построения операторов их анализа таким образом, чтобы они позволяли отсеивать бесперспективные начальные части вариантов до их рассмотрения. Поскольку при отсеивании бесперспективных начальных частей вариантов отсеивается и все множество их продолжений, происходит значительная экономия вычислительных затрат [7].
Таким образом, на первом этапе алгоритма определяется множество допустимых решений. При отсеве недопустимых вариантов назначений осуществляется просмотр всех поданных заявок исполнителей по перечню проектов. В соответствии с представленными требованиями ограничений отсеиваются заявки:
m-дольный граф G
Список Q1, Q 2, Qj, .. •, ^Qm
© © © (Xm^
© © (im)
© © © (xm^
(xnl^ ©
Рис. 1. Структура представления исходных данных Fig. 1. The original data representation structure
- не проходящие по стоимостным критериям,
С(Х) < Су;
- не укладывающиеся в сроки исполнения,
т(Ху) < Тдир(0,);
- не предоставляющие необходимых гарантий исполнения, Р(Х,у) > P(Qj).
Для комплексных проектов отсев претендентов по вероятности не осуществляется, так как в данном случае учитывается только совместная вероятность успешного выполнения.
Так как к последующим этапам будут допущены только заявки, прошедшие отбор, количество кандидатов на исполнение каждого проекта Qj может измениться. Если в ходе предварительного анализа хотя бы на один проект не находится претендентов с заявками, удовлетворяющими объявленным условиям, алгоритм прекращает работу из-за отсутствия возможных решений.
Благодаря определению множества допустимых заявок размерность задачи может быть существенно снижена.
На втором этапе алгоритма происходит сортировка списка вершин-заявок в каждой доле т-доль-ного графа, то есть для каждого проекта. Вершина содержит следующий набор данных: наименование проекта I,, наименование исполнителя Qj, заявленная стоимость С(Ху), временная характеристика т(Ху), вероятностная характеристика Р(Х,у).
Сортировка производится по возрастанию заявленной стоимости.
Таким образом, на следующих этапах работы алгоритма в первую очередь будут просматриваться наиболее оптимальные варианты назначений и только в случае отсутствия таковых - претенденты с более высокими заявленными стоимостями.
На третьем этапе осуществляется поиск в графе допустимых маршрутов - распределений за-
явок способами, удовлетворяющими всем требованиям ограничений.
Поиск осуществляется методом обхода графа по стратегии DFS - поиска в глубину [8]. Данный алгоритм позволяет увеличить скорость поиска, просматривая сначала заявки на каждый проект с минимальными стоимостями и только потом переходя к рассмотрению помещенных в конец отсортированного списка.
Для реализации алгоритма используются вспомогательные структуры:
- стек для запоминания еще не обработанных вершин графа (заявок);
- список допустимых решений - выборок заявок;
- текущий формируемый список заявок.
Поиск выполняется следующим образом.
I. Задается множество стартовых вершин - заявок на выполнение первого проекта в списке проектов Q.
II. Организуется цикл по условию опустошения стека, и внутри цикла выполняются следующие шаги:
1. извлечь из стека очередную вершину (заявку);
2. обработать вершину (заявку);
3. заменить в формируемом списке заявку на анализируемый проект из списка Q на извлеченную из стека;
4. удалить из формируемого списка все заявки на проекты, следующие за анализируемым;
5. определить исполнителя, подавшего извлеченную из стека заявку;
6. проверить превышение бюджета для форми-
т
руемого списка заявок (1СиХи < С;тах) по опреде-
1=1
ленному исполнителю из списка I: если бюджет превышен, извлечь из стека очередную вершину (заявку), иначе перейти к шагу 7;
7. для комплексного проекта проверить значение гарантированной вероятности успешного исполнения проекта: если значение меньше заданного, извлечь из стека очередную вершину (заявку), иначе перейти к шагу 8;
8. если заявка извлечена, перейти на последний проект из списка Q, иначе перейти к шагу 9;
8.1. проверить обеспечение минимального фит
нансирования, С™11 < 1СуХу, для формируемого
1=1
списка заявок по всем исполнителям списка I:
8.1.1. если финансирование не обеспечивается, извлечь из стека очередную вершину (заявку),
8.1.2. иначе добавить формируемый список к списку допустимых решений;
9. включить в стек все вершины (заявки) на следующий проект из списка Q, то есть смежные с текущей.
Основные принципы работы алгоритма показаны на рисунке 2.
m-дольный граф G
г~\ ГЛ r\ r\
Ъ. J — сортировка по C(Xy)
-► - продолжение поиска
X - отсечение подмножества
Рис. 2. Принцип работы алгоритма на структуре данных
Fig. 2. The principle of the algorithm
По окончании работы поискового подалгорит-ма найдены все возможные варианты, обеспечивающие назначение исполнителей по всем заданным проектам в рамках ограничений (10) и в случае (5) (комплексного проекта) ограничения (11).
На четвертом этапе осуществляется определение оптимального пути - варианта назначений -из составленного списка допустимых решений, в котором суммарная стоимость исполнения всех проектов будет минимальной. Для этого достаточно просуммировать заявочные стоимости проектов и остановиться на варианте с минимальным
значением: min ^If (Xtj )j .
Задачи дискретной оптимизации имеют конечное множество допустимых решений, которые теоретически можно перебрать и выбрать наилучшее (дающее минимум или максимум целевой функции). Зачастую практически это бывает неосуществимо даже для задач небольшой размерности [9].
В методах неявного перебора делается попытка так организовать перебор, используя свойства рассматриваемой задачи, чтобы отбросить часть допустимых решений. Наибольшее распространение среди схем неявного перебора получил метод ветвей и границ, в основе которого лежит идея последовательного разбиения множества допустимых решений. На каждом шаге метода элементы подмножества подвергаются анализу: содержит ли данное подмножество оптимальное решение [9].
При поиске в графе путем его обхода метод неявного перебора применяется на шагах 6 и 7.
На шаге 6 дальнейший поиск при превышении максимального объема финансирования (10), выделяемого организации, прекращается. Благодаря данному анализу отсекается подмножество вершин графа, образующее дерево с корневой вершиной, содержащей заявку, рассматриваемую в текущий момент работы алгоритма. Исследуемый путь в графе переходит на соседнюю или возвращается на предыдущую вершину, и поиск продолжается. Аналогичная ситуация возникает на шаге 7, когда множество вершин, изначально предполагаемых к рассмотрению, исключаются по причине уменьшения вероятности успешного завершения комплексного проекта до неприемлемых значений (11).
Модификация алгоритма
Алгоритм, основанный на методе ветвей и границ, который строит дерево решений для перебора вариантов маршрута (циклов обхода) с отсечением, можно модифицировать, уменьшив время его работы. Отсекаются такие частично построенные маршруты, у которых оценка длины маршрута больше или равна длине ранее построенного полного наилучшего маршрута [10]. Применительно к предлагаемому алгоритму данная модификация будет следующей.
Изначально определяется минимально возможная стоимость исполнения каждого проекта без учета финансовых ограничений (10). Для этого достаточно найти минимальную заявленную стоимость на каждый из m проектов из числа допустимых решений, полученных на 1-м этапе.
Если при выборе заявки на j-й проект Qj сумма стоимостей уже отобранных заявок совместно с суммой минимально заявленных из возможных по оставшимся проектам превышает стоимость выполнения всех проектов в наилучшем наборе назначений из ранее найденных и помещенных в список допустимых решений, то дальнейший анализ, начиная с вершины j+1 по текущему варианту маршрута, не имеет смысла:
j nm n m
ICXj +I Imin (CjX j ICX.
j=i t=ij=j ¡=ij=i
В общем случае при применении алгоритма на множествах проектов Q небольшой размерности (до 10 проектов) данную проверку имеет смысл производить на шагах при j>m/2, то есть со второй половины списка проектов. При работе со списками большой размерности частота проведения проверок увеличивается.
Описание разработанного программного средства
Описанные в статье методы и алгоритмы были реализованы в виде программного комплекса со следующими характеристиками.
Рис. 3. Интерфейс разработанного ПО Fig. 3. The interface of the developed software
Максимально возможное количество проектов и кандидатов на исполнение не ограничивается конкретными пороговыми значениями, однако при обработке больших объемов данных или многовариантных решений возможно существенное увеличение времени работы алгоритма программного комплекса. Во избежание этого множество заявок Х, подаваемых на вход системе, следует делать минимальным, для чего необходимо указывать все возможные ограничивающие критерии [11]. Однако при полном отсутствии ограничивающих критериев (10) алгоритму достаточно одного шага анализа, так как решение задачи сводится к выборке заявки минимальной стоимости из всех заявленных на проект и, благодаря предварительной сортировке данных, в первую очередь будет просмотрен оптимальный вариант.
Графический интерфейс разработанного на основе приведенного алгоритма ПО представлен на рисунке 3.
Программный комплекс предоставляет следующие возможности:
- задание временных, стоимостных и вероятностных ограничений по каждому проекту;
- задание финансовых ограничений на бюджет исполнителей;
- работа в режимах с множеством независимых проектов и многозадачным комплексным проектом;
- определение на основе входных данных всех возможных назначений (заявок), соответствующих требованиям, по видам работ;
- нахождение набора оптимальных назначений, минимизирующего финансовые затраты на выполнение комплекса проектов.
Исходя из сведений по проектам и заявкам кандидатов, данный комплекс позволяет найти оптимальное распределение назначений и проконтролировать соответствие предложений обозначенным требованиям, а в результате снизить экономические издержки и направить финансирование организациям с учетом их возможностей по освоению средств.
Литература
1. Кордюков Р.Ю. Метод оптимизации размещения гос-оборонзаказа на предприятиях оборонно-промышленного комплекса // Науч. вестн. ОПК России. 2015. № 2. С. 70-73.
2. Вагнер Г. Основы исследования операций; [пер. с англ.]. М.: Мир, 1972. Т. 1. 336 с.
3. Фомина Ю.Н. Исследование алгоритмов оптимизации конфигурирования и распределения заказов при решении задач ТПП в среде виртуального предприятия // Науч.-технич. вестн. 2007. № 38. С. 188-196.
4. Пантелеев А.В., Летова Т.А. Методы оптимизации в примерах и задачах. 3-е изд. М.: Высш. школа, 2008. 544 с.
5. Вавилов В.А., Змеев О.А., Змеева Е.Е. Исследование операций: электр. пособие. URL: http://fmi.asf.ru/library/book/ OperReserch/ (дата обращения: 24.12.2015).
6. Кузнецов О.П. Дискретная математика для инженера. СПб: Лань, 2009. 400 с.
7. Сипко Е.Н. Метод последовательного анализа вариантов решения задачи составления расписания занятий // Искусственный интеллект. 2011. № 1. С. 243-250.
8. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. М.: Вильямс, 2005. 1296 с.
9. Гончаров Е.Н., Ерзин А.И., Залюбовский В.В. Исследование операций. Примеры и задачи: учеб. пособие. Новосибирск: Изд-во НГУ, 2005. 78 с.
10. Костюк Ю.Л. Эффективная реализация алгоритма решения задачи коммивояжера методом ветвей и границ // Прикладная дискретная математика. 2013. № 2. С. 78-90.
11. Иванова А.В., Абу-Абед Ф.Н. Построение имитационных моделей со случайными событиями и процессами // Проблемы информатики в образовании, управлении, экономике и технике: сб. стат. XV Междунар. науч.-технич. конф.; [под ред. В.И. Горбаченко, В.В. Дрождина]. Пенза, 2015. С. 38-42.
DOI: 10.15827/0236-235X. 114.016-022 Received 02.03.16
A MODEL AND ALGORITHMIZATION OF THE ASSIGNMENT PROBLEM UNDER ADDITIONAL CONSTRAINTS Kordyukov R.Yu., Ph.D. (Engineering), Deputy Head, romkord@yandex.ru (Main Department of scientific and research activities and technological support of the advanced technologies
of the Ministry of defense of the Russian Federation, Profsoyuznaya St. 84/32, Moscow, 117997, Russian Federation);
Dopira R.V., Dr.Sc. (Engineering), Professor, Head of Department, rvdopira@yandex.ru;
Ivanova A. V., Junior Researcher (NPO RusBITex, Kalinina Ave. 17, Tver, 170001, Russian Federation); Abu-AbedF.N., Ph.D. (Engineering), Associate Professor, aafares@mail.ru; MartynovD.V., Ph.D. (Engineering), Associate Professor, idpo@tstu.tver.ru (Tver State Technical University, Nikitin Quay 22, Tver, 170026, Russian Federation)
Abstract. The article discusses the problem of optimal selection of candidates for working in tender projects based on financial conditions offered by candidates. It presents key criteria in selecting appropriate applications of candidates on the basis of pre-announced standards. The problem is formalized. The objective function is to minimize the costs for project implementation. The developed model aggregates the source data and constraints into one system and allows operating the initial conditions for their analysis. The authors offer a special algorithm for optimal appointment variants search based on the graph theory, the method of sequential analysis and option screening, as well as implicit enumeration. This algorithm takes into account the requirements for the applications of candidates. It works both in terms of the excistance of enterprises' maximum and minimum financial constraints, and in their absence. It allows selecting performers for a complex project, which involves the successful completion of many individual projects in its composition. The developed software provides opportunities for creating a list of competitive projects, candidates for their implementation and their applications for certain types of work, taking into account the existing cost, time and probability limits. The algorithm searches all applications that meet the requirements of standards, then it determines the optimal selection among them, taking into account the performers' possibilities of the acquisition of allocated resources.
Keywords: assignment problem, tender, project distribution, cost optimization, graph theory, implicit enumeration.
References
1. Kordyukov R.Yu. Optimization method of placing the state defense order for the enterprises of the military-industrial complex. Nauchny vestnikOPKRossii [Scientific Journ. of the Russian Defense Industry]. 2015, no. 2, pp. 70-73 (in Russ.).
2. Wagner G. Principles of operations research. Prentice-Hall Publ., New Jersey, 1969, vol. 1. (Russ. ed.: Vavilov B.T., Moscow, Mir Publ., 1972, 336 p.).
3. Fomina Yu.N. The study of algorithms to optimize the configuration and distribution of orders for solving the TPP in a virtual enterprise. Nauchno-tekhnichesky vestnik [Scientific and Technical Journ. of Information Technologies, Mechanics and Optics]. 2007, no. 38, pp. 188-196 (in Russ.).
4. Panteleev A.V., Letova T.A. Metody optimizatsii v primerakh i zadachakh [Optimization Methods in Examples and Problems]. Study guide for universities. 3rd ed., Moscow, Vysshaya Shkola Publ., 2008, 544 p. (in Russ.).
5. Vavilov V.A., Zmeyev O.A., Zmeyeva E.E. Issledovanie operatsy [Operations Research]. Available at: http://fmi.asf.ru/library/book/OperReserch/ (accessed December 24, 2015).
6. Kuznetsov O.P. Diskretnaya matematika dlya inzhenera [Discrete Mathematics for Engineers]. St.-Petersburg, Lan Publ., 2009, 400 p.
7. Sipko E.N. The method for sequential analysis of variants to solve a scheduling problem. Iskusstvenny intellekt [Artificial Intelligence]. 2011, no. 1, pp. 243-250 (in Russ.).
8. Carmen T.H., Leiserson C.E., Rivest R.L. Introdaction to Algoritms. 2nd ed., MIT Press Publ., London, 2001.
9. Goncharov E.N., Erzin A.I., Zalyubovsky V.V. Issledovanie operatsy. Primery i zadachi [Operations Research. Examples and Tasks]. Study guide for universities. Novosibirsk, NSU Publ., 2005, 78 p.
10. Kostyuk Yu.L. Effective implementation of an algorithm for solving the traveling salesman problem by the branch and bound. Prikladnaya diskretnaya matematika [Applied Discrete Mathematics]. 2013, no. 2, pp. 78-90 (in Russ.).
11. Ivanova A.V., Abu-Abed F.N. Construction of simulation models with random events and processes. Problemy in-formatiki v obrazovanii, upravlenii, ekonomike i tekhnike: sb. stat. XVMezhdunar. nauch.-tekhnich. konf. [Informatics Problems in Education, Management, Economics and Engineering. Proc. of the 15 Int. Scientific and Technical Conf.]. V.I. Gor-bachenko, V.V. Drozhdin (Eds.). Penza, 2015, pp. 38-42 (in Russ.).