Комбинаторная оптимизация заключается в поиске некотрого оптимального объекта в конечном множестве объектов.
За долгое время любую задачу комбинаторной оптимизации можно решить полным перебором, но для большого класса задач есть либо гораздо более быстрые точные решения, либо весьма хорошие аппроксимации. О таких задачах мы и поговорим в этой главе.