1 2. Теория двойственности в линейном программировании. Двойственный симплекс-метод Каждой задаче линейного программирования соответствует другая задача, называемая двойственной или сопряженной по отношению к исходной. Теория двойственности оказалась полезной для проведения качественных исследований задач линейного программирования. 2.1. Определение и экономический смысл двойственной ЗЛП Пусть прямая задача записана в каноническом виде: (2.1) (2.2) (2.3) Задачей, двойственной к ЗЛП (2.1)-(2.3), называется следующая ЗЛП (2.4) (2.5) (2.6) Из приведенного определения следует, что двойственная ЗЛП строится по следующим правилам: 1) Каждому ограничению прямой задачи соответствует переменная двойственной задачи, т.е. число переменных двойственной задачи (y1,.,.,yn) равно числу ограничений прямой задачи. 2) Каждой переменной прямой задачи соответствует ограничение двойственной задачи, т.е. число ограничений двойственной задачи равно числу переменных прямой задачи. 3). Матрица функциональных ограничений двойственной задачи получается путем транспонирования матрицы функциональных ограничений прямой задачи. для прямой задачи I для двойственной задачи II 2 4) Вектор целевой функции прямой задачи становится вектором правой части ограничений двойственной задачи, а вектор правой части прямой задачи - вектором целевой функции двойственной задачи. 5) Если целевая функция прямой задачи максимизируется, то целевая функция двойственной задачи минимизируется, а ограничения имеют вид , и наоборот. Прямая задача Двойственная задача (2.7) (2.8) В случае, когда ограничения заданы в виде неравенств двойственная задача задается соотношениями: Исходная задача Пример 2.1. Составить задачу, дующей задаче: Двойственная задача двойственную сле- 3 при ограничениях: Решение. 1. Так как исходная задача на максимизацию, то приведем все неравенства системы ограничений к виду , для чего обе части первого и четвертого неравенства умножим на -1. Получим 2. Составим расширенную матрицу системы 3. Найдем матрицу , транспонированную к А 4. Сформулируем двойственную задачу: при ограничениях > 6.1. Экономическая интерпретация задачи, двойственной задаче об использовании ресурсов Ранее была рассмотрена задача об использовании ресурсов (экономикоматематическая модель и содержательная интерпретация этой задачи I представлены в левой части табл. 6.1). В приведенной модели обозначает запас ресурса — число единиц ресурса , потребляемого при производстве единицы продукции ; — прибыль (выручка) от реализации единицы продукции (или цена продукции ). Предположим, что некоторая организация решила закупить ресурсы предприятия и необходимо установить оптимальные цены на эти ресурсы Очевидно, что покупающая организация заинтересована в 4 том, чтобы затраты на все ресурсы Z в количествах соответственно были минимальны, т.е по ценам С другой стороны, предприятие, продающее ресурсы, заинтересовано в том, чтобы полученная выручка была не менее той суммы, которую предприятие может получить при переработке ресурсов в готовую продукцию. На изготовление единицы продукции P1 расходуется единиц ресурса , единиц ресурса единиц ресурса , ..., единиц ресурса по цене соответственно Поэтому для удовлетворения требований продавца затраты на ресурсы, потребляемые при изготовлении единицы продукции P1, должны быть не менее ее цены с1, т.е. Аналогично можно составить ограничения в виде неравенств по каждому виду продукции . Экономико-математическая модель и содержательная интерпретация полученной таким образом двойственной задачи II приведены в правой части табл. 6.1. Составить такой план выпуска продукции X = (*], х2, ..., х„), при котором прибыль (выручка) от реализации продукции будет максимальной при условии, что потребление ресурсов по каждому виду продукции не превзойдет имеющихся запасов Найти такой набор цен (оценок) ресурсов Y = (yh уъ ..., ут), при котором общие затраты на ресурсы будут минимальными при условии, что затраты на ресурсы при производстве каждого вида продукции будут не менее прибыли (выручки) от реализации этой продукции 5 Цены ресурсов в экономической литературе получили различные названия: учетные, неявные, теневые. Смысл этих названий состоит в том, что это условные, "ненастоящие" цены. В отличие от "внешних" цен на продукцию, известных, как правило, до начала производства, цены ресурсов являются внутренними, ибо они задаются не извне, а определяются непосредственно в результате решения задачи, поэтому их чаще называют оценками ресурсов. 2.2. Основные положения теории двойственности Теорема 1. Пусть ЗЛП, тогда - планы соответственно прямой и двойственной (2.12) Теорема 2, Пусть ЗЛП и , тогда - планы соответственно прямой и двойственной - решения соответственно прямой и двой- ственной задач. Теорема 3. Если прямая (двойственная) ЗЛП имеет конечное решение, то и двойственная (прямая) ЗЛП имеет решение, причем (2.13) Если прямая (двойственная) ЗЛП не имеет решения, то и двойственная (прямая) ЗЛП не имеет решения. Замечание. Если в одной из взаимно двойственных задач нарушается единственность оптимального решения, то оптимальное решение двойственной задачи вырожденное. Это связано с тем, что при нарушении единственности оптимального решения исходной задачи в выражении линейной функции ее оптимального решения через неосновные переменные отсутствует хотя бы одна из основных переменных. С помощью теорем двойственности можно, решив симплексным методом исходную задачу, найти оптимум и оптимальное решение двойственной задачи. Метод, при котором вначале симплексным методом решается двойственная задача, а затем оптимум и оптимальное решение исходной задачи находятся с помощью теорем двойственности, называется двойственным симплексным методом. Этот метод бывает выгодно применять, когда первое базисное решение исходной задачи недопустимое или, например, когда 6 число ее ограничений m больше числа переменных n. 3. Целочисленные модели исследования операций Целочисленное программирование ориентировано на решение задач математического программирования, в которых все или некоторые переменные должны принимать только целочисленные значения. Задача называется полностью целочисленной, если условие целочиcленности наложено на все ее переменные; когда это условие относится лишь к некоторым переменным, задача называется частично целочисленной. Если при этом целевая функция и функции, входящие в ограничения, линейные, то задача является линейной целочисленной. Значительная часть экономических задач, относящихся к задачам линейного программирования, требует целочисленного решения. К ним относятся задачи, у которых переменные величины означают количество единиц неделимой продукции, например, распределение производственных заданий между предприятиями, раскрой материалов, загрузка оборудования, распределение судов по линиям, самолетов по рейсам, а также задачи по производству неделимой продукции. Если единица составляет малую часть всего объема производства, то оптимальное решение находят обычным симплексным методом, округляя его до целых единиц, исходя из смысла задачи. В противном случае округление может привести к решению, далекому от оптимального целочисленного решения. Пример 3,2, В цехе предприятия решено установить дополнительное оборудование, для размещения которого выделено 19,3 м площади. На приобретение оборудования предприятие может израсходовать 10 тыс. у.е., при этом оно может купить оборудование двух видов. Комплект оборудования 1 вида стоит 1000 у.е., а II вида - 3000 у.е. Приобретение одного комплекта оборудования 1 вида позволяет увеличить выпуск продукции в смену на 2 ед., а одного комплекта оборудования II вида - на 3 ед. Зная, что для установки одного комплекта оборудования 1 вида требуется 2 м2 площади, а оборудования II вида - 1 площади, определить такой набор дополнительного оборудования, который дает воз можность максимально увеличить выпуск продукции. Решение. Составим математическую модель задачи. Предположим, что предприятие приобретет комплектов оборудования 1 вида и комплектов оборудования II вида. Тогда переменные и должны удовлетворять следующим неравенствам: (3.11) Если предприятие приобретет указанное количество оборудования, то общее увеличение выпуска продукции составит (3.12) 7 По своему экономическому содержанию переменные х\ и Х2 могут принимать лишь целые неотрицательные значения, т.е., (3.13) (3.14) Таким образом, задача (3.11)-(3.14) представляет собой задачу ЦЛП. Несмотря на то, что к настоящему времени разработан ряд методов решения целочисленных задач, ни один из них не обеспечивает желаемой эффективности соответствующих вычислительных процедур. Методы решения задач целочисленного программирования можно классифицировать как (1) методы отсечений и (2) комбинаторные методы. Исходной задачей для демонстрации возможностей методов отсечений, используемых при решении линейных целочисленных задач, является задача с ослабленными ограничениями, которая возникает в результате исключения требования целочисленности переменных. По мере введения специальных дополнительных ограничений, учитывающих требование целочисленности, многогранник допустимых решений ослабленной задачи постепенно деформируется до тех пор, пока координаты оптимального решения не станут целочисленными. Название «методы отсечений» связано с тем обстоятельством, что вводимые дополнительные ограничения отсекают (исключают) некоторые области многогранника допустимых решений, в которых отсутствуют точки с целочисленными координатами. (Отсекается область, содержащая оптимальное решение и не содержащая целочисленных точек) В основе комбинаторных методов лежит идея перебора всех допустимых целочисленных решений. Разумеется, на первый план здесь выдвигается проблема разработки тестовых процедур, позволяющих непосредственно рассматривать лишь (относительно небольшую) часть указанных решений, а остальные допустимые решения учитывать некоторым косвенным образом. 3.1. Метод ветвей и границ решения целочисленных задач линейного программирования (ЦЗЛП) Рассмотрим задачу целочисленного линейного программирования (ЗЦЛП): Найти вектор , максимизирующий линейную форму (З.1) и удовлетворяющий условиям: (3.2) (3.3) (3.4) Наиболее известным комбинаторным методом является метод ветвей и границ, который также опирается на процедуру решения задачи с ослаблен- 8 ными ограничениями. При таком подходе из рассматриваемой задачи получаются две подзадачи путем специального «разбиения» пространства решений и отбрасывания областей, не содержащих допустимых целочисленных решений. В случае, когда целочисленные переменные являются булевыми, применяются комбинированные методы. Булевы свойства переменных существенно упрощают поиск решения. Рассматриваемый в данном разделе метод ветвей и границ решения задачи целочисленного программирования также опирается на решение задачи с ослабленными ограничениями. Метод ветвей и границ непосредственно применим как к полностью, так и к частично целочисленным задачам. Согласно общей идее метода, сначала решается задача с ослабленными ограничениями (задача линейного программирования). Пусть - целочисленная переменная, значение которой в оптимальном решении ослабленной задачи является дробным. Интервал не содержит допустимых целочисленных компонент решения. Поэтому допустимое целое значение должно удовлетворять одному из неравенств Введение этих условий в задачу с ослабленными ограничениями порождает две не связанные между собой задачи. В таком случае говорят, что исходная задача разветвляется (или разбивается) на две подзадачи. Осуществляемый в процессе ветвления учет необходимых условий целочисленности позволяет исключить части многогранника допустимых решений, не содержащие точек с целыми координатами. Затем каждая подзадача решается как задача линейного программирования (с целевой функцией исходной задачи). Если полученный оптимум оказывается допустимым для целочисленной задачи, такое решение следует зафиксировать как наилучшее. При этом нет необходимости продолжать «ветвление» подзадачи, поскольку улучшить полученное решение, очевидно, не удастся. В противном случае подзадача, в свою очередь, должна быть разбита на две подзадачи опять при учете условия целочисленности переменных, значения которых в оптимальном решении не являются целыми. Разумеется, как только полученное допустимое целочисленное решение одной из подзадач оказывается лучше имеющегося, оно фиксируется вместо зафиксированного ранее. Процесс ветвления продолжается, насколько это возможно, до тех пор, пока каждая подзадача не приведет к целочисленному решению или пока не будет установлена невозможность улучшения имеющегося решения. В этом случае зафиксированное допустимое решение является оптимальным. Эффективность вычислительной схемы метода можно повысить, введя в рассмотрение понятие границы, на основе которого делается вывод о необходимости дальнейшего разбиения каждой из подзадач. Если оптимальное 9 решение подзадачи с ослабленными ограничениями обеспечивает худшее значение целевой функции, чем имеющееся решение, эту подзадачу далее рассматривать не следует. В таких случаях говорят, что подзадача прозондирована, и ее можно вычеркнуть из списка подзадач, порожденных исходной задачей. Иными словами, как только получено допустимое целочисленное решение некоторой подзадачи, целочисленное решение некоторой подзадачи, соответствующее значение целевой функции может быть использовано в качестве (верхней в случае минимизации и нижней в случае максимизации) границы, наличие которой позволяет формализовать процедуру исключения прозондированных подзадач. 3.2. Задача коммивояжера Имеется n городов, занумерованных числами 1,2,...,n. Для любой пары городов задано расстояние (время, путевые расходы) между ними. Поэтому в общем случае Коммивояжер, выезжая из какоголибо города, должен посетить все города по одному разу и вернуться в исходный город. Необходимо определить такую последовательность объезда городов, при которой длина маршрута была бы минимальной. Другая интерпретация этой задачи связана с минимизацией времени переналадок при обработке на одном станке партии из n различных деталей. Здесь - время переналадки при переходе от обработки детали i к обработке детали j. Требуется найти последовательность обработки деталей, минимизирующую общее время переналадок. Для записи постановки задачи в терминах целочисленного линейного программирования определим булевы переменные следующим образом: , если коммивояжер переезжает и i-го города в j-й; , в противном случае. Тогда задача заключается в отыскании значений переменных удовлетворяющих следующим соотношениям: u(i) - специальные переменные, i=1,2,...m. 10 Для цикла, проходящего через все города, начинающегося и заканчивающегося в городе с номером 0, найдутся величины u(i), удовлетворяющие условиям (3.18). Положим u(i)=p, если город с номером i будет посещен коммивояжером p-ым по порядку, p=1,2,...,m. Пусть x(i,j) = 0. Тогда условия (3) примут вид: u(i) - u(j) ≤ m-1, что верно, так как p<m+1 и p>0. Пусть x(i,j) = 1. Тогда, так как если u(i) = p, то u(j)=p+1 (это следует из того, что город с номером j будет следующим в маршруте коммивояжера после города с номером i). Получим: u(i) - u(j) + m x(i,j) = p - (p+1) +m = m - 1, что и доказывает правомочность присутствия в модели ограничений (3). 4. Транспортная задача линейного программирования В данной теме рассматриваются транспортная модель и ее варианты. Такая модель используется для составления наиболее экономичного плана перевозок одного вида продукции из нескольких пунктов (например, заводов) в пункты доставки (например, склады). Транспортную модель можно применять при рассмотрении ряда практических ситуаций, связанных с управлением запасами, составлением сменных графиков, назначением служащих на рабочие места, оборотом наличного капитала, регулированием расхода воды в водохранилищах и многими другими. Кроме того, модель можно видоизменить, с тем чтобы она учитывала перевозку нескольких видов продукции. Транспортная задача представляет собой задачу линейного программирования, однако ее специфическая структура позволяет так модифицировать симплекс-метод, что вычислительные процедуры становятся более эффективными. При разработке метода решения транспортной задачи существенную роль играет теория двойственности. В классической транспортной задаче рассматриваются перевозки (прямые или с промежуточными пунктами) одного или нескольких видов продукции из исходных пунктов в пункты назначения. Эту задачу можно видоизменить, включив в нее ограничения сверху на пропускные способности транспортных коммуникаций. Задачу о назначениях и задачу управления запасами можно рассматривать как задачи транспортного типа. Рассмотрим построение экономико-математической модели транспортной задачи на примере. Пример 4.1. Построить экономико-математическую модель следующей задачи. Имеются три поставщика и четыре потребителя. Мощность поставщиков и спросы потребителей, а также затраты на перевозку единицы груза для каждой пары "поставщик — потребитель" сведены в таблицу поставок (табл. 7.1). 11 В левом верхнем углу произвольной -клетки (i — номер строки, j — номер столбца) стоит так называемый коэффициент затрат — затраты на перевозку единицы груза от i-го поставщика 12 Суммарные затраты F нa перевозку выражаются через коэффициенты затрат и поставки следующим образом: 13 Теперь можно дать математическую формулировку задачи (без обращения к ее содержательному экономическому смыслу). На множестве неотрицательных решений системы ограничений (7.1) и (7.2) найти такое решение , при котором линейная функция (7.3) принимает минимальное значение. Особенности экономико-математической модели транспортной задачи: 1) коэффициенты целевой функции неотрицательны (стоимости перевозок не могут быть отрицательными величинами); 2) коэффициенты правых частей ограничений неотрицательны (запасы и потребности продукта); 3) коэффициенты при переменных системы в ограничениях принимают только два значения, это нули и единицы; 4) система ограничений есть система уравнений (т.е. транспортная задача задана в канонической форме); 5) каждая переменная входит в систему ограничений два раза: один раз — в систему (7.1) и один раз — в систему (7.2). 4.1. Экономико-математическая модель транспортной задачи Постановка задачи. Некоторый однородный продукт, сосредоточенный у m поставщиков в количестве единиц соответственно, необходимо доставить п потребителям в количестве единиц. Известна стоимость cij перевозки единицы груза от i-ro поставщика к j-му потребителю. Необходимо составить план перевозок, позволяющий вывести все грузы, полностью удовлетворить потребности и имеющий минимальную стоимость. Обозначим через количество единиц груза, запланированных к перевозке от i-го поставщика к j-му потребителю. Так как от i-го поставщика к jму потребителю запланировано к перевозке единиц груза, то стоимость перевозки составит Стоимость всего плана выразится двойной суммой Систему ограничений получаем из следующих условий задачи: а) все грузы должны быть перевезены, т.е. 14 б) все потребности должны быть удовлетворены, т.е. Таким образом, vатематическая модель транспортной задачи имеет следующий вид: найти минимальное значение линейной функции (4.1) при ограничениях В рассмотренной модели предполагается, что суммарные запасы равны суммарным потребностям, т.е. (4.5) Транспортная задача, в которой суммарные запасы и потребности совпадают, т.е. выполняется условие (4.5), называется закрытой моделью; в противном случае - открытой. Для открытой модели может быть два случая: а) Суммарные запасы превышают суммарные потребности б) Суммарные потребности превышают суммарные запасы Линейная функция одинакова в обоих случаях, изменяется только вид системы ограничений. Найти минимальное значение линейной функции При ограничениях 15 Открытая модель решается приведением к закрытой модели. В случае (а), когда суммарные запасы превышают суммарные потребности, вводится фиктивный потребитель , потребность которого В случае (б), когда суммарные потребности превышают суммарные запасы, вводится фиктивный поставщик ,запасы которого Как стоимость перевозки единицы груза до фиктивного потребителя, так и стоимость перевозки груза от фиктивного поставщика полагаются равными нулю, так как груз в обоих случаях не перевозится. Транспортная задача имеет уравнений с mn неизвестными. Матрицу , удовлетворяющую условиям (4,2)-(4.4), называют планом перевозок транспортной задачи ( - перевозками). Определение. План , при котором целевая функция (4.1) обращается в минимум, называется оптимальным. Теорема 1. Для разрешимости транспортной задачи необходимо и достаточно, чтобы выполнялось условие баланса План транспортной задачи называется опорным, если положительным перевозкам соответствует система линейно независимых векторов , где - векторы при переменных в матрице системы ограничений (4.2)-(4.4). Теорема 2. Существует план, содержащий не более положительных перевозок, при этом система векторов , соответствующая таким перевозкам , линейно-независима. Таким образом, опорный план транспортной задачи содержит положительных перевозок. Дадим другое определение опорного плана. Определение. План транспортной задачи называется опорным, если из его основных коммуникаций невозможно составить замкнутый маршрут. 16 Методы составления первоначальных опорных планов Метод северо-западного угла используют для нахождения произвольного опорного плана транспортной задачи. Схема метода: 1) Полагают верхний левый элемент матрицы X Возможны три случая: а) если и всю первую строку, начиная со второго элемента, заполняют нулями. б) если , а все оставшиеся элементы первого столбца заполняют нулями. в) если , и все оставшиеся элементы первых столбца и строки заполняют нулями. На этом один шаг метода заканчивается. 2) Пусть проделано k шагов, -й шаг состоит в следующем. Определяют верхний левый элемент незаполненной части матрицы X. Пусть это элемент Тогда полагают где Если , то заполняют нулями -ю строку начиная с -го элемента. В противном случае заполняют нулями оставшуюся часть -го столбца, Метод минимального элемента позволяет построить начальный опорный план транспортной задачи и является вариантом метода северозападного угла, учитывающим специфику матрицы В отличие от метода северо-западного угла данный метод позволяет сразу получить достаточно экономичный план и сокращает общее количество итераций по его оптимизации. Схема метода: элементы матрицы С нумеруют, начиная от минимального в порядке возрастания, а затем в этом же порядке заполняют матрицу Пусть элементом с минимальным порядковым номером оказался элемент Тогда полагают Возможны три случая: а) если , то оставшуюся часть i-й строки заполняют нулями; б) если , то оставшуюся часть j-ro столбца заполняют нулями. в) если , то оставшуюся часть строки и столбца заполняют нулями. Далее этот процесс повторяют с незаполненной частью матрицы. Пусть эле- 17 ментом с k-м порядковым номером оказался Тогда , где Возможны три случая; а) лями; б) в) лями. и оставшуюся часть строки заполняют ну- и остаток столбца заполняют нулями; тогда оставшуюся часть строки и столбца заполняют ну- 4.2. Экономические задачи, сводящиеся к транспортной модели В этом разделе будет рассмотрено несколько примеров экономических задач, решение которых может быть найдено с помощью транспортной модели. Оптимальное распределение оборудования Оборудование т различных видов нужно распределить между п рабочими участками. Производительность единицы оборудования i-го вида на j-м рабочем участке равна Потребность j-го участка в оборудовании составляет , . Запас оборудования i-го вида равен , Найти распределение оборудования по рабочим участкам, при котором суммарная производительность максимальна. Данная задача относится к классу транспортных задач при условии, что производительность линейно зависит от количества используемого оборудования. Поставщиками в задаче являются различные виды оборудования, потребителями - рабочие участки. Обозначим через хij число единиц оборудования i-го вида, выделенное на j-й рабочий участок, , Математическая модель задачи имеет следующий вид: 18 Построенная модель является сбалансированной. Если запас оборудования и потребность в нем не равны, то переход к сбалансированной модели осуществляется с помощью преобразований, изложенных в разделе 4.1. В данной задаче требуется максимизировать целевую функцию Р, представляющую суммарную производительность. Для перехода к стандартной транспортной модели надо заменить функцию Р на противоположную функцию - Р, которую нужно будет минимизировать. При решении в матрице вместо стоимостей перевозок единицы груза будут стоять производительности, взятые с противоположным знаком. Далее задача решается методом потенциалов. 4.3. Нахождение первоначального базисного распределения поставок Одним из возможных методов нахождения первоначального базисного распределения поставок является метод "северо-западного "угла, показанный в следующем примере. Пример 4.2. Найти первоначальное базисное распределение поставок для транспортной задачи 7.1. Решение. Дадим переменной максимально возможное значение или, иными словами, максимально возможную поставку в клетку (1,1) — "северозападный" угол таблицы поставок: = = min {60, 20} = 20. После этого спрос 1-го потребителя будет полностью удовлетворен, в результате чего первый столбец таблицы поставок выпадет из последующего рассмотрения (заполненные клетки будем перечеркивать сплошной линией (см. табл. 7.2) клетки, выпавшие из последующего рассмотрения, перечеркнуты пунктирной линией. В таблице поставок найдем новый "северозападный" угол — клетку (1,2) и дадим в нее максимально возможное значение. Учитывая, что 1-й поставщик уже отдал 20 единиц груза и у него осталось только 40 = 60—20 единиц груза, получаем, что = min {40, 110} = 40. После этого мощность 1-го поставщика полностью реализована и из рассмотрения выпадет первая строка таблицы поставок (перечеркиваем сплошной линией клетку (1,2) и пунктирной линией оставшиеся свободные клетки первой строки). В оставшейся таблице снова находим "северозападный угол" и т. д. В результате получаем 19 следующее исходное распределение поставок (см. табл.7.2)> Число заполненных клеток в полученном распределении оказалось равным т+п— 1 = 3+4-1 = 6, т.е. числу основных (базисных) переменных. Это, конечно, не случайно. Действительно, на каждом шаге (кроме последнего) данного метода из рассмотрения выпадали либо строка, либо столбец, а на последнем шаге и столбец, и строка. Поэтому число заполненных клеток (число шагов) на единицу меньше, чем сумма числа строк и столбцов таблицы поставок, т.е. равно т+п—1. Оказывается (см. теорему 7.2), что эта особенность шагов метода "северозападного" угла служит причиной того, что полученное распределение является базисным. Существенный недостаток метода "северо-западного" угла состоит в том, что он построен без учета значений коэффициентов затрат задачи. С другой стороны, данный метод допускает модификацию, лишенную этого недостатка: на каждом шаге максимально возможную поставку следует давать не в "северо-западную" клетку оставшейся таблицы, а в клетку с наименьшим коэффициентом затрат. При этом распределение поставок оказывается, вообще говоря, ближе к оптимуму, чем распределение, полученное методом "северозападного угла". Такой метод получения опорного плана называется методом наименьших затрат. Рассмотрим его на следующем примере. Пример 4.3. Найти методом наименьших затрат первоначальное распределение поставок в задаче 4.1. Решение. Находим в таблице поставок (си. табл. 7.1) клетки с наименьшим коэффициентом затрат. Таких клеток две — (1,1) и (2,1) с коэффициентами затрат, равными 1. Сравним максимально возможные поставки для этих клеток: для клетки (1,1) — {60, 20} = 20, для клетки (2,1) {120, 20} = = 20. 20 Так как они совпадают, то максимально возможную поставку даем в любую из них. Например, даем поставку, равную 20 единицам, в клетку (2,1). В результате спрос первого потребителя удовлетворен и первый столбец таблицы поставок выпадает из последующего рас смотрения (табл. 7.3). В оставшейся таблице наименьшим коэффициентом затрат обладают две клетки: Сравним максимально возможные поставки для этих клеток: для клетки (1,2) {60, 110} = 60; для клетки (2,4) {120-20, 110} = 100. Даем поставку в клетку (2,4), для которой максимально возможная поставка оказалась больше: = 100. При этом из рассмотрения выпадает вторая строка таблицы поставок (табл. 7.4). Сравним найденное распределение поставок с распределением, полученным для той же задачи по методу "северо-западного" угла (см. задачу 4.2, 21 табл. 7.2). Вычислим для каждого из этих распределений суммарные затраты в денежных единицах: в задаче 7.2: = 1 - 20 + 2 • 40 + 6 • 70 + 5 • 40 + 2 • 10 + 4 -100 = 1140; в задаче 7.3: = 1 • 20 + 2 - 60 + 3 • 50 + 2 • 100 + 7 • 40 + 4 • 10 = 810. Как и ожидалось, при использовании метода "северо-западного" угла суммарные затраты больше, чем при применении метода наименьших затрат. Таким образом, во втором случае мы находимся ближе (по числу необходимых шагов) к оптимуму, чем в первом. Докажем, что распределения, получаемые с помощью указанных методов, являются базисными, и рассмотрим те особые случаи, которые могут встретиться при использовании этих методов. 4,4 Метод потенциалов Циклом в транспортной таблице называется несколько клеток, соединенных замкнутой ломаной линией, которая в каждой клетке совершает поворот на 90 , Знаком " + " отмечают те вершины, в которых перевозки увеличиваются, а знаком "- " - те вершины, в которых перевозки уменьшаются. Перемещение какого-то количества единиц груза по циклу означает увеличение перевозок на это количество единиц в положительных вершинах и уменьшение перевозок на это же количество единиц в отрицательных вершинах. При этом, если перевозки остаются неотрицательными, план остается допустимым. Стоимость плана при этом может меняться. Ценой цикла называется увеличение стоимости перевозок при перемещении единицы груза по этому циклу. Очевидно, цена цикла равна алгебраической сумме стоимостей, стоящих в вершинах цикла, при этом стоимости в положительных вершинах берутся со знаком " +", а стоимости в отрицательных вершинах берутся со знаком " - ". Идея метода потенциалов состоит в следующем. Для любой свободной клетки транспортной таблицы всегда существует единственный цикл, положительная вершина которого лежит в этой свободной клетке, а все остальные - в базисных. Если цена такого цикла отрицательна, то план можно улучшить перемещением перевозок по данному циклу. Количество единиц груза, которое можно переместить, определяется минимальным значением перевозок, стоящих в отрицательных вершинах цикла (если переместить большее число единиц груза, возникнут отрицательные перевозки). Если циклов с отрицательной ценой нет, то это означает, что дальнейшее улучшение плана невозможно, т.е. оптимальный план найден. Для нахождения циклов с отрицательной ценой вводится система платежей и определяются величины 22 называемые "псевдостоимостями" перевозок единицы груза из пункта i в пункт j. При этом цена цикла пересчета для каждой свободной клетки равна если платежи для всех базисных клеток (i, j) 4.5 Вычислительная схема метода потенциалов [1, 3] Шаг 1. Строим опорный план (методом северо-западного угла) с n+m-1 базисными клетками. Шаг 2. Определяем платежи для всех базисных клеток. Один из платежей (например 1 ) полагаем равньм нулю. Шаг 3. Считаем псевдостоимости для всех свободных клеток. Если для всех клеток, то план оптимален. Вычисляем значение целевой функции L на этом плане и исследования прекращаем. Шаг 4. Если есть свободная клетка, для которой то улучшаем план, перебрасывая перевозки по циклу этой свободной клетки. Шаг 5. Возвращаемся к шагу 2 для пересчета платежей нового опорного плана. Пример Решить методом потенциалов транспортную задачу Опорный план этой задачи найден методом северо-западного угла. 1 2 3 ai 3 8 2 1 15 20 35 7 4 8 2 0 30 30 bj 15 20 30 = Приписываем к таблице добавочную строку для платежей βj, j = 1, n и добавляем столбец для платежей 23 Псевдостоимости записываем в левом углу клетки, а стоимости - в правом углу. Из условий в базисных клетках получаем систему уравнений Полагая , находим последовательно платежи и псевдостоимости для свободных клеток. Получаем таблицу Стоимость перевозок по плану этой таблицы Так как клетка (1,3) имеет отрицательную цену то план не является оптимальным. Строим для клетки (1,3) цикл. Цена цикла По циклу переносим 20 единиц груза (больше нельзя, чтобы перевозки в клетке (1, 2) не стали отрицательными).При этом стоимость плана уменьшается на Для нового плана вычисляем новые значения платежей и псевдостоимостей: Стоимость перевозок по плану этой таблицы Полученная таблица имеет клетку (2,1 ) с отрицательной ценой По циклу этой клетки переносим 10 единиц груза, при этом стоимость плана уменьшается на единиц, и получаем новый опорный план с новой системой платежей и псевдостоимостей: 24 Стоимость перевозок по плану этой таблицы Так как в последней таблице все псевдостоимости не превосходят соответствующих стоимостей, то полученный опорный план является оптимальным. Стоимость перевозок при этом 5. СИСТЕМЫ УПРАВЛЕНИЯ ЗАПАСАМИ 5.1. Модели управления запасами Возникновение теории управления запасами можно связать с работами Ф.Эджуорта и Ф. Харриса, появившимися в конце XIX – начале XX вв., в которых исследовалась простая оптимизационная модель определении экономичного размера партии поставки для складской системы с постоянным равномерным расходом и периодическим поступлением хранимого продукта. Запасами называется любой ресурс на складе, который используется для удовлетворения будущих нужд. Примерами запасов могут служить полуфабрикаты, готовые изделия, материалы, различные товары, а также такие специфические товары, как денежная наличность, находящаяся в хранилище. Большинство организаций имеют примерно один тип системы планирования и контроля запасов. В банке используются методы контроля за количеством наличности, в больнице применяются методы контроля поставки различных медицинских препаратов. Простейшая схема системы управления запасами выглядит следующим образом (рис.6.1.): Рис. 6.1. Система управления запасами Существуют причины, побуждающие организации создавать запасы: 25 1) дискретность поставок при непрерывном потреблении; 2) упущенная прибыль; 3) случайные колебания: в спросе за период между поставками; в объеме поставок; в длительности интервала между поставками; 4) предполагаемые изменения конъюнктуры: сезонность спроса; сезонность производства; ожидаемое повышение цен. Имеются также причины, побуждающие предприятия стремиться к минимизации запасов на складе: 1) плата за физическое хранение запаса; 2) потери в количестве запаса; 3) моральный износ продукта. Рассмотрим определяющие понятия теории управления запасами. Издержки выполнения заказа (издержки заказа) - накладные расходы, связанные с реализацией заказа. В промышленности такими издержками являются затраты на подготовительно-заготовочные операции. Издержки хранения – расходы, связанные с физическим содержанием товаров на складе, плюс возможные проценты на капитал, вложенный в запасы. Обычно они выражаются или в абсолютных единицах, или в процентах от закупочной цены и связываются с определенным промежутком времени. Упущенная прибыль – издержки, связанные с неудовлетворенным спросом, возникающим в результате отсутствия продукта на складе. Совокупные издержки за период представляют собой сумму издержек заказа, издержек хранения и упущенного дохода. Иногда к ним прибавляются издержки на покупку товаров. Срок выполнения заказов – срок между заказом и его выполнением. Точка восстановления – уровень запаса, при котором делается новый заказ. 5.2. Краткая характеристика моделей управления запасами 1.1. Модель оптимального размера заказа. Предпосылки: 1) темп спроса на товар известен и постоянен; 2) получение заказа мгновенно; 3) отсутствуют количественные скидки при закупке больших партий товара; 4) единственные меняющиеся параметры – издержки заказа и хранения; 5) исключается дефицит в случае своевременного заказа. Исходные данные: темп спроса; издержки заказа и хранения. Результат: оптимальный размер заказа; время между заказами и их 26 количество за период. 1.2. Модель оптимального размера заказа в предположении, что получение заказа не мгновенно. Следовательно, нужно найти объем запасов, при котором необходимо делать новый заказ. Исходные данные: темп спроса; издержки заказа и хранения; время выполнения заказа. Результат: оптимальный размер заказа; время между заказами; точка восстановления запаса. 1.3. Модель оптимального размера заказа в предположении, что допускается дефицит продукта и связанная с ним упущенная прибыль. Необходимо найти точку восстановления. Исходные данные: темп спроса; издержки заказа и хранения; упущенная прибыль. Результат: оптимальный размер заказа; время между заказами; точка восстановления запаса. 1.4. Модель с учетом производства (в сочетании с условиями 1.1 – 1.3). Необходимо рассматривать уровень ежедневного производства и уровень ежедневного спроса. Исходные данные: темп спроса; издержки заказа и хранения; упущенная прибыль; темп производства. Результат: оптимальный уровень запасов (точка восстановления) Модель 1.1 Наиболее экономичного размера заказа. Заказ, пополняющий запасы, поступает как одна партия. Уровень запасов убывает с постоянной интенсивностью пока не достигнет нуля. В этой точке поступает заказ, размер которого равен Q, и уровень запасов восстанавливается до максимального значения. При этом оптимальным решением задачи будет тот размер заказа, при котором минимизируются общие издержки за период (рис. 6.2). рис. 6.2 Пусть Q – размер заказа; Т – протяженность периода планирования; D – величина спроса за период планирования; d – величина спроса в единицу времени; K – издержки заказа; H – удельные издержки хранения за период; 27 h – удельные издержки хранения в единицу времени. Тогда: совокупные издержки заказа = ; совокупные издержки хранения = оптимальный размер заказа ; ; ; ; оптимальное число заказов за период ; время цикла (оптимальное время между заказам) . Модель 1.2. Введем предположение о том, что заказ может быть получен не мгновенно, а с течением времени. Тогда нам необходимо заранее делать заказ, чтобы в нужное время иметь достаточное количество товара на складе. Следовательно, нам необходимо найти тот уровень запасов, при котором делается новый заказ. Этот уровень называется точкой восстановления R. Пусть L – время выполнения заказа. Тогда R = величина спроса в единицу времени, умноженная на время выполнения заказа = . Другие характеристики системы определяются также, как и в модели1.1. Модель иллюстрируется рис. 6.3. рис. 6.3 Пример 1. Андрей Удачливый является торговым агентом компании TOYOTA и занимается продажей последней модели этой марки автомобиля. Годовой спрос оценивается в 4000 ед. Цена каждого автомобиля равна 90 тыс. руб., а годовые издержки хранения составляют 10% от цены самого автомобиля. Андрей произвел анализ издержек заказа и понял, что средние издержки заказа составляют 25 тыс. руб. на заказ. Время выполнения заказа равно восьми дням. В течение этого времени ежедневный спрос на автомобили равен 20. Чему равен оптимальный размер заказа? Чему равна точка восстановления? Каковы совокупные издержки? Каково оптимальное количество заказов в год? Каково оптимальное время между двумя заказами, ели предполо- 28 жить, что количество рабочих дней в году равно 200? Исходные данные величина спроса за год D = 4000; издержки заказа K = 25; издержки хранения h = цена за единицу с = 90; время выполнения заказа L = 8; ежедневный спрос d = 20; число рабочих дней T = 200. ; Решение оптимальный размер заказа точка восстановления R = 160 – 149 = 11; ; число заказов за год ; совокупные издержки = совокупные издержки заказа + совокупные издержки хранения С = ; стоимость продаж = 360000; число дней между заказами t = 7,45. Модель 1.3. оптимального размера заказа в предположении, что допускается дефицит продукта и связанная с ним упущенная прибыль (рис. 6.4). рис. 6.4 Пусть p – упущенная прибыль в единицу времени, возникающая в результате дефицита одной единицы продукта; P – упущенная прибыль за период, возникающая в результате дефицита одной единицы продукта. Тогда: оптимальный размер заказа максимальный размер запаса максимальный дефицит ; ; . 29 Модель 1.4 производства и распределения. В предыдущей модели мы допускали, что пополнение запаса происходит единовременно. Но в некоторых случаях, особенно в промышленном производстве, для комплектования партии товаров требуется значительное время и производство товаров для пополнения запасов происходит одновременно с удовлетворением спроса. Такой случай показан на рис. 6.5. рис. 6.5 Спрос и производство являются частью цикла восстановления запасов. Пусть u - уровень производства в единицу времени; K – фиксированные издержки хранения. Тогда: совокупные издержки хранения = ; средний уровень запасов = (максимальный уровень запасов)/2; максимальный уровень запасов = время выполнения заказа издержки заказа = ; ; ; оптимальный размер заказа максимальный уровень запасов ; . МОДЕЛИ СЕТЕВОГО ПЛАНИРОВАНИЯ И УПРАВЛЕНИЯ 6.1. Назначение и области применения сетевого планирования и управления Сетевым планированием и управлением (СПУ) называется графоаналитический метод планирования и управления процессами создания технических систем и сложных объектов (научных исследований, проектирования, монтажа, подготовки производства, при выполнении маркетинговых исследований, ремонте и модернизации технологического оборудования, разра- 30 ботке бизнес-планов производства новых товаров, подготовке и расстановке различных категорий персонала и т.п.) СПУ основано на моделировании процесса с помощью сетевого графика и представляет собой совокупность расчетных методов, организационных и контрольных мероприятий по планированию и управлению комплексом работ. Система СПУ позволяет: • формировать календарный план реализации некоторого комплекса работ; • выявлять и мобилизовывать резервы времени, трудовые, материальные и денежные ресурсы; • осуществлять управление комплексом работ по принципу "ведущего звена" с прогнозированием и предупреждением возможных срывов в ходе работ; • повышать эффективность управления в целом при четком распределении ответственности между руководителями разных уровней и исполнителями работ. Диапазон применения СПУ весьма широк: от задач, касающихся деятельности отдельных лиц, до проектов, в которых участвуют сотни организаций и десятки тысяч людей (например, разработка и создание крупного территориально-промышленного комплекса). Под комплексом работ (комплексом операций, или проектом) мы будем понимать всякую задачу, для выполнения которой необходимо осуществить достаточно большое количество разнообразных работ. Это может быть и строительство некоторого здания, корабля, самолета или любого другого сложного объекта, и разработка проекта этого сооружения, и даже процесс построения планов реализации проекта. Средством описания проектов (комплексов) является сетевая модель. 6.2. Сетевая модель и ее основные элементы Сетевая модель представляет собой план выполнения некоторого комплекса взаимосвязанных работ (операций), заданного в специфической форме сети, графическое изображение которой называется сетевым графиком. Отличительной особенностью сетевой модели является четкое определение всех временных взаимосвязей предстоящих работ. Главными элементами сетевой модели являются события и работы. Термин работа используется в СПУ в широком смысле. Во-первых, это действительная работа — протяженный во времени процесс, требующий затрат ресурсов (например, сборка изделия, испытание прибора и т.п.). Каждая действительная работа должна быть конкретной, четко описанной и иметь ответственного исполнителя. Во-вторых, это ожидание — протяженный во времени процесс, не требующий затрат труда (например, процесс сушки после покраски, старения металла, твердения бетона и т.п.). В-третьих, это зависимость, или фиктивная работа — логическая связь 31 между двумя или несколькими работами (событиями), не требующими затрат труда, материальных ресурсов или времени. Она указывает, что возможность одной работы непосредственно зависит от результатов другой. Естественно, что продолжительность фиктивной работы принимается равной нулю. Событие — это момент завершения какого-либо процесса, отражающий отдельный этап выполнения проекта. Событие может являться частным результатом отдельной работы или суммарным результатом нескольких работ. Событие может свершиться только тогда, когда закончатся все работы, ему предшествующие. Последующие работы могут начаться только тогда, когда событие свершится. Отсюда двойственный характер события: для всех непосредственно предшествующих ему работ оно является конечным, а для всех непосредственно следующих за ним — начальным. При этом предполагается, что событие не имеет продолжительности и свершается как бы мгновенно. Формулировка каждого события должна включать в себя результат всех непосредственно предшествующих ему работ. Среди событий сетевой модели выделяют исходное и завершающее события. Исходное событие не имеет предшествующих работ и событий, относящихся к представленному в модели комплексу работ. Завершающее событие не имеет последующих работ и событий. События на сетевом графике (или, как еще говорят, на графе) изображаются кружками (вершинами графа), а работы — стрелками (ориентированными дугами), показывающими связь между работами. Пример фрагмента сетевого графика представлен на рис. 14.1. На рис. 14.2, а приведен сетевой график задачи моделирования и построения оптимального плана некоторого экономического объекта. Чтобы решить эту задачу, необходимо провести следующие работы: А — сформулировать проблему исследования; Б — построить математическую модель изучаемого объекта; В — собрать информацию; Г — выбрать метод решения задачи; Д — построить и отладить программу для ЭВМ; Е — рассчитать оптимальный план; Ж — передать результаты расчета заказчику. Цифрами на графике обозначены номера событий, к которым приводит выполнение соответствующих работ. Из графика, например, следует, что работы В и Г можно начать выполнять независимо одна от другой только после свершения события 3, т.е. когда выполнены работы А и Б; работу Д — после свершения события 4, когда выполнены работы А, Б и Р, а работу Е можно выполнить только после наступления события 5, т.е при выполнении всех предшествующих ему работ А, Б, В, Га Д. 32 В сетевой модели, представленной на рис. 14.2 а, нет числовых оценок. Такая сеть называется структурной. Однако на практике чаще всего используются сети, в которых заданы оценки продолжительности работ (указываемые в часах, неделях, декадах, месяцах и т.д. над соответствующими стрелками), а также оценки других параметров, например трудоемкости, стоимости и т.п. Именно такие сети мы будем рассматривать в дальнейшем. Но прежде сделаем следующее замечание. В рассмотренных примерах сетевые графики состояли из работ и событий. Однако может быть и иной принцип построения сетей — без событий. В такой сети вершины графа (например, изображенные прямоугольниками) означают определенные работы, а стрелки — зависимости между этими работами, определяющие порядок их выполнения. В качестве примера сетевой график "события — работы" задачи моделирования и построения оптимального плана некоторого экономического объекта, приведенный на рис. 14.2 а, представлен в виде сети "работы — связи" на рис. 14.2 б. Следует отметить, что сетевой график "работы — связи" в отличие от графика "события — работы" обладает известными преимуществами: не содержит фиктивных работ, имеет более простую технику построения и перестройки, включает только хорошо знакомое исполнителям понятие работы без менее привычного понятия события. Вместе с тем сети без событий оказываются значительно более громоздкими, так как событий обычно значи- 33 тельно меньше, чем работ (показатель сложности сети, равный отношению числа работ к числу событий, как правило, существенно больше единицы). Поэтому эти сети менее эффективны с точки зрения управления комплексом. Этим и объясняется тот факт, что (при отсутствии в целом принципиальных различий между двумя формами представления сети) в настоящее время наибольшее распространение получили сетевые графики "события — работы". 6.3. Порядок и правила построения сетевых графиков Сетевые графики составляются на начальном этапе планирования. Вначале планируемый процесс разбивается на отдельные работы, составляется перечень работ и событий, продумываются их логические связи и последовательность выполнения, работы закрепляются за ответственными исполнителями. С их помощью оценивается длительность каждой работы. Затем составляется {сшивается) сетевой график. После упорядочения сетевого графика рассчитываются параметры событий и работ, определяются резервы времени и критический путь. Наконец, проводятся анализ и оптимизация сетевого графика, который при необходимости вычерчивается заново с пересчетом параметров событий и работ. При построении сетевого графика необходимо соблюдать ряд правил. 1. В сетевой модели не должно быть "тупиковых" событий, т.е. событий, из которых не выходит ни одна работа, за исключением завершающего события. 2. В сетевом графике не должно быть "хвостовых" событий (кроме исходного), которым не предшествует хотя бы одна работа. 3. Между двумя событиями может быть только одна работа, т.е. нельзя допускать наличие различных работ с общим начальным и конечным событиями. В подобных случаях при необходимости выполнения двух и более параллельных работ вводят фиктивные работы и дополнительные события. 4. В сети не должно быть замкнутых контуров (циклов).Это значит, что ни одна из работ a, b, c не может быть выполнена, так как любая из них является и условием и следствием выполнения других работ. 5. В сети рекомендуется иметь одно исходное и одно завершающее событие. 34 Фиктивные работы и события необходимо вводить и в ряде других случаев. Один из них — отражение зависимости событий, не связанных с реальными работами. Например, работы А и Б (рис. 14.3 и) могут выполняться независимо друг от друга, но по условиям производства работа Б не может начаться раньше, чем окончится работа А. Это обстоятельство требует введения фиктивной работы С. Другой случай — неполная зависимость работ. Например, работа С требует для своего начала завершения работ А и Б, но работа Д связана только с работой Б, а от работы А не зависит. Кроме того, фиктивные работы могут вводиться для отражения реальных отсрочек и ожидания. В отличие от предыдущих случаев здесь фиктивная работа характеризуется протяженностью во времени 6.4. Упорядочение сетевого графика. Понятие о пути Предположим, что при составлении некоторого проекта выделено 10 событий: 1, 2, 3, 4, 5, 6, 7, 8, 9 и 10, связывающие их работы: (1, 2) , (1, 3), (1, 4), (2, 5), (2, 6), (5, 8), (6, 9), (6, 7), (8, 10), (9, 10. Необходимо составить и упорядочить сетевой график. Как следует из перечня работ, исходным событием сетевого графика является событие 1 (ему не предшествуют никакие работы), а завершающим — событие 10 (за ним не следует ни одна работа). Полагая на сетевых графиках изменение времени слева направо, поместим событие 1 в левую часть графика, а событие 10 — в правую часть, разместив между ними промежуточные события в некотором порядке, соответствующем их номерам (рис. 14.4). События свяжем работами-стрелками в соответствии с перечнем работ. 6 6 7 4 2 4 2 9 1 7 4 3 1 10 2 9 8 2 5 6 5 8 3 Упорядочение сетевого графика заключается в таком расположении событий и работ, при котором для любой работы предшествующее ей событие расположено левее и имеет меньший номер по сравнению с завершающим эту работу событием. Другими словами, в упорядоченном сетевом графике все работы-стрелки направлены слева направо: от событий с мень- 35 шими номерами к событиям с большими номерами. Одно из важнейших понятий сетевого графика — понятие пути. Путь — любая последовательность работ, в которой конечное событие каждой работы совпадает с начальным событием следующей за ней работы. Среди различных путей сетевого графика наибольший интерес представляет полный путь L — любой путь, начало которого совпадает с исходным событием сети, а конец — с завершающим. Наиболее продолжительный полный путь в сетевом графике называется критическим. Критическими называются также работы и события, расположенные на этом пути. Порядок нумерации событий, расположенных в одном вертикальном слое, принципиального значения не имеет, так что нумерация одного и того же сетевого графика может быть неоднозначной. 1 Например, для рассматриваемого нами сетевого графика (см. рис.) полными путями будут: путь <1>4-> 6-> 9->10продолжительностью 2+6+7+1 = 16 суток, путь 1+2-+5+ 8+ 10 продолжительностью 3+9+5+8 =25 суток и т.д. Можно убедиться в том, что последний путь имеет наибольшую продолжительность (не только среди приведенных четырех полных путей, но и среди всех полных путей, которых в данном случае насчитывается 6). Поэтому он и является критическим. Продолжительность критического пути составляет 25 суток, т.е. для проведения комплекса работ понадобятся 25 суток. Быстрее комплекс выполнить нельзя, так как для достижения завершающего события критический путь надо пройти обязательно. Определив критический путь, мы тем самым установили критические события сети 1, 2, 5, 8, 10 и критические работы (1,2), (2, 5), (5, 8), (8,10). Критический путь имеет особое значение в системе СПУ, так как работы этого пути определяют общий цикл завершения всего комплекса работ, планируемых при помощи сетевого графика. И для сокращения продолжительности проекта необходимо в первую очередь сокращать продолжительность работ, лежащих на критическом пути. Следует отметить, что классический вид сетевого графика — это сеть, вычерченная без масштаба времени. Поэтому сетевой график, хотя и дает четкое представление о порядке следования работ, но недостаточно нагляден для определения тех работ, которые должны выполняться в каждый данный момент времени. Для наглядного представления временных характеристик проекта применяется линейная диаграмма проекта. Такая линейная диаграмма для рассматриваемой сети показана на рис.. 36 17 16 15 14 (9,10) 13 (8,10) 12 (7,10) 11 (6,9) 10 (6,7) 9 Ряд1 (5,8) 8 (4,6) 7 (3,5) 6 (2,6) 5 (2,5) 4 (1,4) 3 (1,3) 2 (1,2) 1 0 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 При построении линейной диаграммы каждая работа изображается параллельным оси времени отрезком, длина которого равна продолжительности этой работы. При наличии фиктивной работы нулевой продолжительности (в рассматриваемой сети ее нет) она изображается точкой. События i и j, начало и конец работы (i, j) помещают соответственно в начале и конце отрезка. Отрезки располагают один над другим, снизу вверх в порядке возрастания индекса /, а при одном и том же i — в порядке возрастания индекса j (на рис. 14.7 вследствие ограниченности места не показаны работы-отрезки, выходящие из 2-, 3-, 4- и 5-го событий). По линейной диаграмме проекта можно определить критическое время, критический путь, а также резервы времени всех работ (см. об этом в разд. 14.5). Так, критическое время комплекса работ равно координате на оси времени самого правого конца всех отрезков диаграммы: tкр = t(10) = 25 (суток). Для определения критического пути рассматриваем работы-отрезки, конечные события которых совпадают с завершающим событием сети (в нашем примере (8, 10). Затем находим отрезок (5,8), правый конец которого лежит на одной вертикали t(8) с левым концом рассматриваемого ранее отрезка (8, 37 10). 6.5. Временные параметры сетевых графиков В табл. 14.1 приведены основные временные параметры сетевых графиков. Таблица 14.1 Элемент сети, характеризуемый Наименование параметра параметром Событие i Ранний срок свершения события Поздний срок свершения события Резерв времени события Работа (i, j) Продолжительность работы Ранний срок начала работы Ранний срок окончания работы Поздний срок начала работы Поздний срок окончания работы Полный резерв времени работы Частный резерв времени работы первого вида Частный резерв времени работы второго вида или свободный резерв времени работы Независимый резерв времени работы Путь L Продолжительность пути Продолжительность критического пути Резерв времени пути Условное обозначение параметра tp(i) tп(i) R(i) t(i,j) tpн(i,j) tро(i,j) tnн(i,j) tnо(i,j) Rп(i,j) R1(i,j) Rс(i,j) Rн(i,j) t(L) tкр R(L) Рассмотрим содержание и расчет указанных параметров. Начнем с параметров событий. Как уже отмечалось, событие не может наступить прежде, чем свершатся все предшествующие работы. Поэтому ранний {или ожидаемый) срок tp(f) свершения i-eo события определяется продолжительностью максимального пути, предшествующего этому событию: где — любой путь, предшествующий i-му событию, т.е. путь от исходного до i-го события сети. Если событие j имеет несколько предшествующих путей, а следовательно, несколько предшествующих событий i, то ранний срок свершения события j удобно находить по формуле Задержка свершения события i по отношению к своему раннему сроку 38 не отразится на сроке свершения завершающего события (а значит, и на сроке выполнения комплекса работ) до тех пор, пока сумма срока свершения этого события и продолжительности (длины) максимального из последующих за ним путей не превысит длины критического пути. Поэтому поздний {или предельный) срок свершения i-го события равен где — любой путь, следующий за i-м событием, т.е. путь от i-го до завершающего события сети. Если событие i имеет несколько последующий путей, а следовательно, несколько последующих событий j, то поздний срок свершения события / удобно находить по формуле Резерв времени i-го события определяется как разность между поздним и ранним сроками его свершения: Резерв времени события показывает, на какой допустимый период времени можно задержать наступление этого события, не вызывая при этом увеличения срока выполнения комплекса работ. Критические события резервов времени не имеют, так как любая задержка в свершении события, лежащего на критическом пути, вызовет такую же задержку в свершении завершающего события. Из этого следует, что для того чтобы определить длину и топологию критического пути, вовсе не обязательно перебирать все полные пути сетевого графика и определять их длины. Определив ранний срок наступления завершающего события сети, мы тем самым определяем длину критического пути, а выявив события с нулевыми резервами времени, определяем его топологию1. Если сетевой график имеет единственный критический путь, то этот путь проходит через все критические события, т.е. события с нулевыми резервами времени. Если критических путей несколько, то выявление их с помощью критических событий может быть затруднено, так как через часть критических событий могут проходить как критические, так и некритические пути. В этом случае для определения критических путей рекомендуется использовать критические работы. 1 14.1. Определить временные параметры событий и критический путь для сетевого графика, изображенного на рис. 14.6. Решение. Найденные параметры сведем в табл. 14.2. Таблица 14.2 Номер со- Сроки свершения события, Резерв бытия сутки времени ранний tр(0 поздний tn(i) R(f), сутки 1 2 0 3 0 13 0 10 39 3 4 5 6 7 8 9 10 2 2 12 8 10 17 15 25 6 11 12 17 21 17 24 25 4 9 0 9 11 0 9 0 Теперь перейдем к параметрам работ. Отдельная работа может начаться (и окончиться) в ранние, поздние или другие промежуточные сроки. В дальнейшем при оптимизации графика возможно любое размещение работы в заданном интервале. Очевидно, что ранний срок начала работы (i, j) совпадает с ранним сроком наступления начального (предшествующего) события i, т.е. Тогда ранний срок окончания работы (i, j) определяется по форму- ле Ни одна работа не может окончиться позже допустимого позднего срока своего конечного события i. Поэтому поздний срок окончания работы (i, j) определяется соотношением а поздний срок tпн(i, j) начала этой работы — соотношением Таким образом, в рамках сетевой модели моменты начала и окончания работы тесно связаны с соседними событиями ограничениями (14.6)—(14.9). Прежде чем рассматривать резервы времени работ, обратимся к резерву времени пути. Такие резервы имеют все некритические пути. Резерв времени пути R(L) определяется как разность между длиной критического и рассматриваемого пути Он показывает, на сколько в сумме могут быть увеличены продолжительности всех работ, принадлежащих этому пути. Если затянуть выполнение работ, лежащих на этом пути, на время большее чем R(L), то критический путь переместится на путь L. Отсюда можно сделать вывод, что любая из работ пути L на его участке, не совпадающем с критическим путем (замкнутым между двумя событиями критического пути), обладает резервом времени. Среди резервов времени работ выделяют четыре разновидности. Полный резерв времени Rn(i, j) работы (/, J) показывает, на сколько можно увеличить время выполнения данной работы при условии, что срок выполнения комплекса работ не изменится. Полный резерв Rп(/, J) определя- 40 ется по формуле Полный резерв времени работы равен резерву максимального из путей, проходящего через данную работу. Этим резервом можно располагать при выполнении данной работы, если ее начальное событие свершится в самый ранний срок, и можно допустить свершение конечного события в его самый поздний срок (рис. 14.8 а). Важным свойством полного резерва времени работы является то, что он принадлежит не только этой работе, но и всем полным путям, проходящим через нее. При использовании полного резерва времени только для одной работы резервы времени остальных работ, лежащих на максимальном пути, проходящем через нее, будут полностью исчерпаны. Резервы времени работ, лежащих на других (немаксимальных по длительности) путях, проходящих через эту работу, сократятся соответственно на величину использованного резерва. Остальные резервы времени работы являются частями ее полного резерва. Частный резерв времени первого вида R1 работы (i,j) есть часть полного резерва времени, на которую можно увеличить продолжительность работы, не изменив при этом позднего срока ее начального события. Этим резервом можно располагать при выполнении данной работы в предположении, что ее начальное и конечное события свершаются в свои самые поздние сроки (см. рис. 14.8 б). 41 R1 находится по формуле Частный резерв времени второго вида, или свободный резерв времени Rс работы (/, j) представляет часть полного резерва времени, на которую можно увеличить продолжительность работы, не изменив при этом раннего срока ее конечного события. Этим резервом можно располагать при выполнении данной работы в предположении, что ее начальное и конечное события свершатся в свои самые ранние сроки {см. рис. 14.8 в) находится по формуле Свободным резервом времени можно пользоваться для предотвращения случайностей, которые могут возникнуть в ходе выполнения работ. Если планировать выполнение работ по ранним срокам их начала и окончания, то всегда будет возможность при необходимости перейти на поздние сроки начала и окончания работ. Независимый резерв времени работы (/, у)1 — часть полного резерва времени, получаемая для случая, когда все предшествующие работы заканчиваются в поздние сроки, а все последующие работы начинаются в ранние сроки (см. рис. 14.8 г) или Использование независимого резерва времени не влияет на величину резервов времени других работ. Независимые резервы стремятся использовать тогда, когда окончание предыдущей работы произошло в поздний допустимый срок, а последующие работы хотят выполнить в ранние сроки. Если величина независимого резерва, определяемая по формуле (14.16) или (14.17), равна нулю или положительна, то такая возможность есть. Если же величина отрицательна, то этой возможности нет, так как предыдущая работа еще не оканчивается, а последующая уже должна начаться. Поэтому отрицательное значение не имеет реального смысла. А фактически независимый резерв имеют лишь те работы, которые не лежат на максимальных путях, проходящих через их начальные и конечные события. В ряде работ по сетевому планированию резерв времени ным, а резерв специального названия не имеет. 1 называют свобод- Следует отметить, что резервы времени работы (i,j), показанные на рис. 14.8, могут состоять из двух временных отрезков, если интервал продолжительности работы занимает промежуточную позицию между двумя его крайними положениями, изображенными на графиках. Таким образом, если частный резерв времени первого вида может быть использован на увеличение продолжительности данной и последующих ра- 42 бот без затрат резерва времени предшествующих работ, а свободный резерв времени — на увеличение продолжительности данной и предшествующих работ без нарушения резерва времени последующих работ, то независимый резерв времени может быть использован для увеличения продолжительности только данной работы. Работы, лежащие на критическом пути, так же как и критические события, резервов времени не имеют1. Если на критическом пути лежит начальное событие i, то Если на критическом пути лежит конечное событие j, то Если на критическом пути лежат начальное и конечное события i и j, но сама работа не принадлежит этому пути, то Соотношения (14.18)—(14.20) можно использовать при проверке правильности расчетов резервов времени отдельных работ. 1 С помощью критических работ, т.е. работ, не имеющих резервов времени, может быть определен критический путь сетевого графика. Этот способ определения критического пути целесообразно использовать тогда, когда сеть содержит несколько критических путей. Следует отметить, что в случае достаточно простых сетевых графиков результаты расчета их временных параметров можно фиксировать прямо на графике. Параметры событий записываются в кружках, разделенных на четыре части, а параметры работ — над соответствующими стрелками (рис. 14.9). При этом отпадает необходимость составления таблиц. 6.7. Коэффициент напряженности работы. Анализ и оптимизация сетевого графика После нахождения критического пути и резервов времени работ и оценки вероятности выполнения проекта в заданный срок должен быть проведен всесторонний анализ сетевого графика и приняты меры по его оптимизации. Этот весьма важный этап в разработке сетевых графиков раскрывает основную идею СПУ. Он заключается в приведении сетевого графика в соответствие с заданными сроками и возможностями организации, разрабатывающей проект. Вначале рассмотрим анализ и оптимизацию календарных сетей, в которых заданы только оценки продолжительности работ. Анализ сетевого графика начинается с анализа топологии сети, включающего контроль построения сетевого графика, установление целесообразности выбора работ, степени их расчленения. Затем проводятся классификация и группировка работ по величинам резервов. Следует отметить, что величина полного резерва времени далеко не всегда может достаточно точно характеризовать, насколько напряженным является выполнение той или иной работы некритического пути. Все зависит 43 от того, на какую последовательность работ распространяется вычисленный резерв, какова продолжительность этой последовательности. Определить степень трудности выполнения в срок каждой группы работ некритического пути можно с помощью коэффициента напряженности работ. Коэффициентом напряженности КИ работы (/, j) называется отношение продолжительности несовпадающих (заключенных между одними и теми же событиями) отрезков пути, одним из которых является путь максимальной продолжительности, проходящий через данную работу, а другим — критический путь: где — продолжительность максимального пути, проходящего через работу (i, j); — продолжительность (длина) критического пути; — продолжительность отрезка рассматриваемого пути, совпадающего с критическим путем. Формулу (14.29) можно легко привести к виду где — полный резерв времени работы (i, j). Коэффициент напряженности может изменяться в пределах от 0 (для работ, у которых отрезки максимального из путей, не совпадающие с критическим путем, состоят из фиктивных работ нулевой продолжительности) до 1 (для работ критического пути). Чем ближе к 1 коэффициент напряженности , тем сложнее выполнить данную работу в установленные сроки. Чем ближе к нулю, тем большим относительным резервом обладает максимальный путь, проходящий через данную работу. Работы могут обладать одинаковыми полными резервами, но степень напряженности сроков их выполнения, выражаемая коэффициентом напряженности , может быть различна. И наоборот, различным полным резервам могут соответствовать одинаковые коэффициенты напряженности. Оптимизация сетевого графика проводится с целью сокращения длины критического пути, выравнивания коэффициентов напряженности работ, рационального использования ресурсов. В первую очередь принимаются меры по сокращению продолжительности работ, находящихся на критическом пути. Это достигается: • перераспределением всех видов ресурсов, как временных (использование резервов времени некритических путей), так и трудовых, материальных, энергетических (например, перевод части исполнителей, оборудования с некритических путей на работы критического пути); при этом перераспределение ресурсов должно идти, как правило, из зон, менее напряженных, в зоны, объединяющие наиболее напряженные работы; 44 • сокращением трудоемкости критических работ за счет передачи части работ на другие пути, имеющие резервы времени; • параллельным выполнением работ критического пути; • пересмотром топологии сети, изменением состава работ и структуры сети. Весьма эффективным является использование метода статистического моделирования, основанного на многократных последовательных изменениях продолжительности работ (в заданных пределах) и "проигрывании" на компьютере различных вариантов сетевого графика с расчетами всех его временных параметров и коэффициентов напряженности работ. УПРАЖНЕНИЯ В задачах 6.7, 6.8 построить сетевой график. Найти продолжительность выполнения комплекса работ, временные характеристики событий и работ. В скобках указана продолжительность работ. 6.7. Сделать деревянный ящик (работу выполняет один человек). Разместить доски в соответствии с размерами ящика (15 мин); разрезать доски (12 мин); склеить части ящика (40 мин); прибить к крышке ящика петли (8 мин); подождать, пока ящик высохнет, и вытереть его (15 мин); петли (с крышкой) прибить к ящику (10 мин). 6.8. Заменить колесо машины (работу выполняют два человека). Достать из багажника домкрат и инструменты (40 с); снять диск с колеса (30 с); освободить колесо (50 с); поставить домкрат под машину (26 с); поднять машину (20 с); из багажника взять запасное колесо (25 с); снять гайки и колесо (20 с); установить запасное колесо на ось (10 с); завинтить (не сильно) гайки на оси (15 с); опустить машину и собрать домкрат (25 с); поставить домкрат обратно в багажник (10 с); завинтить гайки на оси до конца (12 с); положить плохое колесо и инструменты в багажник (40 с); поставить на место диск колеса (10 с). 6.9. Для сетевого графика (рис. 14.17) найти все полные пути, критический путь; рассчитать ранние и поздние сроки свершения событий, начала и окончания работ; определить резервы времени полных путей и событий, резервы времени (полные, частные резервы первого вида, свободные и независимые) работ и коэффициенты напряженности работ. 6 6 7 4 2 4 2 9 1 7 4 3 1 10 2 9 8 2 5 6 3 5 8 45 Задача 6.10. По данным таблицы заполнить таблицу событий, построить сетевой график, определить критический путь и его длину. Работы, до завершения которых не может начаться данная работа Продолжительность Работа (непосредственно предшеству(сутки) ющие работы) Р1 5 Р2 10 Р3 1 7 Р4 2 5 Р5 3 9 Р6 2 6 Р7 4 8 Решение Задача 6.11. По данным таблицы построить линейную диаграмму проекта, определить критический путь и его длину. Решение Таблица событий Работы, для коРаботы, для кототорых данное соСобытие рых данное событие бытие является является конечным начальным 0 Р1, Р2 1 Р1=(0,1) Р3 2 Р2=(0,2) Р4,Р6 3 Р3=(1,4) Р5 4 Р4=(1,4) Р7 5 Р6=(2,5) 6 Р5=(3,6) 46 7 8 Р7=(4,7) Ф1=(5,8), Ф2=(6,8), Ф3=(7,8) 25 Задача 6.12. По данным таблицы построить сетевой график, определить полные пути, определить критический путь и его длину. Работы (1,2) (1,3) (1,4) (3,4) (2,5) (3,5) (4,5) Решение Продолжительность (сутки) 5 2 7 5 9 6 4 47 Исследование операций в экономике. Под ред. Н.Ш.Кремера.М. ЮНИТИ, 2006 г.