|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Определение согласованности тоже хочется увидеть. В самом начале работы состояние согласовано? В самом начале это когда? До применения КНФ существуют все возможные решения, они согласованы и равны 1. И да, и их 2^n )). После применения КНФ часть состояний становится несовместима друг с другом. Для согласования применяется алгоритм консенсуса с удалением участников (конфликтующих состояний). После работы алгоритма все состояния опять согласованы и их набор содержит суперпозицию всех возможных решений. Aleksandr Sharahov Вот, допустим, определили несколько переменных, а все остальные не можем назначить, что тогда делаем? Александр, вы видео смотрели? Там подробно рассмотрены все варианты действий. И в презентации pptx на гитхабе. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 20:21 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд Aleksandr Sharahov Определение согласованности тоже хочется увидеть. В самом начале работы состояние согласовано? В самом начале это когда? До применения КНФ существуют все возможные решения, они согласованы и равны 1. И да, и их 2^n )). После применения КНФ часть состояний становится несовместима друг с другом. Для согласования применяется алгоритм консенсуса с удалением участников (конфликтующих состояний). После работы алгоритма все состояния опять согласованы и их набор содержит суперпозицию всех возможных решений. Aleksandr Sharahov Вот, допустим, определили несколько переменных, а все остальные не можем назначить, что тогда делаем? Александр, вы видео смотрели? Там подробно рассмотрены все варианты действий. И в презентации pptx на гитхабе. Смотрел. Проблема в отсутствии четких определений, которые я пытаюсь нащупать. > После работы алгоритма все состояния опять согласованы и их набор содержит суперпозицию всех возможных решений. По идее после работы алгоритма нам нужно другое, ответ: да или нет. Неясно, какова сложность вычисления единственного решения или доказательства, что его нет, по этой суперпозиции. Кстати, вы решали КНФ и с положительными, и с отрицательными ответами? или только положительные? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 20:32 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Кстати, вы решали КНФ и с положительными, и с отрицательными ответами? или только положительные? Я решал примеры, которые есть в папке /samples Там и положительные и отрицательные и с разным числом переменных. Больше тысячи штук. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 21:40 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд Aleksandr Sharahov Кстати, вы решали КНФ и с положительными, и с отрицательными ответами? или только положительные? Я решал примеры, которые есть в папке /samples Там и положительные и отрицательные и с разным числом переменных. Больше тысячи штук. Насколько я теперь понимаю, ваш алгоритм сокращает множество возможных решений, но не дает окончательный ответ на вопрос существования решения. Как вы получали окончательный ответ: 1) Использовали перебор всех комбинаций значений переменных из суперпозиции, выданной вашим алгоритмом? 2) Назначали значения неопределенных переменных и рекурсивно применяли ваш алгоритм? 3) Как-то по-другому? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 21:54 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Как вы получали окончательный ответ: 1) Использовали перебор всех комбинаций значений переменных из суперпозиции, выданной вашим алгоритмом? 2) Назначали значения неопределенных переменных и рекурсивно применяли ваш алгоритм? 3) Как-то по-другому? Выяснил один неприятный момент. Если мы хотим получить решение для какой-то ветки, то просто пройтись по ней и выбрать не получится. Хотя на некоторых примерах работает. После каждого выбора необходимо схлопнуть суперпозицию, удалив НЕВЫБРАННЫЕ состояния и запустив алгоритм консенсуса еще раз. Естественно, если хочется потом получить еще одно решения, потребуется скопировать оригинальный массив. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 21:59 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд Aleksandr Sharahov Как вы получали окончательный ответ: 1) Использовали перебор всех комбинаций значений переменных из суперпозиции, выданной вашим алгоритмом? 2) Назначали значения неопределенных переменных и рекурсивно применяли ваш алгоритм? 3) Как-то по-другому? Выяснил один неприятный момент. Если мы хотим получить решение для какой-то ветки, то просто пройтись по ней и выбрать не получится. Хотя на некоторых примерах работает. После каждого выбора необходимо схлопнуть суперпозицию, удалив НЕВЫБРАННЫЕ состояния и запустив алгоритм консенсуса еще раз. Естественно, если хочется потом получить еще одно решения, потребуется скопировать оригинальный массив. Т.е. вы для КАЖДОГО назначения используете рекурсивный вариант (2). Отсюда следует, что оценка сложности не верна. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 22:08 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Верблюд пропущено... Выяснил один неприятный момент. Если мы хотим получить решение для какой-то ветки, то просто пройтись по ней и выбрать не получится. Хотя на некоторых примерах работает. После каждого выбора необходимо схлопнуть суперпозицию, удалив НЕВЫБРАННЫЕ состояния и запустив алгоритм консенсуса еще раз. Естественно, если хочется потом получить еще одно решения, потребуется скопировать оригинальный массив. Т.е. вы для КАЖДОГО назначения используете рекурсивный вариант (2). Отсюда следует, что оценка сложности не верна. Нет там рекурсии. От слова совсем. Набор неизвестных битов конечен и не превышает число переменных. То есть максимум оценка может оказаться выше в n раз. Но уже нашли другую проблему, более серьёзную. Замыкание цепочек назначений через отрицание группы состояний. В результате получаем SAT вместо UNSAT. Вот тут да, придется в результате вычисления эти циклы искать отдельным алгоритмом. Надеюсь что решится и очень странно что среди найденных в интернете нескольких десятков тысяч тестов ни одного с таким циклом не попалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 02:20 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд Aleksandr Sharahov пропущено... Т.е. вы для КАЖДОГО назначения используете рекурсивный вариант (2). Отсюда следует, что оценка сложности не верна. Нет там рекурсии. От слова совсем. Набор неизвестных битов конечен и не превышает число переменных. То есть максимум оценка может оказаться выше в n раз. Но уже нашли другую проблему, более серьёзную. Замыкание цепочек назначений через отрицание группы состояний. В результате получаем SAT вместо UNSAT. Вот тут да, придется в результате вычисления эти циклы искать отдельным алгоритмом. Надеюсь что решится и очень странно что среди найденных в интернете нескольких десятков тысяч тестов ни одного с таким циклом не попалось. Есть там рекурсия. Вы не решаете 3-SAT. Вместо этого вы "упрощаете" проблему за полиномиальное время, а потом окончательно решаете ПЕРЕБОРОМ. Вот в этом переборе и скрыта рекурсия, которую вы не хотите признать, т.к. на ваших примерах перебор тривиален. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 09:36 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Верблюд пропущено... Нет там рекурсии. От слова совсем. Набор неизвестных битов конечен и не превышает число переменных. То есть максимум оценка может оказаться выше в n раз. Но уже нашли другую проблему, более серьёзную. Замыкание цепочек назначений через отрицание группы состояний. В результате получаем SAT вместо UNSAT. Вот тут да, придется в результате вычисления эти циклы искать отдельным алгоритмом. Надеюсь что решится и очень странно что среди найденных в интернете нескольких десятков тысяч тестов ни одного с таким циклом не попалось. Есть там рекурсия. Вы не решаете 3-SAT. Вместо этого вы "упрощаете" проблему за полиномиальное время, а потом окончательно решаете ПЕРЕБОРОМ. Вот в этом переборе и скрыта рекурсия, которую вы не хотите признать, т.к. на ваших примерах перебор тривиален. Перебором я выбираю решения, а не создаю их и не решаю. Стоимость - разница между 3-SAT и ALL-3-SAT. Вы не сможете выбрать все 2^n степени решений за время меньшее количества этих решений. Построить можете, выбрать нет. Думаю разница вполне должна быть понятна. Алгоритм строит все решения. Результат работы - информация об их наличии или отсутствии. Выбор всех решений вопрос отдельный, к задаче выполнимости не имеющий ни какого отношения. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 11:53 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, По существу, вы реализовали улучшенный перебор. От этого задача не стала полиномиальной. Еще раз, вы не решили 3-SAT за полиномиальное время Но для небольших N и несложных КНФ задача, безусловно, упростилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 12:18 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, Обратите внимание на то, что вы подменяете задачу: вместо ответа на вопрос существует ли решение КНФ(x1,x2...xN)=true, вы находите множество значений переменных, в котором ВОЗМОЖНО есть решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 12:33 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Верблюд, Обратите внимание на то, что вы подменяете задачу: вместо ответа на вопрос существует ли решение КНФ(x1,x2...xN)=true, вы находите множество значений переменных, в котором ВОЗМОЖНО есть решение. Не ВОЗМОЖНО. А есть. При чем только они. С циклами, которые алгоритм не обнаруживает в силу локальности я проблему решу. Перебиралку решений вчера вечером делал и она выбирала решения однозначно и ничего лишнего, ни каких бэктрекингов и прочих проблем решателей класса 2^n ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 12:41 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Хотя наверное соглашусь, пока нет формального доказательства это всего лишь гипотезы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 12:43 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, Именно ВОЗМОЖНО. У вас же для отрицательных примеров множество не всегда будет пустым. Если докажете, что для них множество всегда пусто, - вот тогда дело сделано, задача решена. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 12:47 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Верблюд, Именно ВОЗМОЖНО. У вас же для отрицательных примеров множество не всегда будет пустым. Если докажете, что для них множество всегда пусто, - вот тогда дело сделано, задача решена. Именно это я пытаюсь сделать. Вчера пытался. Пока мне не подкинули пример с циклом, для которого алгоритм как раз пустые пропускает. Из других проверенных тестовых примеров неправильных решений не получалось выбрать, как я не старался. Понять и осознать сложно почему так, хотя я как раз представлял именно такой вариант решения, когда дошел до алгоритма. Но вот доказать что так всегда... Один пример уже есть, что это может быть не так, но там проблема понятна почему. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 12:52 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд Aleksandr Sharahov Верблюд, Именно ВОЗМОЖНО. У вас же для отрицательных примеров множество не всегда будет пустым. Если докажете, что для них множество всегда пусто, - вот тогда дело сделано, задача решена. Именно это я пытаюсь сделать. Вчера пытался. Пока мне не подкинули пример с циклом, для которого алгоритм как раз пустые пропускает. Из других проверенных тестовых примеров неправильных решений не получалось выбрать, как я не старался. Понять и осознать сложно почему так. А доказать... В таком случае имеет смысл оценить сложность рекурсивного алгоритма с назначениями. Может, найдете способ делать удачные назначения, а потом вашим алгоритмом сокращать множество возможных решений. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 12:57 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Верблюд пропущено... Именно это я пытаюсь сделать. Вчера пытался. Пока мне не подкинули пример с циклом, для которого алгоритм как раз пустые пропускает. Из других проверенных тестовых примеров неправильных решений не получалось выбрать, как я не старался. Понять и осознать сложно почему так. А доказать... В таком случае имеет смысл оценить сложность рекурсивного алгоритма с назначениями. Может, найдете способ делать удачные назначения, а потом вашим алгоритмом сокращать множество возможных решений. Удачные назначения как раз и остаются после работы алгоритма. И только удачные, и других нет. Не учитывая логической проблемы с циклами с отрицанием друг друга (два невыполнимых состояния рекурсивно отрицают друг друга, получается логическая проблема, которую мой алгоритм не умеет находить). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 13:05 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд Aleksandr Sharahov пропущено... В таком случае имеет смысл оценить сложность рекурсивного алгоритма с назначениями. Может, найдете способ делать удачные назначения, а потом вашим алгоритмом сокращать множество возможных решений. Удачные назначения как раз и остаются после работы алгоритма. И только удачные, и других нет. Не учитывая логической проблемы с циклами с отрицанием друг друга (два невыполнимых состояния рекурсивно отрицают друг друга, получается логическая проблема, которую мой алгоритм не умеет находить). Значит, и надо переменным из этих состояний сделать назначения, чтобы потом отсечь их и оставить только то, что надо. Разорвете цикл взаимозависимости, циклов конечное число. Важно найти и порвать все циклы без рекурсии. Можно попробовать классифицировать циклы на "хорошие" и "плохие". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 13:17 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Верблюд пропущено... Удачные назначения как раз и остаются после работы алгоритма. И только удачные, и других нет. Не учитывая логической проблемы с циклами с отрицанием друг друга (два невыполнимых состояния рекурсивно отрицают друг друга, получается логическая проблема, которую мой алгоритм не умеет находить). Значит, и надо переменным из этих состояний сделать назначения, чтобы потом отсечь их и оставить только то, что надо. Разорвете цикл взаимозависимости, циклов конечное число. Важно найти и порвать все циклы без рекурсии. Можно попробовать классифицировать циклы на "хорошие" и "плохие". Да, по решениям думаю пока составлять матрицу инцидентности и её исследовать. Может еще какие проблемы найдутся. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 13:36 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, покажите здесь графики с говорящей ассимптотикой прогонов? С этого надо начинать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 13:42 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
А можно вместо 30 минутного видео приложить описание метода? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 14:10 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд Хотя наверное соглашусь, пока нет формального доказательства это всего лишь гипотезы. для интереса, попробуйте прикинуть сколько вы проживёте после такого открытия ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 17:24 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
exp98 Верблюд, покажите здесь графики с говорящей ассимптотикой прогонов? С этого надо начинать. 20 переменных решение находит в среднем 6 секунд на моем ноуте 50 переменных отсутствие решения находит в среднем за 20 секунд 50 переменных существование решения находит примерно за 12 минут. Мой старенький ноут неспособен перебрать 10^15 вариантов, что бы найти решение наверное даже за месяц ))) это если кто-то будет утверждать, что тут есть экспоненциальная сложность. Хотя n^10 это уже слишком много. Ну и собственно само наблюдение не нужно. Есть же исходники на гитхабе, там текста на две страницы всего. Проверить, что бесконечных циклов нет проблемы не должно быть. https://github.com/gromas/polysat ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2021, 02:16 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, Даже миллион успешных решений для небольших N говорит лишь о том, что вы, возможно, на правильном пути. Например, срезали у экспоненты M степеней. Это здорово, но этого мало. На мой взгляд, имеет смысл сосредоточиться на генерировании функций с отрицательным результатом для больших N и поиске вариантов решения для них. И хотя более менее ясно, что мешает быстро давать отрицательный ответ, именно это не дает решить проблему в целом. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2021, 08:30 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Верблюд, Даже миллион успешных решений для небольших N говорит лишь о том, что вы, возможно, на правильном пути. Например, срезали у экспоненты M степеней. Это здорово, но этого мало. На мой взгляд, имеет смысл сосредоточиться на генерировании функций с отрицательным результатом для больших N и поиске вариантов решения для них. И хотя более менее ясно, что мешает быстро давать отрицательный ответ, именно это не дает решить проблему в целом. Отрицательный ответ алгоритм наоборот даёт очень быстро, так как с каждым шагом пространство возможных решений резко уменьшается в размере. Долго считается как раз вариант если решения есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2021, 14:08 |
|
|
start [/forum/topic.php?fid=16&msg=40103024&tid=1339616]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 245ms |
total: | 409ms |
0 / 0 |