Таблица 1.1
Таблица очередности
Работы | Работы, которым предшествует работа | Продолжительность работы |
1 | 2 | 3 |
1 | 3 | 5 |
2 | 4 | 2 |
3 | 5 | 4 |
4 | 5 | 1 |
5 | 8 | 4 |
6 | 7 | 3 |
7 | 8 | 2 |
Стрелочные диаграммы наглядно отражают очередность выполнения работ в проекте или заказе. Так, если имеется некоторая таблица очередности работ в проекте (табл. 1.1), включающая как перечень работ, которые необходимо выполнить в этом проекте, так и информацию о том, каким работам непосредственно должна предшествовать данная работа (т. е. работам, которые не могут быть начаты до тех пор, пока не закончится или, по крайней мере, не начнется данная работа), то на основании этой таблицы может быть легко построен сетевой график выполнения данного проекта.
Рис 1.3
Заметим, что если обозначить каждую работу кружком и соединить стрелками, как это показано на рис. 1.3, каждую работу с теми, которым она непосредственно предшествует, то мы получим некоторое геометрическое изображение очередности выполнения работ. Такие стрелочные диаграммы, составленные из кружков — вершин, и стрелочек — ориентированных дуг, в математике принято называть графами. Диаграмму, подобную изображенной на рис. 1.3, договоримся называть графом технологического маршрута.
Рис 1.4
В дальнейшем мы будем пользоваться стрелочной диаграммой представления очередности работ чаще в виде графа технологического маршрута, чем в виде сетевого графика. В сетевом графике работы обозначаются стрелочками, а характер очередности их выполнения определяется вершинами графа — событиями. Событие служит для отделения работ — стрелочек, входящих в вершину, соответствующую событию, от работ, которым эти работы предшествуют — стрелочек, исходящих из вершины. На рис. 1.4 представлен сетевой график выполнения работ, соответствующих графу технологического маршрута рис. 1.3. Хотя способ представления календарного плана работ в виде сетевого графика является широко распространенным, форма представления календарного плана в виде графа технологического маршрута нам кажется более естественной.
В сетевых графиках для каждой работы в начале стрелочки может быть указано время начала работы, в конце стрелочки — момент окончания работы, под стрелочкой — шифр и другие характеристики исполнителя работы.
1.3 Математический аппарат решения задач календарного планирования
1.3.1 Общая характеристика задач календарного планирования
Приведенная математическая формулировка общих задач календарного планирования наглядно свидетельствует о том, что эти задачи с точки зрения математики представляют собой особый класс, возможно, совершенно незнакомый или до недавнего времени незнакомый читателю. В этих задачах мы имеем по существу дело со сложными алгебраическими структурами, дискретными процессами оптимизации, далекими от тех непрерывных процессов и функций, которые до недавнего времени, в основном, и изучались математикой.
Уже первые попытки математического решения задач календарного планирования показали, что для такого рода задач нужна, можно сказать, «новая математика» и что задачи подобного рода, по-видимому, в ближайшее время во многом изменят содержание самой математики.
Точные методы, хотя бы принципиально решающие общие задачи календарного планирования, получены только в самое последнее время. Однако, как мы увидим дальше, эти точные методы, хотя и представляют значительный интерес при построении общей теории оптимальных решений, в настоящее время могут принести мало практической пользы в производственном управлении, настолько велики объемы вычислений для решения этими методами мало-мальски реальных задач производственного планирования. Только в самых простых случаях относительно легко удается с уверенностью получить точное решение задачи.
Наряду с разработкой точных методов совершенствуются различные методы и подходы приближенного решения задач календарного планирования. Это направление в настоящее время является практически наиболее продуктивным. Оно заслуживает наибольшего внимания с точки зрения общей теории решения задач календарного планирования, а также полезно и для улучшения вычислительных схем точного решения задач. В частности, различные эффективные эвристические приемы поиска близких к оптимальному решений, как правило, могут быть использованы и в процессе конструирования точного решения задачи. Точно так же, более глубокое понимание процесса конструирования точного решения задачи может подсказать эффективные приемы поиска решений, близких к оптимальному.
Кроме этого в решении задач календарного планирования оказываются эффективными различного рода методы моделирования, в том числе основанные на применении схем статистических испытаний — методов Монте-Карло. Хотя в настоящее время еще и нет разработанной приемлемой теории такого рода методов, однако их практическая эффективность свидетельствует о возможности построения такого рода теорий.
Математические методы решения задач календарного планирования разрабатываются в рамках бурно развивающейся в последние годы математической теории расписаний.
В настоящее время нельзя остановиться на каком-то одном классе методов решения задач календарного планирования. Для одних задач исключительно эффективны методы динамического программирования или их дальнейшее развитие — методы последовательного конструирования, анализа и отбора вариантов, другие задачи могут решаться методами моделирования; некоторые задачи могут быть успешно решены ставшими уже классическими методами линейного программирования.
1.3.2 Модели линейного программирования
Попытки решить некоторый новый класс задач с помощью уже известных методов довольно естественны, поэтому неудивительно, что многие исследователи пытаются решать задачи календарного планирования с помощью получивших широкую известность и распространение методов линейного программирования. К схемам линейного программирования сводятся многие задачи, имеющие непосредственное отношение к оперативному планированию — такие, как задачи загрузки оборудования, задачи распределения заказов и др.
Как известно, линейное программирование охватывает совокупность методов решения задач минимизации (максимизации) линейных функций при линейных ограничениях па неизвестные — равенствах или неравенствах. Математический аппарат решения задач линейного программирования достаточно хорошо разработан. В последние годы предложены методы решения задач так называемого линейного целочисленного программирования, когда помимо всего требуется, чтобы неизвестные принимали только целочисленные значения. Эти успехи линейного программирования вызвали многочисленные попытки решения задач календарного планирования при помощи линейного программирования.
Такого рода попытки, понятно, привели к необходимости несколько перестроить математическую формулировку задач календарного планирования. В частности, один из создателей теории линейного программирования Дж. Данциг предложил следующую постановку задачи календарного планирования.
На основании практических соображений иногда можно указать некоторые возможные варианты графиков обработки каждой детали — изолированно построить несколько таких вариантов (этот процесс, естественно, может быть автоматизирован). Затем из этих вариантов ищется наиболее подходящая «смесь», подобно тому, как ищется наилучший рацион питания в «задачах диеты», или же определяется наилучшая смесь ингредиентов для получения высококачественных сортов бензина.
Данциг поясняет эту идею на таком примере.
Пусть имеются две детали
и d2, в каждой из которых по две операции. Время обработки каждой операции равно единице, маршруты деталей следующие:Иными словами, первая операция детали d1 обрабатывается на первом рабочем месте R1 вторая операция детали d1 и первая операция детали d2 обрабатываются на R2, вторая операция d2 обрабатывается на R3.
Данциг рассматривал по шесть (возможных) изолированно построенных вариантов обработок первой и второй детали, ориентируясь на работу в четыре последовательных периода, каждый из которых равен единице времени.
В этом случае первая деталь может обрабатываться одним из следующих способов:
Введем неизвестные
Тогда, очевидно, для нашей задачи
.По каждому рабочему месту Rk, по каждому из четырех рассматриваемых периодов (напомним, каждый период равен единице) необходимо выполнение соотношения, равносильного требованию, чтобы на рабочем месте одновременно не могли выполняться две операции