2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Составление кроссворда на заданной сетке это NP-Complete?
Сообщение10.07.2009, 20:13 


08/07/09
24
Дана переборная задача:
Сетка квадрат 10 на 10, список слов из разного кол-ва букв, пусть в нем 100000 слов, предположим что в списке есть слова из которых можно составить такой кроссворд, их и надо найти. Сетка при это не имеет черных клеток, т.е. к каждую клетку надо вписать букву. И получится в результате 10 слов по вертикали и 10 слов по горизонтали. Длина каждого слова будет равна 10.

IMHO и не только моё! Что данная зада относится к самому сложному классу задач NPC (NP-Complete). Считается что сегодня решений нет и навряд ли будет найдено в ближайшем будущем. Некоторые ученые передерживаются точки зрения что не будет найдено никогда в силу физических ограничений вселенной.

Вопрос: Может быть я ошибаюсь? Эта конкретная проблема с кроссвордом решена?

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение10.07.2009, 20:38 
Заблокирован
Аватара пользователя


17/06/09

2213
novako
Боюсь разочаровать, но 10-буквенных сочетаний (слов) в русском языке не более 1000. Таким образом, задача сводится к нахождению всех таких перестановок $C_{1000}^{10}= 263 409 560 461 970 000 000 000$ возможных комбинаций. Вводя всевозможные эвристики по лишним сочетаниям (4 гласных подряд или 5 согласных, несочетающиеся комбинации "ы-э" и так далее) число комбинаций можно существенно сократить.
Таким образом, при грамотном подходе задача может быть решена.

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение10.07.2009, 20:49 


08/07/09
24
Во-первых полученная вами оценка это примерно 10^24. Давай те прикинем сколько это секунд на супер компьютере выполняющем 10^15 операций, на сегодня это самый быстрый супер компьютер. и так 24-15=9 т.е. примерно миллиард секунд, это примерно 30 лет. Да может быть решена, но с таким же успехом можно решить и другие NPC задачи, вот только результаты вряд ли будут актуальными.

Да понятно что в русском языке нет такого кол-ва слов из 10 букв. Но даже при том количестве что вы привели. Задача фактически не решаемая.

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение10.07.2009, 21:03 
Заслуженный участник


04/05/09
4589
novako в сообщении #227840 писал(а):
Задача фактически не решаемая.
Ну да, при неграмотном подходе - не решаемая. age же имел в виду грамотный подход. :)

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение10.07.2009, 21:07 


08/07/09
24
Вообще то этой проблемой я занимаюсь с 2000 года. И пробовал ряд оптимизаций. Да быстрее, но в разы, а нужно на порядки.

http://209.85.129.132/search?q=cache:FR_vkbdodyMJ:thue.stanford.edu/puzzle.html+crossword+puzzle+NP-Complete&cd=10&hl=ru&ct=clnk&gl=ua

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение16.07.2009, 08:30 


10/11/06
64
Эта задача не является массовой, поэтому она не может быть NP-полной.

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение19.07.2009, 11:40 


08/07/09
24
K-3 в сообщении #229302 писал(а):
Эта задача не является массовой, поэтому она не может быть NP-полной.

Да задача частная, но ведь частная задача получается из массовой(общей) путем параметризации параметров. Таким образом следуя вашей логике получается что любую NP задачу можно свести к частной и найти ее решение, что собственно и требуется. Если бы это было так сейчас бы не было не разрешимых задач вообще.

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение19.07.2009, 19:42 
Заслуженный участник


15/05/05
3445
USA
novako в сообщении #229991 писал(а):
K-3 в сообщении #229302 писал(а):
Эта задача не является массовой, поэтому она не может быть NP-полной.
Да задача частная, но ведь частная задача получается из массовой(общей) путем параметризации параметров. Таким образом следуя вашей логике получается что любую NP задачу можно свести к частной и найти ее решение, что собственно и требуется. Если бы это было так сейчас бы не было не разрешимых задач вообще.

Не получается. Вы путаете NP-полноту и NP-трудность.

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение19.07.2009, 19:46 


08/07/09
24
Yuri Gendelman в сообщении #230068 писал(а):
[quote="novako в [url=http://dxdy.ru/post229991.html#p229991]
Не получается. Вы путаете NP-полноту и NP-трудность.

Объясните я не совсем понимаю теперь эту логику. Предположим что задача не массовая. Но из того что Вы написали следует что она тем не менее NP-полная. Как все же есть на самом деле. Для меня важно понять: является ли задача составления кроссворда NP-полной?

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение19.07.2009, 21:14 
Заслуженный участник


15/05/05
3445
USA
novako в сообщении #230070 писал(а):
Предположим что задача не массовая. Но из того что Вы написали следует что она тем не менее NP-полная. Как все же есть на самом деле. Для меня важно понять: является ли задача составления кроссворда NP-полной?
Не следует.
NP-полная задача - из Википедии:
Цитата:
NP-полная задача — это такая задача из класса NP, к которой можно свести любую другую задачу из класса NP. Таким образом, NP-полные задачи образуют в некотором смысле подмножество «самых сложных» задач в классе NP; и если для какой-то из них будет найден «быстрый» алгоритм решения, то и любая другая задача из класса NP может быть решена также «быстро».
То есть:
- Всякая NP-полная задача является NP-трудной (принадлежит классу NP).
- Не-NP-полная задача может быть NP-трудной, но может и не быть NP-трудной задачей.
Еще раз: задача может не быть NP-полной, но сам этот факт ничего не говорит о ее NP-трудности.

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение20.07.2009, 11:36 


08/07/09
24
Yuri Gendelman в сообщении #230082 писал(а):
novako в сообщении #230070 писал(а):
Предположим что задача не массовая. Но из того что Вы написали следует что она тем не менее NP-полная. Как все же есть на самом деле. Для меня важно понять: является ли задача составления кроссворда NP-полной?
Не следует.
NP-полная задача - из Википедии:
Цитата:
NP-полная задача — это такая задача из класса NP, к которой можно свести любую другую задачу из класса NP. Таким образом, NP-полные задачи образуют в некотором смысле подмножество «самых сложных» задач в классе NP; и если для какой-то из них будет найден «быстрый» алгоритм решения, то и любая другая задача из класса NP может быть решена также «быстро».
То есть:
- Всякая NP-полная задача является NP-трудной (принадлежит классу NP).
- Не-NP-полная задача может быть NP-трудной, но может и не быть NP-трудной задачей.
Еще раз: задача может не быть NP-полной, но сам этот факт ничего не говорит о ее NP-трудности.


Не совсем согласен! Во-первых Википедия не есть истина в последней инстанции, вот тому пример http://podrobnosti.ua/internet/2009/05/07/600825.html. Во-вторых класс задач P включает в себя NP, который включают в себя классы NP-hard и NP-Complete - ведутся споры, а пересекаются ли классы NP-hard и NP-Complete. Но не смотря на это NP-Complete - это самый сложный класс задач, в него входят переборные задачи, которые аналитическими методами не решить. Так что вопрос открыт.

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение20.07.2009, 17:34 
Заслуженный участник


15/05/05
3445
USA
novako в сообщении #230153 писал(а):
Во-вторых класс задач P включает в себя NP, ...
НЕ включает.
Наоборот, класс P - это подмножество класса NP.

IMHO эта тема - хороший пример для тех, кто считает, что программисту достаточно знать школьную математику.

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение21.07.2009, 11:34 


08/07/09
24
Yuri Gendelman в сообщении #230244 писал(а):
novako в сообщении #230153 писал(а):
Во-вторых класс задач P включает в себя NP, ...
НЕ включает.
Наоборот, класс P - это подмножество класса NP.

Да это так полностью согласен! Однако я не правильно выразился, имелось ввиду что NP входит в PSPACE.

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение22.07.2009, 15:18 


08/07/09
24
Поставлю вопрос таким образом:
Экспоненциальная ли по постановке эта задача? (см. сабж).

 Профиль  
                  
 
 Re: Составление кроссворда на заданной сетке это NP-Complete?
Сообщение12.08.2009, 15:33 


10/11/06
64
Цитата:
Экспоненциальная ли по постановке эта задача?


Экспонента --- эта функция. В вашей задаче нет никакого входного параметра (это и означает, что задача не массовая): размер кроссворда зафиксирован (по крайней мере, ограничен сверху константой), словарь зафиксирован. Поэтому ваша задача решается за константу (может быть, большую).

Как "погрузить" эту задачу в массовую? Да можно разными способами. Причем можно погрузить ее в полиномиальную, а можно - в NP-трудную. Надо только позабоится о том, чтобы такое погружение было естественным.

Например, дано $n$, дан словарь (произвольные "слова" составленные из букв русского алфавита).
Требуется составить кроссворд $n\times n$, заполненный какими-то словами из словаря, или установить, что сделать это невозможно. Это уже массовая задача: входом в ней является n и словарь. Скорее всего, она --- NP-трудная (кажется, что к ней можно свести задачу о покрытии).

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group