91
переменных ограничены некоторым числом, можно свести к бу-
левой задаче путем замены переменных. Действительно, пусть x
j
∈ Z, x
j
= 0,...,v
j
, тогда x
j
можно заменить совокупностью перемен-
ных x
ij
∈{0,1}. При этом
,1x,xx
jj
v
0i
ij
v
0i
ijj
==
∑∑
==
x
jj
∈{0,1}
Специфика задач целочисленного (дискретного) програм-
мирования заключается в том, что здесь происходит разрыв ус-
ловий двойственности в каждой точке Δ, вследствие чего усло-
вия теоремы Куна-Таккера не выполняются, и для задачи (5.1) не
существует двойственной задачи. В этой связи методы, развитые
для задач линейного и нелинейного программирования, не при-
менимы
в общем случае для задач целочисленного программи-
рования.
Наиболее изученным классом задач целочисленного про-
граммирования являются задачи целочисленного линейного про-
граммирования, обладающие рядом свойств, позволяющих стро-
ить эффективные алгоритмы решения
x* = arg
max
x Δ∈
f(x), где ∆ = {x∈Z
n
+
│
∑
=
n
1j
jij
xa ≤ b
i
, i = 1,…, m } .
Используемые в настоящее время методы решения задач
целочисленного программирования, можно разбить на пять групп.
1 группа методов. Используется традиционный математиче-
ский аппарат решения непрерывных задач. Целочисленность
достигается округлением результата до ближайшего целого из
области допустимых решений. Несмотря на кажущуюся простоту
метода, при округлении возникают трудности, связанные, прежде
всего, с тем, что количество вариантов округления может быть
достаточно велико. В результате округления необходимо полу-
чить допустимое решение, а
это при большом числе компонент
вектора, описывающего решение, довольно не тривиальная за-
дача. Кроме того, произвольное округление компонент может
привести к довольно значительным отклонениям от оптимального
решения. Более того, при округлении можно не обнаружить до-
пустимого решения, которое на самом деле существует.
2 группа методов. Выделяется класс задач, в которых ис-
пользование методов решения непрерывных задач математиче-