Квадратичная задача о назначениях

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Квадрати́чная зада́ча о назначе́ниях (КЗН, англ. Quadratic assignment problem, QAP) — одна из фундаментальных задач комбинаторной оптимизации в области оптимизации или исследования операций, принадлежащая категории задач размещения объектов.

Задача моделирует следующую задачу из реальной жизни:

Есть множество n предприятий, которые могут быть расположены в n местах. Для каждой пары мест задано расстояние и для каждой пары производств задан вес или поток (т. e. количество материала (сырья или продукции), перевозимого между двумя производствами). Требуется расставить производства по местам (два производства нельзя размещать в одном месте) таким образом, что сумма расстояний, умноженных на соответствующие потоки, будет минимальной.

Интуитивно понятно, что предприятия с большим потоком следует размещать ближе друг к другу.

Формулировка задачи похожа на формулировку задачи о назначениях, различаются они целевой функцией — в квадратичной задаче она квадратична, что и отражает название.

Формальное математическое определение[править | править код]

Формальное определение квадратичной задачи о назначениях следующее:

Заданы два множества, P («производства») и L («точки размещения») равных размеров вместе с весовой функцией w : P × PR и функцией расстояний d : L × LR. Требуется найти биекцию f : PL («назначение»), такую, что значение целевой функции:
будет минимально.

Обычно веса и расстояния рассматриваются как квадратные вещественные матрицы, так что целевую функцию можно выписать следующим образом:

В матричной форме:

, где — матрицы перестановок, W — матрица весов, а D — матрица расстояний.

Вычислительная сложность[править | править код]

Задача является NP-трудной, так что не существует алгоритма, решающего задачу за полиномиальное время, и даже маленькие задачи могут потребовать большого времени вычисления. Также было доказано, что задача не имеет аппроксимирующего алгоритма, работающего за полиномиальное время для любого (постоянного) множителя, если только не P = NP [1]. Задачу коммивояжёра можно рассматривать как специальный случай КЗН, если требовать, чтобы потоки связывали все производства в одном цикле с одним и тем же ненулевым значением потока. Многие другие стандартные задачи комбинаторной оптимизации могут быть записаны в этой форме.

Приложения[править | править код]

Кроме изначальной формулировки размещения производства, КЗН является математической моделью задач размещения связанных электронных компонентов на печатных платах или интегральных схемах. Модель служит частью процесса размещения и разводки[en] систем автоматизированного проектирования в электронной индустрии.

См. также[править | править код]

Примечания[править | править код]

Литература[править | править код]

  • Sartaj Sahni, Teofilo Gonzalez. . P-Complete Approximation Problems. — Journal of the ACM, 1976, 23 (3). — P. 555—565. — doi:10.1145/321958.321975..
  • Michael R. Garey, David S. Johnson. . Computers and Intractability: A Guide to the Theory of NP-Completeness[en]. — W. H. Freeman, 1979. — ISBN 0-7167-1045-5. — P. 218.

Ссылки[править | править код]