Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Антонов. Системный анализ. Учебник для вузов.doc
Скачиваний:
449
Добавлен:
19.02.2016
Размер:
3.82 Mб
Скачать

Глава 10

МАТЕМАТИЧЕСКОЕ

ПРОГРАММИРОВАНИЕ

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

Математическое программирование подразделяется на линейное, целочисленное, нелинейное, динамическое программирование. Рас­смотрим некоторые постановки задач, методы и алгоритмы их реше­ния.

  1. Математические постановки задач, приводящие к моделям линейного программирования

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

299

лендарного планирования, межотраслевого баланса укладываются в рамки моделей линейного программирования. Несмотря на различные области приложения данные задачи имеют единую постановку: найти значения переменных д: х2,...п , доставляющие оптимум заданной линейной формы z = C1X1+ CzX2+...+ с хп при выполнении системы огра­ничений, представляющих собой также линейные формы.

Рассмотрим примеры конкретных постановок задач, формализация которых приводит к моделям линейного программирования. Вначале рассмотрим задачу определения оптимального ассортимента. Имеет­ся р видов ресурсов в количествах bi,b2,...,bl,...,bpnq видов изделий.

Задана матрица А = ||ау||, где ац характеризует нормы расхода г'-го ре­сурса на единицу j-го изделия (/=1, 2,..., q). Эффективность выпуска единицы j-ro изделия характеризуется показателем Cj, удовлетворяю­щим условию линейности. Требуется определить план выпуска изделий (оптимальный ассортимент), при котором суммарный показатель эффек­тивности принимает наибольшее значение. Обозначим количество еди­ниц у'-го изделия, выпускаемых предприятием, через Xj, тогда матема­тическая модель задачи будет иметь следующий вид:

определить максимум линейной формы max z = JiCjXj

j

при ограничениях на ресурсы <bt, і = I1 2,..., р.

j

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

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

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

300

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

Формализуем данную задачу. Введем обозначения: пусть і - номер задачи; I - полное их число; T - заданное время разработки и внедре­ния первой очереди системы; с. - ожидаемый эффект от внедрения г-й задачи; х. - переменная, принимающая значение 1, если задача вклю­чается в титульный список, и 0 - в противном случае;^ - индекс ресур­сов, необходимых для разработки и внедрения системы; J- количество видов ресурсов. Далее пусть г (t) - потребляемый поток ресурса j-ro вида для разработки и внедрения г-й задачи; тогда общая потребность у-го ресурса для г-й задачи будет определяться следующим образом:

We =}#■„(/)*.

о

Пусть В. - суммарная величина наличия у'-го ресурса в системе. Данный показатель можно определить через величину R.(t) потокау-го ресурса, поступающего для разработки и внедрения системы (0<t<T). Суммарная величина j-ro ресурса определяется по формуле

T

Bj = j Rj(t)dt.

0

Определим еще одну характеристику г’ - максимально допусти­мое значение потребляемого потока ресурса j-ro вида для разработки и внедрения г'-й задачи. Данная величина представляет собой верхнюю

границу величины г (/).

Тогда задачу составления титульного списка можно сформулировать

в следующем виде:

/

максимизировать линейную форму JciXi

I=1

/ /

при ограничениях JwijX. <Bpj = \, J; Jг‘х, < max Rj (/), j = I, J;

1*1 I=I

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

301

решения г-й задачи. Таким образом, данная задача представляет собой задачу целочисленного линейного программирования, причем перемен­ная х. может принимать только два значения: 0 и 1.

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

Будем использовать условия и обозначения, введенные при форму­лировании предыдущей задачи, т.е. будем считать заданными требуе­мые и выделяемые потоки и суммарные величины ресурса. Кроме того, введем обозначения ау и Pfy - моменты начала и окончания использо­вания у'-го ресурса для г-й задачи. При заданных моментах начала и окончания использования J-го ресурса для г-й задачи связь между по­током требуемых ресурсов и его суммарным количеством выражает­ся в виде

h

IrijWt = Wij.

Если моменты начала и окончания использования j- го ресурса для г-й задачи являются неопределенными, то поток ресурсов и его суммар­ное количество связаны соотношением

Pi

J rv (Odt = Wij, і = 1, і, j = I, J,

О

где р, = maxPiy - момент окончания разработки і-й задачи.

Сформулируем ограничения, которые должны иметь место в данной задаче:

ограничение на потребление ресурсов всем проектом

Хг,,(0<Л,(Г), j = ~J,

І=1

ограничение на время выполнения всех задач проекта к установлен­ному сроку

max В,<Т.

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

В качестве критерия оптимальности можно использовать

max В,—>min, (101)

(.)

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

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

XcP-(Pi)-^0Ptj(10-2)

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

Задача (10.1) характерна для проектирования технических систем (технологических линий, летательных аппаратов и т.п.). Для таких сис­тем после завершения этапа разработки начинается этап функциониро­вания. При разработке автоматизированных систем существенными становятся моменты окончания разработок отдельных функциональных задач. Сказывается этапность разработки и внедрения систем. Для этих задач целесообразно пользоваться критерием (10.2).

Рассмотрим еще одну постановку задачи, возникающей при орга­низации деятельности транспортных предприятий, так называемую транспортную задачу. В некоторых пунктах av а2,..., ап находятся склады, в которых хранятся товары в количествах X1, X2,..., Xn соот­ветственно. В пунктах bv b2,..., Ьт находятся потребители, которым необходимо поставить эти товары в количествах, не меньших, чем Yx, Y2,..., Ym соответственно. Обозначим через с.. стоимость перевозки еди­ницы груза из пункта а. в пункт b, Xij - количество товара, перевозимо­го из пункта Oj в пункт Ьу. Для того, чтобы удовлетворить запросы по­требителей, необходимо, чтобы выполнялась система неравенств

Х^У,.,у = Г^. і

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

(10.4)

Xi > 0, і = I, п.

JxijZXi, і = 1, п.

j

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

JJeijXij-^nnn.

j

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