Seperti yang terlihat di strip XKCD terbaru ini dan posting blog terbaru inidari Peter Norvig (dan sebuah kisah Slashdot yang menampilkan yang terakhir), "golf regex" (yang mungkin lebih baik disebut masalah pemisahan ekspresi reguler) adalah teka-teki untuk menentukan ekspresi reguler sesingkat mungkin yang menerima setiap kata pada set A dan tidak ada kata dalam set B. Posting Norvig mencakup algoritma untuk menghasilkan kandidat yang cukup pendek, dan dia mencatat bahwa pendekatannya melibatkan penyelesaian masalah Set Cover NP-lengkap, tetapi dia juga berhati-hati untuk menunjukkan bahwa pendekatannya tidak mempertimbangkan setiap kemungkinan ekspresi reguler, dan tentu saja itu bukan satu-satunya algoritma, jadi solusinya tidak dijamin optimal, dan mungkin juga beberapa algoritma waktu polinomial lain dapat menemukan solusi yang setara atau lebih baik.
Demi kebenaran dan untuk menghindari harus menyelesaikan pertanyaan optimasi, saya pikir formulasi Pemisahan Ekspresi Reguler yang paling alami adalah:
Dengan dua (hingga) set dan string di atas beberapa alfabet , apakah ada ekspresi reguler panjang yang menerima setiap string dalam dan menolak setiap string dalam ?B Σ ≤ k A B
Adakah yang diketahui tentang kerumitan masalah pemisahan ini? (Perhatikan bahwa karena saya telah menetapkan dan sebagai set string terbatas, gagasan alami ukuran untuk masalah adalah panjang total semua string dalam dan ; ini meniadakan kontribusi dari ). Tampaknya sangat mungkin bagi saya bahwa ini adalah NP-lengkap (dan pada kenyataannya, saya akan berharap pengurangan menjadi semacam masalah penutup) tetapi beberapa pencarian belum menemukan sesuatu yang sangat berguna.B A B k