- •Введение
- •Глава I определениясистемного анализа
- •Системность - общее свойство материи
- •Определения системного анализа
- •Понятие сложной системы
- •Характеристика задач системного анализа
- •Особенности задач системного анализа
- •Глава 2 характеристика этапов системного анализа
- •Процедуры системного анализа
- •Анализ структуры системы
- •Построение моделей систем
- •Исследование ресурсных возможностей
- •Определение целей системного анализа
- •Формирование критериев
- •Генерирование альтернатив
- •Реализация выбора и принятия решений
- •Внедрение результатов анализа
- •Глава 3 построение моделей систем
- •Понятие модели системы
- •Агрегирование - метод обобщения моделей
- •Глава 4 имитационное моделирование - метод проведения системных исследований
- •Сущность имитационного моделирования
- •Композиция дискретных систем
- •Содержательное описание сложной системы
- •Глава 5 теория подобия - методология обоснования применения моделей
- •Модели и виды подобия
- •Основные понятия физического подобия
- •Элементы статистической теории подобия
- •Глава 6 эксперимент - средство построения модели
- •Характеристика эксперимента
- •Обработка экспериментальных данных
- •Глава 7 параметрические методы обработки экспериментальной информации
- •7.1. Оценивание показателей систем и определениеихточности
- •7.2. Использование метода максимального правдоподобия для оценивания параметров законов распределения
- •Глава I определения системного анализа 7
- •Глава 2 33
- •Глава 3 построение моделей систем 53
- •Глава I определения системного анализа 7
- •Глава 2 33
- •Глава 3 построение моделей систем 53
- •7.5. Примеры оценки показателей законов распределения
- •Глава 8
- •Глава I определения системного анализа 7
- •Глава 2 33
- •Глава 3 построение моделей систем 53
- •Формулировка теоремы Байеса для событий
- •Глава I определения системного анализа 7
- •Глава 2 33
- •Глава 3 построение моделей систем 53
- •8.3. Вычисление апостериорной плотности при последовательном накоплении информации
- •Достаточные статистики
- •Сопряженные распределения
- •8.9. Оценивание параметров семейства гамма-распределений
- •Глава I определения системного анализа 7
- •Глава 2 33
- •Глава 3 построение моделей систем 53
- •Глава 9
- •Общие замечания
- •Ядерная оценка плотности
- •Глава 10
- •Задача линейного программирования
- •Глава I определения системного анализа 7
- •Глава 2 33
- •Глава 3 построение моделей систем 53
- •Метод искусственных переменных
- •Дискретное программирование
- •Нелинейное программирование
- •Глава 11 системный анализ и модели теории массового обслуживания
- •Глава I определения системного анализа 7
- •Глава 2 33
- •Глава 3 построение моделей систем 53
- •Замкнутые системы с ожиданием
- •11.5. Пример расчета надежности системы с ограниченным количеством запасных элементов
- •Глава 12 численные методы в системном анализе
- •Метод последовательных приближений
- •Глава I определения системного анализа 7
- •Глава 2 33
- •Глава 3 построение моделей систем 53
- •Глава 13 выбор или принятие решений
- •Глава I определения системного анализа 7
- •Глава 2 33
- •Глава 3 построение моделей систем 53
Глава 10
МАТЕМАТИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ
Методы математического программирования представляют собой класс моделей, применяемых для формализации задач планирования целенаправленной деятельности, предусматривающих распределение ограниченного количества ресурсов разных видов. Подобного рода задачи решаются в различных отраслях деятельности: в экономике, при разработке проектов, составлении расписаний, планировании военных операций и т.п. Модели математического программирования относятся к категории детерминированных моделей. Термин программирование в применении к рассматриваемому типу задач понимается как поиск наилучших планов (от английского слова programming - составление плана, программы действий). Когда говорят о задачах математического программирования, имеют в виду задачи, цель которых состоит в повышении эффективности промышленных, транспортных систем, систем управления деятельностью учебных, проектных, научных организаций.
Математическое программирование подразделяется на линейное, целочисленное, нелинейное, динамическое программирование. Рассмотрим некоторые постановки задач, методы и алгоритмы их решения.
Математические постановки задач, приводящие к моделям линейного программирования
Задачи линейного программирования относятся к категории оптимизационных. Они находят широкое применение в различных областях практической деятельности: при организации работы транспортных систем, в управлении промышленными предприятиями, при составлении проектов сложных систем. Многие распространенные классы задач системного анализа, в частности, задачи оптимального планирования, распределения различных ресурсов, управления запасами, ка-
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,
п.
j
Удовлетворить сформулированным условиям можно бесконечным числом способов. Для того, чтобы выбрать оптимальное правило перевозок, необходимо сформулировать критерий, который будет отражать представления о цели функционирования транспортного предприятия. В данной задаче одним из возможных критериев может выступать стоимость перевозок, тогда вид функционала будет определяться очевидным образом:
JJeijXij-^nnn.
‘j
Таким образом, рассмотрены задачи, математическая формулировка которых описывается схожими моделями, а именно, и оптимизируемый функционал, и ограничения представляют собой линейные формы некоторых переменных. Рассмотрим подходы к решению такого типа задач.