Проблема продавця подорожей, мабуть, доступна ... принаймні там, де я перебуваю, ця здається є найбільш популярною проблемою CS серед людей, які не є CS. Я також виявив таку ілюстрацію Vertex Cover досить привабливою, як представлена моїм інструктором з алгоритмів:
Ви маєте дорожню мережу і хочете переконатися, що якщо автомобіль застряг у паливі, щонайменше на одному кінці дороги буде АЗС.
Як містобудівник, ви хочете мінімізувати витрати, будуючи найменшу кількість можливих АЗС. Це, по суті, проблема покриття вершин, і я знайшов певний успіх, зазначивши, що хоча ви не сподіваєтесь знайти оптимальне покриття вершин у поліноміальний час, ви можете знайти щось, що є лише коефіцієнтом двох у поліноміальний час, просто підібравши обидві кінцеві точки максимальної відповідності (добре, що остання деталь може бути пропущена залежно від того, наскільки захоплена ваша аудиторія - тим більше, що алгоритм ММ не зовсім дволанковий).
Що стосується прикладу "стрибка складності" з невеликою зміною характеру проблеми, я думаю, що різниця між перевіркою 2-кольоровості та 3-кольоровості є хорошим прикладом. Зважаючи на всю розголос навколо чотириколірної теореми, можна також зазначити, що перевірити, чи можна карту правильно розфарбувати лише з трьома кольорами замість чотирьох, важко, хоча ми знаємо, що її завжди можна пофарбувати чотирма кольорами. Значна кількість людей вважає це досить дивним.
Ще одна досить природна ситуація - проблема відновлення тупикової ситуації в операційних системах. Це моделюється NP-повною проблемою набору вершин зворотного зв'язку - найменшої кількості вершин, видалення яких робить графік ациклічним - і я вважаю це чудовим прикладом (і пояснюється далі у цій статті з вікіпедії).