Як видно з цієї недавньої смужки XKCD і цієї останньої публікації в блозівід Пітера Норвіга (і повість Slashdot із останньою), "гольф" регулярного вираження "(який можна краще назвати проблемою розділення регулярних виразів) - це загадка визначення найкоротшого можливого регулярного виразу, який приймає кожне слово у множині A і жодне слово в Набір Б. Норвіга містить алгоритм для генерування досить короткого кандидата, і він зазначає, що його підхід включає вирішення проблеми NP Повне покриття, але він також обережно зазначив, що його підхід не враховує всіх можливих регулярних виразів, і, звичайно, його не обов'язково єдиний алгоритм, тому його рішення не гарантовано є оптимальними, і також можливо, що якийсь інший алгоритм, який має багатозначний час, може знайти рівноцінні або кращі рішення.
З метою конкретності та уникнення необхідності вирішувати питання оптимізації, я думаю, що найбільш природним формулюванням розділення регулярних виразів було б:
Враховуючи два (кінцеві) множини і B рядків над деяким алфавітом Σ , чи існує регулярний вираз довжиною ≤ k, який приймає кожну рядок у A і відхиляє кожну рядок у B ?
Чи відомо щось про складність цієї конкретної проблеми розділення? (Зауважте, що оскільки я вказав і B як кінцеві набори рядків, то природним поняттям розміру для задачі є загальна довжина всіх рядків у A і B ; це болотає будь-який внесок від k ). Мені здається дуже ймовірним, що воно є повним NP (і насправді, я б очікував, що скорочення стосується якоїсь проблеми покриття), але кілька пошуків не виявили нічого корисного.