В общем, наша программа вызывала её достаточно часто. Вот и выясняли.
Выяснили. Оказалось, что это происходит при уплотнении (compaction) кучи, если сборка накладывается каким-то образом на вывод информации. Если задать ключик +RTS -c, то она вылетает практически сразу. Я и пытался сделать что-то считающую программу, чтобы воспроизвести этот баг.
SAT - поиск CNF satisfaction set, набора значений переменных, который при подстановке в заданную конъюнктивную нормальую форму делает её истинной.
Для x & ~y этот набор x=1 и y=0.
К этой задаче сводятся все другие NP-полные задачи.
Да, с curry/uncurry я знаком плохо. Пока плохо. ;)
Отключили уплотнение ключиком +RTS -c100 - уплотнять при зполненности кучи на 100 процентов (чего не бывает никогда).
Забыл сказать про SAT. Если CNF состоит только из дизъюнкций по два элемента (SAT-2, по-моему, это называется), то её можно решить за полиномиальное время. Все остальные случаи уже NP-полны.
Comments 6
Reply
Reply
Ну, и чтобы придраться (а как же без этого!)
\(a,b) -> bvadd a b => uncurry bvadd
Reply
В общем, наша программа вызывала её достаточно часто. Вот и выясняли.
Выяснили. Оказалось, что это происходит при уплотнении (compaction) кучи, если сборка накладывается каким-то образом на вывод информации. Если задать ключик +RTS -c, то она вылетает практически сразу. Я и пытался сделать что-то считающую программу, чтобы воспроизвести этот баг.
SAT - поиск CNF satisfaction set, набора значений переменных, который при подстановке в заданную конъюнктивную нормальую форму делает её истинной.
Для x & ~y этот набор x=1 и y=0.
К этой задаче сводятся все другие NP-полные задачи.
Да, с curry/uncurry я знаком плохо. Пока плохо. ;)
Reply
За SAT спасибо, не знал.
Reply
Отключили уплотнение ключиком +RTS -c100 - уплотнять при зполненности кучи на 100 процентов (чего не бывает никогда).
Забыл сказать про SAT. Если CNF состоит только из дизъюнкций по два элемента (SAT-2, по-моему, это называется), то её можно решить за полиномиальное время. Все остальные случаи уже NP-полны.
PS
Хочу попробовать подключить jhc. ;)
Reply
Leave a comment