powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Решение NP-сложных задач за полиномиальное время
25 сообщений из 136, страница 2 из 6
Решение NP-сложных задач за полиномиальное время
    #40102877
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov


Определение согласованности тоже хочется увидеть. В самом начале работы состояние согласовано?




В самом начале это когда? До применения КНФ существуют все возможные решения, они согласованы и равны 1. И да, и их 2^n )). После применения КНФ часть состояний становится несовместима друг с другом. Для согласования применяется алгоритм консенсуса с удалением участников (конфликтующих состояний). После работы алгоритма все состояния опять согласованы и их набор содержит суперпозицию всех возможных решений.

Aleksandr Sharahov
Вот, допустим, определили несколько переменных, а все остальные не можем назначить, что тогда делаем?


Александр, вы видео смотрели? Там подробно рассмотрены все варианты действий. И в презентации pptx на гитхабе.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40102878
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд
Aleksandr Sharahov


Определение согласованности тоже хочется увидеть. В самом начале работы состояние согласовано?




В самом начале это когда? До применения КНФ существуют все возможные решения, они согласованы и равны 1. И да, и их 2^n )). После применения КНФ часть состояний становится несовместима друг с другом. Для согласования применяется алгоритм консенсуса с удалением участников (конфликтующих состояний). После работы алгоритма все состояния опять согласованы и их набор содержит суперпозицию всех возможных решений.

Aleksandr Sharahov
Вот, допустим, определили несколько переменных, а все остальные не можем назначить, что тогда делаем?


Александр, вы видео смотрели? Там подробно рассмотрены все варианты действий. И в презентации pptx на гитхабе.


Смотрел.
Проблема в отсутствии четких определений, которые я пытаюсь нащупать.

> После работы алгоритма все состояния опять согласованы и их набор содержит суперпозицию всех возможных решений.
По идее после работы алгоритма нам нужно другое, ответ: да или нет.

Неясно, какова сложность вычисления единственного решения или доказательства, что его нет, по этой суперпозиции.

Кстати, вы решали КНФ и с положительными, и с отрицательными ответами? или только положительные?
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40102900
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov


Кстати, вы решали КНФ и с положительными, и с отрицательными ответами? или только положительные?


Я решал примеры, которые есть в папке /samples
Там и положительные и отрицательные и с разным числом переменных. Больше тысячи штук.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40102903
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд
Aleksandr Sharahov


Кстати, вы решали КНФ и с положительными, и с отрицательными ответами? или только положительные?


Я решал примеры, которые есть в папке /samples
Там и положительные и отрицательные и с разным числом переменных. Больше тысячи штук.


Насколько я теперь понимаю, ваш алгоритм сокращает множество возможных решений,
но не дает окончательный ответ на вопрос существования решения.

Как вы получали окончательный ответ:
1) Использовали перебор всех комбинаций значений переменных из суперпозиции, выданной вашим алгоритмом?
2) Назначали значения неопределенных переменных и рекурсивно применяли ваш алгоритм?
3) Как-то по-другому?
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40102905
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov


Как вы получали окончательный ответ:
1) Использовали перебор всех комбинаций значений переменных из суперпозиции, выданной вашим алгоритмом?
2) Назначали значения неопределенных переменных и рекурсивно применяли ваш алгоритм?
3) Как-то по-другому?


Выяснил один неприятный момент. Если мы хотим получить решение для какой-то ветки, то просто пройтись по ней и выбрать не получится. Хотя на некоторых примерах работает. После каждого выбора необходимо схлопнуть суперпозицию, удалив НЕВЫБРАННЫЕ состояния и запустив алгоритм консенсуса еще раз. Естественно, если хочется потом получить еще одно решения, потребуется скопировать оригинальный массив.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40102907
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд
Aleksandr Sharahov


Как вы получали окончательный ответ:
1) Использовали перебор всех комбинаций значений переменных из суперпозиции, выданной вашим алгоритмом?
2) Назначали значения неопределенных переменных и рекурсивно применяли ваш алгоритм?
3) Как-то по-другому?


Выяснил один неприятный момент. Если мы хотим получить решение для какой-то ветки, то просто пройтись по ней и выбрать не получится. Хотя на некоторых примерах работает. После каждого выбора необходимо схлопнуть суперпозицию, удалив НЕВЫБРАННЫЕ состояния и запустив алгоритм консенсуса еще раз. Естественно, если хочется потом получить еще одно решения, потребуется скопировать оригинальный массив.


Т.е. вы для КАЖДОГО назначения используете рекурсивный вариант (2).
Отсюда следует, что оценка сложности не верна.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40102926
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov
Верблюд
пропущено...


Выяснил один неприятный момент. Если мы хотим получить решение для какой-то ветки, то просто пройтись по ней и выбрать не получится. Хотя на некоторых примерах работает. После каждого выбора необходимо схлопнуть суперпозицию, удалив НЕВЫБРАННЫЕ состояния и запустив алгоритм консенсуса еще раз. Естественно, если хочется потом получить еще одно решения, потребуется скопировать оригинальный массив.


Т.е. вы для КАЖДОГО назначения используете рекурсивный вариант (2).
Отсюда следует, что оценка сложности не верна.


Нет там рекурсии. От слова совсем. Набор неизвестных битов конечен и не превышает число переменных. То есть максимум оценка может оказаться выше в n раз. Но уже нашли другую проблему, более серьёзную. Замыкание цепочек назначений через отрицание группы состояний. В результате получаем SAT вместо UNSAT. Вот тут да, придется в результате вычисления эти циклы искать отдельным алгоритмом. Надеюсь что решится и очень странно что среди найденных в интернете нескольких десятков тысяч тестов ни одного с таким циклом не попалось.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40102951
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд
Aleksandr Sharahov
пропущено...


Т.е. вы для КАЖДОГО назначения используете рекурсивный вариант (2).
Отсюда следует, что оценка сложности не верна.


Нет там рекурсии. От слова совсем. Набор неизвестных битов конечен и не превышает число переменных. То есть максимум оценка может оказаться выше в n раз. Но уже нашли другую проблему, более серьёзную. Замыкание цепочек назначений через отрицание группы состояний. В результате получаем SAT вместо UNSAT. Вот тут да, придется в результате вычисления эти циклы искать отдельным алгоритмом. Надеюсь что решится и очень странно что среди найденных в интернете нескольких десятков тысяч тестов ни одного с таким циклом не попалось.


Есть там рекурсия.

Вы не решаете 3-SAT.

Вместо этого вы "упрощаете" проблему за полиномиальное время, а потом окончательно решаете ПЕРЕБОРОМ.
Вот в этом переборе и скрыта рекурсия, которую вы не хотите признать, т.к. на ваших примерах перебор тривиален.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103003
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov
Верблюд
пропущено...


Нет там рекурсии. От слова совсем. Набор неизвестных битов конечен и не превышает число переменных. То есть максимум оценка может оказаться выше в n раз. Но уже нашли другую проблему, более серьёзную. Замыкание цепочек назначений через отрицание группы состояний. В результате получаем SAT вместо UNSAT. Вот тут да, придется в результате вычисления эти циклы искать отдельным алгоритмом. Надеюсь что решится и очень странно что среди найденных в интернете нескольких десятков тысяч тестов ни одного с таким циклом не попалось.


Есть там рекурсия.

Вы не решаете 3-SAT.

Вместо этого вы "упрощаете" проблему за полиномиальное время, а потом окончательно решаете ПЕРЕБОРОМ.
Вот в этом переборе и скрыта рекурсия, которую вы не хотите признать, т.к. на ваших примерах перебор тривиален.


Перебором я выбираю решения, а не создаю их и не решаю. Стоимость - разница между 3-SAT и ALL-3-SAT.
Вы не сможете выбрать все 2^n степени решений за время меньшее количества этих решений. Построить можете, выбрать нет. Думаю разница вполне должна быть понятна. Алгоритм строит все решения. Результат работы - информация об их наличии или отсутствии. Выбор всех решений вопрос отдельный, к задаче выполнимости не имеющий ни какого отношения.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103008
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд,

По существу, вы реализовали улучшенный перебор.
От этого задача не стала полиномиальной.
Еще раз, вы не решили 3-SAT за полиномиальное время

Но для небольших N и несложных КНФ задача, безусловно, упростилась.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103015
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд,

Обратите внимание на то, что вы подменяете задачу:
вместо ответа на вопрос существует ли решение КНФ(x1,x2...xN)=true,
вы находите множество значений переменных, в котором ВОЗМОЖНО есть решение.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103018
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov
Верблюд,

Обратите внимание на то, что вы подменяете задачу:
вместо ответа на вопрос существует ли решение КНФ(x1,x2...xN)=true,
вы находите множество значений переменных, в котором ВОЗМОЖНО есть решение.


Не ВОЗМОЖНО. А есть. При чем только они. С циклами, которые алгоритм не обнаруживает в силу локальности я проблему решу. Перебиралку решений вчера вечером делал и она выбирала решения однозначно и ничего лишнего, ни каких бэктрекингов и прочих проблем решателей класса 2^n
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103019
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя наверное соглашусь, пока нет формального доказательства это всего лишь гипотезы.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103022
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд,

Именно ВОЗМОЖНО.
У вас же для отрицательных примеров множество не всегда будет пустым.
Если докажете, что для них множество всегда пусто, - вот тогда дело сделано, задача решена.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103024
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov
Верблюд,

Именно ВОЗМОЖНО.
У вас же для отрицательных примеров множество не всегда будет пустым.
Если докажете, что для них множество всегда пусто, - вот тогда дело сделано, задача решена.


Именно это я пытаюсь сделать. Вчера пытался. Пока мне не подкинули пример с циклом, для которого алгоритм как раз пустые пропускает. Из других проверенных тестовых примеров неправильных решений не получалось выбрать, как я не старался. Понять и осознать сложно почему так, хотя я как раз представлял именно такой вариант решения, когда дошел до алгоритма. Но вот доказать что так всегда... Один пример уже есть, что это может быть не так, но там проблема понятна почему.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103028
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд
Aleksandr Sharahov
Верблюд,

Именно ВОЗМОЖНО.
У вас же для отрицательных примеров множество не всегда будет пустым.
Если докажете, что для них множество всегда пусто, - вот тогда дело сделано, задача решена.


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


В таком случае имеет смысл оценить сложность рекурсивного алгоритма с назначениями.
Может, найдете способ делать удачные назначения, а потом вашим алгоритмом сокращать множество возможных решений.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103031
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov
Верблюд
пропущено...


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


В таком случае имеет смысл оценить сложность рекурсивного алгоритма с назначениями.
Может, найдете способ делать удачные назначения, а потом вашим алгоритмом сокращать множество возможных решений.


Удачные назначения как раз и остаются после работы алгоритма. И только удачные, и других нет. Не учитывая логической проблемы с циклами с отрицанием друг друга (два невыполнимых состояния рекурсивно отрицают друг друга, получается логическая проблема, которую мой алгоритм не умеет находить).
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103036
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд
Aleksandr Sharahov
пропущено...


В таком случае имеет смысл оценить сложность рекурсивного алгоритма с назначениями.
Может, найдете способ делать удачные назначения, а потом вашим алгоритмом сокращать множество возможных решений.


Удачные назначения как раз и остаются после работы алгоритма. И только удачные, и других нет. Не учитывая логической проблемы с циклами с отрицанием друг друга (два невыполнимых состояния рекурсивно отрицают друг друга, получается логическая проблема, которую мой алгоритм не умеет находить).


Значит, и надо переменным из этих состояний сделать назначения, чтобы потом отсечь их и оставить только то, что надо.
Разорвете цикл взаимозависимости, циклов конечное число.
Важно найти и порвать все циклы без рекурсии.

Можно попробовать классифицировать циклы на "хорошие" и "плохие".
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103046
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov
Верблюд
пропущено...


Удачные назначения как раз и остаются после работы алгоритма. И только удачные, и других нет. Не учитывая логической проблемы с циклами с отрицанием друг друга (два невыполнимых состояния рекурсивно отрицают друг друга, получается логическая проблема, которую мой алгоритм не умеет находить).


Значит, и надо переменным из этих состояний сделать назначения, чтобы потом отсечь их и оставить только то, что надо.
Разорвете цикл взаимозависимости, циклов конечное число.
Важно найти и порвать все циклы без рекурсии.

Можно попробовать классифицировать циклы на "хорошие" и "плохие".


Да, по решениям думаю пока составлять матрицу инцидентности и её исследовать. Может еще какие проблемы найдутся.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103047
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд, покажите здесь графики с говорящей ассимптотикой прогонов? С этого надо начинать.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103056
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно вместо 30 минутного видео приложить описание метода?
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103141
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд
Хотя наверное соглашусь, пока нет формального доказательства это всего лишь гипотезы.
Вы ещё подумайте, надо ли оно вам
для интереса, попробуйте прикинуть сколько вы проживёте после такого открытия
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103225
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
Верблюд, покажите здесь графики с говорящей ассимптотикой прогонов? С этого надо начинать.


20 переменных решение находит в среднем 6 секунд на моем ноуте
50 переменных отсутствие решения находит в среднем за 20 секунд
50 переменных существование решения находит примерно за 12 минут. Мой старенький ноут неспособен перебрать 10^15 вариантов, что бы найти решение наверное даже за месяц ))) это если кто-то будет утверждать, что тут есть экспоненциальная сложность. Хотя n^10 это уже слишком много.

Ну и собственно само наблюдение не нужно. Есть же исходники на гитхабе, там текста на две страницы всего. Проверить, что бесконечных циклов нет проблемы не должно быть.

https://github.com/gromas/polysat
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103232
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд,

Даже миллион успешных решений для небольших N говорит лишь о том,
что вы, возможно, на правильном пути.
Например, срезали у экспоненты M степеней.
Это здорово, но этого мало.

На мой взгляд, имеет смысл сосредоточиться на генерировании функций
с отрицательным результатом для больших N
и поиске вариантов решения для них.
И хотя более менее ясно, что мешает быстро давать отрицательный ответ,
именно это не дает решить проблему в целом.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40103276
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov
Верблюд,

Даже миллион успешных решений для небольших N говорит лишь о том,
что вы, возможно, на правильном пути.
Например, срезали у экспоненты M степеней.
Это здорово, но этого мало.

На мой взгляд, имеет смысл сосредоточиться на генерировании функций
с отрицательным результатом для больших N
и поиске вариантов решения для них.
И хотя более менее ясно, что мешает быстро давать отрицательный ответ,
именно это не дает решить проблему в целом.


Отрицательный ответ алгоритм наоборот даёт очень быстро, так как с каждым шагом пространство возможных решений резко уменьшается в размере. Долго считается как раз вариант если решения есть.
...
Рейтинг: 0 / 0
25 сообщений из 136, страница 2 из 6
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Решение NP-сложных задач за полиномиальное время
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]