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

То, что если ее "вытянуть", то она замкнется это как раз понятно.
Но непонятно, как вы это обнаружите.
Что такого нового вы добавили в алгоритм, из-за чего он стал это обнаруживать.
Не факт, что в любом случае будет достаточно цикла, можете удалить лишнее.
Вдруг цепочки имеют общие части, и нужна рекурсия.


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

Непонятно, как удается исключить цепочки без рекурсии.

Я правильно понимаю, что мы идем по цепочке, делая назначения, до ее замыкания, а затем удаляем ее навсегда.

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

Непонятно, как удается исключить цепочки без рекурсии.

Я правильно понимаю, что мы идем по цепочке, делая назначения, до ее замыкания, а затем удаляем ее навсегда.

Почему не может существовать решения с тем же началом, что в удаленной цепочке,
но другим назначением где-то посередине цепочки?


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


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


Это так в случае, если цепочка от назначения 1 плохая.
А если там есть решение, то ничего оно не жаждет.


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

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

Вот если в abc мы назначили b = 1. Алгоритм жадный и пытается распространить назначенное нами значение на как можно большее число векторов. Он утащит его сначала в abd, затем в acd, затем в bcd и при отсутствии ветвлений в конце концов это назначение вернется обратно в abc. Теперь, допустим у нас есть ветвление, в котором переменной b мы назначаем 0. Соответственно это назначение также будет распространено вплоть до разветвления. При этом алгоритм обнаружит, что в нашей ветке оно не соответствует назначению b = 1 и назначение b = 0 будет удалено. При этом в другую сторону наш алгоритм или оставит разветвление без назначения, пока до него не распространится b=0, либо если оно уже тут - выберет другую ветку и будет распространять нашу 1 на неё.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40104593
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov
Верблюд,

Я правильно понял, что ваш алгоритм умеет исключать только цепочки без ветвлений?
Как он исключит две цепочки с общей частью (что-то вроде восьмерки)?


Собственно тестовый файл Mikhail как раз такой случай - там не восьмерка даже, там 8 колец в одной точке соединяются. Старый алгоритм не умел это решать, новый сразу говорит UNSAT.
При чем рядом лежит второй файл, в котором как раз два кольца оставлено - у него решение есть.

https://github.com/gromas/polysat/tree/extended_vector/samples/Circular logical deadlock

Хотя выше как раз про восьмерку объяснение ) Консенсус он такой, внутри общей части тоже есть назначение, и оно тоже распространяется в разные стороны. И когда к разветвлению придут две ветки с назначением b = 1 и одна с назначением b = 0, то b=0 умрёт.

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

https://github.com/gromas/polysat/blob/main/docs/Polysat.docx
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40104612
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40104631
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд,

а вот эту статью вы смотрели?

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

а вот эту статью вы смотрели?

10 лет прошло, не могу сам оригинал описания алгоритма найти


Автор: Романов В.Ф.
Описание: https://romvf.wordpress.com/
Реализация: https://github.com/anjlab/sat3
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40104675
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40104753
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)
Верблюд,

а вот эту статью вы смотрели?

10 лет прошло, не могу сам оригинал описания алгоритма найти


Интересно. Почитаю. 10 лет и тишина - странно.
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40104770
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказывается вот так. (((

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

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

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


тогда вот это очень старая статья

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

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


тогда вот это очень старая статья

Aleksandr Sharahov


он впервые описал в 2002, потом что-то было у его студентов, а эта статья 2011 - она новее

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


тогда вот это очень старая статья

пропущено...


он впервые описал в 2002, потом что-то было у его студентов, а эта статья 2010 - она новее


Вот последняя статья. Но под неё так и не смогли сделать решатель, как я понял. Ибо автор умер и выяснить непонятности не удалось.

https://arxiv.org/pdf/1309.6078.pdf

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

нашел на русском еще свежее:

http://www.isa.ru/proceedings/images/documents/2014-64-3/t-14-3_13-24.pdf
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40104793
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Палево когда в блокнотике <EPAM> просвечивает...
...
Рейтинг: 0 / 0
Решение NP-сложных задач за полиномиальное время
    #40104800
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Палево когда в блокнотике <EPAM> просвечивает...


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

нашел на русском еще свежее:

http://www.isa.ru/proceedings/images/documents/2014-64-3/t-14-3_13-24.pdf
жалко доказательности в его статье мало по части асимптотики
но показывает он ту же "ленту решений" (стр 17, 18 нумерации) что и автор топика
...
Рейтинг: 0 / 0
25 сообщений из 136, страница 4 из 6
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Решение NP-сложных задач за полиномиальное время
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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