 
                                 
					
Дискретная оптимизация и моделирование в условиях неопределенности данных
Перепелица В. А., Тебуева Ф. Б.,
Диофантовым уравнением называется полиномиальное уравнение с целыми коэффициентами, которое требуется решить в целых (часто положительных) числах.
Примечание 2.2. Уравнение с рациональными коэффициентами эквивалентно уравнению с целыми коэффициентами. Например, уравнение  можно переписать в виде
 можно переписать в виде  .
.
Решение линейного диофантова уравнения

тесно связано с задачей отыскания числа всевозможных способов разбиения целого  на слагаемые, принадлежащие множеству целых положительных чисел
 на слагаемые, принадлежащие множеству целых положительных чисел  .
.
Часто диофантово уравнение или система таких уравнений ,
 ,  определяют множество ограничений в задачах оптимизации. Решение таких задач методом полного перебора всех разбиений не представляется возможным в силу необозримости возможных вариантов.
 определяют множество ограничений в задачах оптимизации. Решение таких задач методом полного перебора всех разбиений не представляется возможным в силу необозримости возможных вариантов.
10-я проблема Гильберта (1901).Найти алгоритм, при помощи которого можно после конечного числа операций определить, имеет ли данное диофантово уравнение целочисленное решение.
Ю.В. Матиясевич доказал (70 лет спустя), что требуемого (для сформулированной проблемы) алгоритма в природе не существует.
Вернемся к нашей задаче о делении линии и сформулируем ее следующим образом. Выбрать положительные целые числа  ,
,  , которые максимизируют сумму
, которые максимизируют сумму
  (2.16)
(2.16)
при ограничении
  (2.17)
(2.17)
Обозначим через  оптимум задачи (2.16)-(2.17) и представим величину
 оптимум задачи (2.16)-(2.17) и представим величину  в виде
 в виде , где
 , где  – натуральное и
 – натуральное и  .
.
Теорема 2.1. Если требуется найти  и целые числа
 и целые числа  ,
,  , представляющие оптимальное решение задачи о делении линии, то искомый оптимум
, представляющие оптимальное решение задачи о делении линии, то искомый оптимум  имеет следующий вид:
имеет следующий вид:
  и
и
 ,
,  , при
, при  ;
;
 ;
; ,
 ,  , при
, при 
 ;
; ,
 ,  при
при  .
.
Доказательство.Сначала заметим, что в оптимальном решении  заведомо
 заведомо  для всех
 для всех  . Далее, если
. Далее, если  , то его можно записать
, то его можно записать  . Наконец, если
. Наконец, если  , то
, то  можно заменить на
 можно заменить на  и
и  , произведение которых
, произведение которых  . Следовательно, в оптимальном решении
. Следовательно, в оптимальном решении  все
все  равны 2 или 3. Кроме того, сумма
 равны 2 или 3. Кроме того, сумма  сомножителей
 сомножителей  равно сумме
 равно сумме  сомножителей
 сомножителей  , откуда получаем, что если произведение (1.16) содержит
, откуда получаем, что если произведение (1.16) содержит  , то последнее можно заменить на
, то последнее можно заменить на  . Таким образом, если
. Таким образом, если  – оптимум, то произведение (2.15) имеет вид
– оптимум, то произведение (2.15) имеет вид
 , где
, где  (2.18)
 (2.18)
Оставшаяся часть доказательства теоремы 2.1 непосредственно следует из (2.18) и рассмотрения трех случаев:  ,
,  и
и .
 .
Рассмотрим задачу максимизации произведения
  (2.19)
(2.19)
при диофантовом ограничении
  (2.20)
(2.20)
Здесь  – положительное целое число, а значение
– положительное целое число, а значение  – не фиксировано.
 – не фиксировано.
Теорема 2.2.Положительные целые числа максимизируют
 максимизируют  при ограничении (2.20) тогда и только тогда, когда
при ограничении (2.20) тогда и только тогда, когда  ,
, , т.е. оптимальное решение задачи (1.19)-(1.20) имеет вид
 , т.е. оптимальное решение задачи (1.19)-(1.20) имеет вид  ,
,  .
.
Доказательство.Пусть оптимальное решение задачи (2.19)-(2.20) представляет собой вектор  .
.
Предположим противное, т.е. допустим, что вектор  содержит компоненту
 содержит компоненту  . Рассмотрим сначала случай, когда
. Рассмотрим сначала случай, когда  . Таким образом, произведение (2.19) содержит множитель
. Таким образом, произведение (2.19) содержит множитель  . Поскольку
. Поскольку  не фиксировано, то можем заменить
 не фиксировано, то можем заменить  на два сомножителя
на два сомножителя  . Значит для всякого
. Значит для всякого  значение
 значение  .
.
Пусть теперь . Тогда
 Тогда  можем заменить на
 можем заменить на  , где
, где  , а
, а  .
.
Полученное противоречие и доказывает теорему 2.2.
Сформулируем теперь без доказательства теорему, устанавливающую конкретно вид оптимального решения  задачи (2.19)-(2.20).
задачи (2.19)-(2.20).
Теорема 2.3.Если  ,
,  и
и  – количество единиц, двоек и троек в решении, данном теоремой 2.2, то максимум целевой функции (2.19) достигается в точках целочисленной решетки, определяемых системой неравенств:
 – количество единиц, двоек и троек в решении, данном теоремой 2.2, то максимум целевой функции (2.19) достигается в точках целочисленной решетки, определяемых системой неравенств:
 ;
;
 ;
;
 ;
;
 .
.
Рассмотрим задачу, в некотором смысле обратную рассмотренной выше задаче о делении линии. Требуется найти натуральные  ,
, , максимизирующие сумму
 , максимизирующие сумму
  (2.21)
(2.21)
при ограничении
  (2.22)
(2.22)
Сформулируем очевидное
Утверждение 2.4. Пусть  . Тогда оптимальное решение задачи (2.21)-(2.22) имеет вид:
. Тогда оптимальное решение задачи (2.21)-(2.22) имеет вид:  , а для остальных
, а для остальных  значения .
 значения . Такой же вид будет иметь решение в случае, если целевая функция (2.21) будет иметь вид:
 Такой же вид будет иметь решение в случае, если целевая функция (2.21) будет иметь вид:
 ,
 ,   .
.
Рассмотрим теперь класс задач, в котором допустимые решения определяются диофантовым ограничением вида
 (2.23)
 (2.23)
где – заданное натуральное число. Требуется найти вектор с целочисленными неотрицательными компонентами
 – заданное натуральное число. Требуется найти вектор с целочисленными неотрицательными компонентами  , доставляющий минимум (максимум) целевой функции следующего вида
, доставляющий минимум (максимум) целевой функции следующего вида
  (2.24)
(2.24)
где  – выпуклые (вогнутые) функции от одного переменного. Малотрудоемкий алгоритм решения задачи (2.23)-(2.24) можно построить благодаря следующему установленному О. Гроссом критерию:
– выпуклые (вогнутые) функции от одного переменного. Малотрудоемкий алгоритм решения задачи (2.23)-(2.24) можно построить благодаря следующему установленному О. Гроссом критерию:
Теорема 2.4.Пусть  ,
,  – выпуклые функции одного переменного. Необходимое и достаточное условие того, что вектор с неотрицательными целочисленными компонентами
 – выпуклые функции одного переменного. Необходимое и достаточное условие того, что вектор с неотрицательными целочисленными компонентами  минимизирует выражение (2.24) при ограничении (2.23) состоит в том, что является справедливым соотношение
 минимизирует выражение (2.24) при ограничении (2.23) состоит в том, что является справедливым соотношение , где множество индексов
 , где множество индексов  ,
,  .
.
Ниже мы сформулируем и докажем утверждение, частным случаем которого является теорема 2.4. А сейчас опишем принцип работы алгоритма для задачи (2.23)-(2.24).
Решение этой задачи в случае выпуклых  получается за
 получается за  шагов, которые будем нумеровать числами
 шагов, которые будем нумеровать числами  . Вектор промежуточного решения, получаемого на
. Вектор промежуточного решения, получаемого на  -ом шаге, обозначим через
-ом шаге, обозначим через  .
.
Результатом первого шага считаем нулевой вектор  . Пусть в результате
. Пусть в результате  -го шага получен вектор
-го шага получен вектор  и пусть
 и пусть  – такое значение индекса
– такое значение индекса  , что выполняется равенство
, что выполняется равенство  .
 .
Тогда на  -ом шаге полагаем:
-ом шаге полагаем:  , а для всех остальных
, а для всех остальных  принимаем
принимаем  . Образно выражаясь, можно сказать, что искомое решение получается путем распределения
. Образно выражаясь, можно сказать, что искомое решение получается путем распределения  единиц среди
 единиц среди  возможных значений
 возможных значений  , причем на каждом шаге одна единица придается аргументу той функции
, причем на каждом шаге одна единица придается аргументу той функции  , которая имеет наименьшее приращение.
, которая имеет наименьшее приращение.
Если все функции  одинаковы, то искомое оптимальное решение получается сразу, а именно, из теоремы 2.4 вытекает
 одинаковы, то искомое оптимальное решение получается сразу, а именно, из теоремы 2.4 вытекает
Следствие 2.1.Пусть в задаче (2.23)-(2.24) все функции  одинаковы, т.е.
 одинаковы, т.е.  для всех
 для всех  , где
, где  – выпуклая или вогнутая функция. Тогда оптимальное решение
 – выпуклая или вогнутая функция. Тогда оптимальное решение  имеет вид:
имеет вид:

Приведем содержательную и математическую формулировку одной конкретной экстремальной комбинаторной задачи, которая может послужить иллюстративным примером для общей постановки (2.23)-(2.24).
Пусть  – это число единиц данного оружия, которое предназначается для уничтожения
 – это число единиц данного оружия, которое предназначается для уничтожения  вражеских целей. Введем следующие обозначения:
 вражеских целей. Введем следующие обозначения:  – количество единиц этого оружия, выделенных для поражения
– количество единиц этого оружия, выделенных для поражения  -ой цели, которой приписана стоимость
-ой цели, которой приписана стоимость ,
 ,  ;
;  – вероятность поражения
– вероятность поражения  -й цели при использовании единицы данного оружия. Если
-й цели при использовании единицы данного оружия. Если  , то вероятность выживания
, то вероятность выживания  -й цели после обстрела ее
-й цели после обстрела ее  единицами оружия равна
 единицами оружия равна  . Задача заключается в максимизации ожидаемой стоимости пораженных целей или в минимизации стоимости сохранившихся целей. После представления целевой функции вида (2.24) это означает, что требуется найти вектор
. Задача заключается в максимизации ожидаемой стоимости пораженных целей или в минимизации стоимости сохранившихся целей. После представления целевой функции вида (2.24) это означает, что требуется найти вектор с целочисленными компонентами
 с целочисленными компонентами  , который минимизирует сумму
, который минимизирует сумму  ,
,  при ограничениях
при ограничениях  ,
,  ,
,  ,
,  ,
,  – действительные числа.
 – действительные числа.