[Перевод] Генерация кроссвордов: «достаточно хорошее» решение NP-полной задачи. Генерация кроссвордов — NP-полная задача. Каждая ячейка, в которой пересекаются два слова, создаёт ограничение, которому должны удовлетворять оба слова, и эти ограничения перемножаются в сетке, приводя к комбинаторному взрыву. Эффективного алгоритма, гарантирующего решение, не существует, но вооружившись подходящими эвристиками, можно создать нечто, работающее на удивление хорошо. В конце 2021 года, уже сильно после начала локдауна, моя одержимость кроссвордом газеты The New York Times превратил...