Я ищу хорошие примеры, где встречается следующее явление: (1) Алгоритмическая проблема выглядит сложной, если вы хотите решить ее, работая из определений и используя только стандартные результаты. (2) С другой стороны, это становится легко, если вы знаете некоторые (не очень стандартные) теоремы.
Цель этого состоит в том, чтобы проиллюстрировать студентам, что изучение большего количества теорем может быть полезным даже для тех, кто находится за пределами области теории (например, инженеры-программисты, компьютерные инженеры и т. Д.). Вот пример:
Вопрос: Даны ли целые числа , существует ли вершинный граф (и, если да, найти его), такой, что его вершинная связность равна , его краевая связность равна , а минимальная степень равна ?к л д
Обратите внимание, что мы требуем, чтобы параметры были в точности равны заданным числам, они не были просто границами. Если вы хотите решить это с нуля, это может показаться довольно сложным. С другой стороны, если вы знакомы со следующей теоремой (см. Теория экстремальных графов Б. Боллобаса), ситуация становится совершенно иной.
Теорема: Пусть целые числа. Существует вершинный граф с связностью вершин , связностью ребер и минимальной степенью , если и только если выполняется одно из следующих условий:н к л д
- ,
Эти условия очень легко проверить, поскольку они представляют собой простые неравенства между входными параметрами, поэтому на вопрос о существовании можно легко ответить. Кроме того, доказательство теоремы носит конструктивный характер, решая также проблему конструкции. С другой стороны, этот результат не выглядит достаточно стандартным, так что вы можете ожидать, что все будут знать об этом.
Можете ли вы привести дополнительные примеры в этом духе, где знание (не столь стандартной) теоремы значительно упрощает задачу?