книги из ГПНТБ / Шепелев, И. Г. Математические методы планирования и управления в строительстве конспект лекций
.pdfНапример, если сметная стоимость объекта Г млн. руб., смет ная стоимость каждого из этапов 2 0 0 тыс. руб., то х г будут 0 ; 200; 400; 600; 800 и 1000 тыс. руб.
Рассмотрим постановку задачи планирования строительства
при использовании неделимых производственных ресурсов. |
обо |
||
Задача |
№ 2 . Допустим имеется i = |
1, 2 , 3, ...,п — типов |
|
рудования |
и j = 1 , 2 , 3,..., m-—видов |
работ, подлежащих |
вы |
полнению.
а-ц— производительность каждого типа оборудования на оп
ределенной работе; |
|
|
|
|
|
|
Ci ■— стоимость машино-смены; |
|
объекта, выде |
||||
bj — часть сметной |
стоимости строительства |
|||||
ленная на эксплуатацию машин и механизмов;. |
типа; |
|||||
Ki — количество |
машин |
(ресурсов) |
каждого |
|||
Xij — количество |
единиц |
оборудования на каждом объекте. |
||||
Целевая функция и ограничения будут иметь вид; |
||||||
|
2 |
2 |
а и х п = тах |
|
(6.2.3) |
|
при ограничениях |
|
i |
j |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 с, -V,: ; !>■, |
|
(6.2.4) |
|
|
|
|
i |
|
|
|
|
|
ш |
j к, *,j |
о, |
(6.2.5) |
|
|
|
2 |
A5 |
-Xij — целые числа, Г— 1, 2, 3,..., п.
Задача № 3. Целочисленная вариантная модель. Необходи
мо определить план капиталовложение отрасли |
(допустим, от |
|||||
расли строительных материалов). |
|
|
||||
Введем обозначения: |
|
или реконструкции одного объ |
||||
х \.— вариант строительства |
||||||
екта; |
|
объекта |
строительства |
(развития |
предприятия) |
|
i — номер |
||||||
(i = 1 , 2 , 3,..., п); |
строительства |
или развития предприя |
||||
г — номер |
варианта |
|||||
тия. r = |
(1, |
2,..., R), R может быть равен 1; |
|
|||
j — номер |
вида продукции, |
выпуск которого |
необходим в |
|||
отрасли.) |
= |
( 1 , 2 , 3,..., т ) ; |
|
|
|
|
c[j — приведенные затраты по каждому варианту; |
||||||
bj — потребность в продукции j; |
предприятием по каждо |
|||||
а\.} — выпуск j-ой продукции каждым |
||||||
му варианту; |
|
|
|
|
|
.80
d[ — капиталовложения, необходимые для строительства каж
дого предприятия по каждому варианту; К — лимит капиталовложений.
n |
m |
R |
( 6.2.6) |
У У V сп х \\ ~ min |
|||
i |
j |
Г |
|
при ограничениях |
|
|
|
|
i |
г |
(6.2.7) |
|
|
||
|
|
<к |
( 6.2.8) |
|
|
|
(6.2.9) |
|
|
2 х \ = *■ |
(6.2. 10) |
Наиболее интересными |
здесь являются |
ограничения (6.2.9) |
и (6.2.10). Ограничение (6.2.9) означает, что вариант включает ся целиком или не включается совсем. Ограничение (6.2.10) оз начает единственность включения варианта, т. е. если один ва риант включен в план, то другие варианты не должны быть включены.
Задача № 4, с разрывной целевой функцией. (Транспортная
задача с фиксированными доплатами). |
|
строительного |
||||
Пусть i = |
1, 2, 3,.... п — пункты производства |
|||||
щебня; |
1 , 2 , 3,..., m — строительные объекты, на которых потреб |
|||||
j = |
||||||
ляется |
щебень; |
|
|
|
|
|
а\ — объем |
производства в пункте производства i; |
|
||||
bj — объем потребления в пункте потребления j; |
|
|||||
Хц — объем перевозок из пункта i в пункт j; |
из |
i в j; |
|
|||
Cij — затраты |
на перевозку единицы груза |
пере |
||||
dij — разовые |
затраты, зависящие только |
от |
наличия |
|||
возок из i в j и не зависящие от объема этих перевозок. |
На |
пример, арендная плата за погрузочное оборудование, не зави
сящая |
от объемов, |
затраты |
на подъездные пути, оборудование |
|||||
погрузочных площадок, диспетчеризацию и др. |
|
|||||||
Целевая функция задачи имеет вид |
|
|||||||
|
|
|
n |
m |
|
|
|
(6 .2 .1 1 ) |
|
|
|
2 2 с р (-* )-т ш , |
|||||
|
|
|
I |
j |
|
|
|
|
где |
. ч |
|
( |
0 , |
если |
x,i = 0 |
/с о ю\ |
|
сцСх) = |
I |
|
, |
, |
J |
(6 .2 .1 2 ) |
||
|
|
|
c,j Хц + dij, |
если х п > |
0 |
|||
|
4 И. Ш епелев |
|
|
|
|
|
|
81 |
п р и о г р а н и ч е н и я х |
|
|
|
|
2 |
Х ц |
= |
b i |
(6,2.13) |
i |
|
|
|
|
ш |
|
|
(6.2.14) |
|
2 |
|
^ а ь |
||
i |
|
> о. |
|
|
|
х ц |
|
||
В связи с разрывом функции |
(6.2.12) |
в точке 0, эта задача, |
||
по смыслу и формулировке |
созвучная транспортной задаче ли |
нейного программирования не может быть решена методом ли нейного программирования.
Поставленная здесь задача с разрывной целевой функцией может быть преобразована в задачу целочисленного програм мирования. Для этого вводят дополнительные переменные г/у, и целевую функцию (6 .2 .1 1 ) приводят к виду
n |
m |
|
|
|
|
|
2 1 ] ( си*и + d'j yij) = min, |
(6.2.15) |
|||||
i |
i |
|
|
|
|
|
при этом вводится дополнительное ограничение |
|
|||||
У = |
0 при X,, = О |
|
(6.2.16) |
|||
1 |
при Хц < Му Y]j, |
|||||
|
|
|||||
если г/у = 0, то и Ху = 0, |
а |
если г/у = |
1, то Ху гС Му, |
Му выби |
||
рается так, что |
Му = |
max {ар, |
|
(6.2.17) |
||
|
b y ) . |
Дальше решать эту задачу можно как частично целочислен ную. Но матрица модели очень быстро увеличивается и решение при значительных п и т вряд ли достижимо. Поэтому полага ют, что
•*11 = М ц У у ,
отсюда у,-= — тогда целевая функция примет вид
■УП Му
S CliXil + d« “ S S (CiJ+ |
Xl] = min (6-2Л8) |
и ее решают как обычную задачу линейного программирова ния. Существуют специальные методы приближенного решения задачи № 4, например, метод Балинского i[7], который не тре бует приведения задачи к целочисленной.
82
§ 6.3. Методы решения задач дискретного программирования
В предыдущих параграфах этой главы был показан широ кий класс задач дискретного программирования, имеющий ме сто в планировании и управлении строительством. Однако сколько-нибудь широко известных, признанных и надежных методов решения задач этого класса нет. В монографии [7] дано достаточно полное изложение некоторых методов решения с теоретическими доказательствами сходимости этих методов. Здесь приведены только классификация методов и описание не которых из них.
Существует ряд приемов, существенно отличающихся один от другого, для реализации которых разработаны специальные алгоритмы. Задачи типа № 2 решаются методами линейного программирования. Если при этом подобного рода задачу уда ется свести к транспортной, то получают целочисленное опти мальное решение. При любых целых значениях коэффициентов и свободных членов в ограничениях транспортная задача, ре шаемая распределительным методом, всегда имеет целочислен ный оптимальный план. Это можно доказать следующим рас суждением: опорный базисный план транспортной задачи явля ется целочисленным, так как все коэффициенты в ограничениях целые числа, при переходе от одного опорного плана к другому
целочисленность сохраняется, так как при этом нет |
операции |
деления. |
|
При решении задач типа № 3 обычно делают допущение, за |
|
меняя ограничение (6.2.9) ограничением 0 ■<л:]) <; 1. |
При этом |
получают нецелочисленное решение, которое после округляют до целых чисел. Также тривиально иногда поступают и при решении задачи типа № 1 и № 2 , причем в задаче № 1 получен ные результаты, отличные от целых чисел, заданных ограниче нием, оставляют в оптимальном плане. Такое нарушение целочисленности часто оправдывается тем, что за получение целочис
ленного |
решения приходится платить |
слишком дорогой |
ценой как |
с возрастанием вычислительных |
трудностей, так и |
в связи с потерей оптимальности функционала. Так автор ,[4] утверждает: «Не боясь парадоксов, скажу, что потери от нецелочисленности могут быть меньше, чем потери от достижения целочисленного результата», подразумевая под последним умень шение значения функционала в целочисленном оптимальном плане.
С таким утверждением согласиться нельзя, ибо выгода от лучшего значения функционала при нецелочисленном плане ил
4* |
83 |
|
люзорна, так как в дальнейшем при реализации плана целочис ленные факторы так или иначе проявят себя и фактический ущерб будет много больше того бумажного преимущества в ве личине функционала, которое достигается при нецелочисленном плане.
Еще хуже, если на практике нарушаются условия целочис ленное™ в строительстве, что, как говорилось выше, ведет к ро
сту незавершенного |
строительства к экономическим потерям |
для государства и строительной организации. |
|
Метод простого |
округления нельзя назвать методом цело |
численного программирования.
Более корректными методами являются методы, основанные на принципах отсечения нецелочисленных решений и методы с применением комбинаторики. Наибольшее распространение по лучили методы отсечения Гомори и методы «ветвей и границ». При решении ряда задач применяются приближенные методы решения целочисленных задач.
§6.4. Принцип метода отсечения
ипервый алгоритм Гомори
Сущность метода отсечения заключается в том, что в цело численной задаче линейного программирования вначале полу чают обычное оптимальное решение. Если оптимальный план будет целочисленным, то задача решена. Если в оптимальном плане имеются нецелочисленные переменные, которые по усло виям задачи должны быть целочисленными, то производится правильное отсечение нецелочисленной части решения. Кратко рассмотрим алгоритм Гомори в изложении ([7]. Иллюстрацион ный пример взят из этого же источника.
В соответствии с первым алгоритмом Гомори отсечение не целочисленной части решения заключается в следующем: после получения нецелочисленного ответа в таблицу, представляю щую оптимальный план линейного программирования, вписы вается дополнительная строка. Эта строка формируется в соот ветствии с формулой
уп+1 = — Т О ' + 2 ( - К .}) |
(6.4.1) |
Вфигурных скобках записана дробная часть чисел таблицы. Практически получается так, что, получив оптимальный план,
выбирают одну из строк с нецелочисленным решением, ставят задачу заменить эту строку целочисленной, для чего вписывают в таблицу дополнительную строку, клетки которой заполняют ся в соответствии с формулой (6.4.1). Если в выбранной строке
84
имеется положительное не целое число (из-за чего и решается задача отсечения), то элемент дополнительной строки принима ется равным дробной части числа с отрицательным знаком. Е о ли на пересечении столбца и выбранной строки находится целое число или нуль, то в дополнительную строку вписывается нуль. Если на пересечении столбца и выбранной строки находится отрицательное нецелое число, то элемент дополнительной стро-
Задача разрешима
Рис. 12. Блок-схема первого алгоритма Гомери
85
ки имеет отрицательный знак и по абсолютной величине пред ставляет собой правильную дробь, являющуюся дополнением дроби в выбранной строке до единицы. Дополнительную стро ку вписывают в симплекс-таблицу, причем получают неопти мальный план, так как имеется отрицательное значение базис ной переменной.
Далее эту таблицу оптимизируют. Из оптимального плана выбывает в первой итерации дополнительная строка, а выбран ная строка становится целочисленной, но первое решение не обязательно будет оптимальным. Необходимо провести столько преобразований, сколько нужно для получения оптимального плана. Если в этом плане имеются нецелочисленные перемен ные, выбираем новую строку, к которой строим правильное от сечение согласно формуле (6.4.1), оптимизируем полученную таблицу и т. д. Блок-схема первого алгоритма Гомори приведе на на рис. 1 2 .
Решение задачи целочисленного программирования методом
отсечения можно представить графически. |
|
|||
Если имеется задача |
|
|
|
(6.4.2) |
Х1+ Х2 |
= min |
|||
при ограничениях |
11 |
Хо ■< 38 |
(6.4.3) |
|
2 Xi + |
||||
Х\ -I- х 2^ |
7 |
. (6.4,4) |
||
4 х г — 5 х 2 < 5 |
(6А5) |
|||
х | |
Oj |
х 2 |
Oj |
|
x t и х 2— целые |
числа, |
|
то можно построить геометрическую схему ее решения, изобра женную на рис. 13. Предельные линии ограничений (6.4.3) и (6.4.5) образуют выпуклый многоугольник, на гранях которого и следует искать оптимальное значение Х\ и Хг. На рисунке видно, что решению соответствует линия
x t х 2 = 7
или |
' |
x t = 44/9; х 2 = 25/э. |
Как видим, получены нецелочисленные решения. Если ок руглить значения Xj и.хг до целых чисел, то эти «псевдооптимальные» ответы не будут соответствовать ограничениям зада чи. Допустим, путем простого отбрасывания дробной части мы округлили Х\ и х2 и получили Х\ — 4 и Х2 = 2, т. е. точка 4—2 не лежит внутри зоны допустимых значений переменных. Если
86
при округлении пользоваться правилами арифметики, то мож но получить целочисленные значения Х\ = 4 и х2 = 3. Точка 4-— —3 также лежит вне зоны допустимых значений переменных. Це лочисленные оптимальные значения переменных надо искать среди всех возможных целочисленных значений, лежащих внут ри многоугольника, построенного ограничениями. На рис.. 13 такие точки выделены черным цветом. Если линию X i х2 передвигать параллельно самой себе, то внутри зоны возмож ных значений максимум этой линии пройдет через целочислен ные точки Х\ — 2; х 2— 3 и Х\ = 3; х 2 — 2, х { + х 2= 5 (птах).
Это и будет целочисленным решением задачи. К таким же ре зультатам можно прийти, решая задачу в соответствии с пер вым алгоритмом Гомори.
§ 6.5. Метод ветвей и границ
Метод относится к классу комбинаторных методов целочис ленного программирования и характерен тем, что из множества возможных планов рассматриваются лишь некоторые. Часть возможных планов отбрасывается, как заведомо не представ ляющая интереса. Однако это не эвристическое, интуитивное отбрасывание, а целесообразное, определяемое строго матема тически.
Смысл метода заключается в том, что определяется нижняя
граница |
целевой функции |
и все множество |
возможных пла |
нов G разбивается на ряд |
подмножеств G'. Это разделение про |
||
изводится |
в зависимости |
от того, имеется ли |
по какому-либо |
переменному нецелочисленное решение в базисном оптимальном плане. При дальнейшем разбивании получается дерево ветвле ний.
Схема ветвлений показана на рис. 14. На каждом шаге вет вления любым известным способом линейного программирова ния определяется оптимальный план. Если оптимальный план отвечает условию целочисленности, то ветвление прекращается. Ветвление прекращается и по той ветви, где задача оказывает ся неразрешимой. Ветвление продолжается по нецелочислен ным в оптимальных планах переменным, имеющим ограничения по целочисленности до тех пор, пока не будет получено цело численное решение.
Одним из первых среди комбинаторных методов разработан алгоритм Лэнд и Дойг, смысл которого заключается в следую
щем. Допустим, поставлена |
частично |
целочисленная |
задача |
z = f (л) = |
П |
min |
(6.5.1) |
^ Cj X j |
|||
|
j |
|
|
88
п р и о г р а н и ч е н и я х |
|
|
|
|
||
|
|
2 |
Ьй |
I = |
1, 2, . . . , m |
(6.5.2) |
|
|
j |
|
|
|
|
|
. |
0 < jc lj< d j; |
j = |
1,2, .... n |
(6.5.3) |
|
|
x L— целые |
числа; |
/ == 1 , 2 , . . . , rij |
(6 .5 .4 ) |
||
ni ^ |
n — условие частичной целочисленное™. |
|
||||
Порядок решения (алгоритм): |
|
задан |
||||
1. |
Решается |
задача линейного программирования, |
||||
ная моделью (6.5.1—6.5.3). |
|
|
|
|
||
Если полученный при этом оптимальный план Х° удовлетво |
||||||
ряет условию целочисленности |
(6.5.4), то задача решена. Если |
оптимальный план не удовлетворяет условию целочисленности (6.5.4), то значение целевой функции Z0 дает нижнюю границу
для искомого оптимума Z*. |
|
|
||
2. Пусть |
некоторая |
переменная -*1о(1 < i0 < щ) не получила |
||
в оптимальном плане Х° целочисленного значения, |
тогда для |
|||
выполнения |
условия |
целочисленности |
необходимо, |
чтобы в |
дальнейшем эта переменная была |
|
|
||
|
|
\х1о] или лу>.] А-1о[; |
(6.5.5) |
|
заметим, что ] x-h [ = [-xio] + 1. Решают |
две задачи |
линейного |
программирования, в которые вводится дополнительное ограни чение (6.5.5). Это и есть ветвление.
3. Если одно из полученных оптимальных решений X' отве чает условию целочисленности, то это будет решением задачи. Если же одно из полученных решений будет пустым, т. е. зада ча неразрешима, то этому решению приписывается оценка + с/х Если одно из решений оптимально, но не отвечает условию це лочисленности, то это решение Z' будет нижней границей для последующих решений, а задача разбивается на две задачи при дополнительных ограничениях
(6.5.6)
(6.5.7)
" Таким образом, решение задачи сводится к последователь ному решению задач линейного программирования при все бо лее сужающихся условиях функционирования переменных х.
Кроме этого метода для решения комбинаторных задач цело численного программирования применяются алгоритм Литтла, Мурти, Суини и Кэрел, аддитивный алгоритм Баллаша, и неко торые другие методы. Большинство «з них рассмотрено в моно-