|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
kealon(Ruslan) Aleksandr Sharahov Верблюд, нашел на русском еще свежее: http://www.isa.ru/proceedings/images/documents/2014-64-3/t-14-3_13-24.pdf но показывает он ту же "ленту решений" (стр 17, 18 нумерации) что и автор топика Сочетания 3 по n давно известны, так что ничего удивительного. Но вот на 20 странице он своё решение "дорешивает". Так что видимо есть различия и существенные, в сам текст не вникал еще. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2021, 19:16 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, авторПредварительный этап решения заключается в унификации S1 и S2, так как унификация по принципу действия сохраняет в структурахоперандах все существующие СВН и одновременно минимизирует упомянутые структуры по числу элементов (строк). очень тяжело его читать, лирика неуместная :-( он кажется задачу к 2-КНФ сводит (там всё доказано и решено), а как - непонятно ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2021, 19:18 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
kealon(Ruslan) Верблюд, авторПредварительный этап решения заключается в унификации S1 и S2, так как унификация по принципу действия сохраняет в структурахоперандах все существующие СВН и одновременно минимизирует упомянутые структуры по числу элементов (строк). он кажется задачу к 2-КНФ сводит (там всё доказано и решено), а как - непонятно Надо почитать. Но вроде он параллельно показывает как 3сат и 2 сат его методом решать. Мой метод тоже умеет 2сат решать, но смысла в этом нет, 2 сат за линейное время решается. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2021, 19:25 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, я и говорю что лирики много, а самого главного нема но это у большинства так, кто пишет доки к своим работам у вас тоже так же ничего не понять ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2021, 19:31 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2021, 19:53 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
kealon(Ruslan) Верблюд, я и говорю что лирики много, а самого главного нема но это у большинства так, кто пишет доки к своим работам у вас тоже так же ничего не понять У меня смысл такой. Берешь ведро и синюю изоленту. Наматываешь изоленту на ведро, если буквы обоих концах изоленты сошлись, то красиво, если не сошлись - ведро выбрасывается )))) Да, чуть не забыл. Без перехлёста не все варианты подойдут ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2021, 21:22 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, а что, так можно? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2021, 21:36 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Верблюд, а что, так можно? )) суть примерно та же. только тут для одного решения переплетается n^3 слоёв изоленты, при этом части букв в каждом слое не должны противоречить друг другу. Я собираюсь показать, что из n^3 кусочков ленты с минимум тремя частями букв можно собрать 2^n различных вариантов так, что бы кусочки букв не противоречили друг другу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2021, 00:57 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, а почему C(3, N) а не C(3, N) * 2^3 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 17:58 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
kealon(Ruslan), В первой версии один бит отвечал за одно состояние. Поэтому 2^3 это байт ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 18:47 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, я в плане того спрашиваю, что троек то возможных не C(3,N), а в 8 раз больше (с учётом not-вариантов) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 20:31 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
kealon(Ruslan) Верблюд, я в плане того спрашиваю, что троек то возможных не C(3,N), а в 8 раз больше (с учётом not-вариантов) не понял вопроса. Сочетаний 3 по n существует (n^3-3n^2+2n)/6. Число возможных размещений из {0,1} по 3 равно 2^3. Итого максимальное число размещений {0,1} в сочетаниях из n по 3 равно 8*(n^3-3n^2+2n)/6. Если каждое размещение 2 по 3 обозначить одним битом, то для хранение их всех потребуется(n^3-3n^2+2n)/6 байт. Или уточните о чем речь. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 20:38 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, это я пытаюсь понять "Описание алгоритма решения задачи 3-КНФ", что откуда и зачем из этого текста очень сложно понять, без гугления, что 8 состояний комбинаций для каждой тройки {vi, vj, vk}, это: {vi | vj | vk}, { vi | vj | vk}, {vi | vj | vk}, ... в этом блоке осталось осилить авторВекторы, соответствующие ограничениям 3-КНФ формулы помечаются как удаленные.это какие? которые входят в формулу? зачем удалённые? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 00:10 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, если перефразировать блок "Описание алгоритма решения задачи 3-КНФ" человеческим языком, выходит следующее утверждение Любую 3-КНФ формулу из n переменных можно представить в виде вектора состоящего из 8 * C(3, N) бит теперь про то, что вы говорите далее, про операции с эти вектором Возможно ли, подставив значение N-й переменной, получить однозначное 3-КНФ уравнение из (N-1) переменных ? и если возможно, то как это сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 09:10 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
kealon(Ruslan) Верблюд, если перефразировать блок "Описание алгоритма решения задачи 3-КНФ" человеческим языком, выходит следующее утверждение Любую 3-КНФ формулу из n переменных можно представить в виде вектора состоящего из 8 * C(3, N) бит теперь про то, что вы говорите далее, про операции с эти вектором Возможно ли, подставив значение N-й переменной, получить однозначное 3-КНФ уравнение из (N-1) переменных ? и если возможно, то как это сделать Можно на n получить просто удалив все векторы, соответствующие ограничению. В исходниках смотрите, там есть функция addconstraint(x). N-1 получить можно, это надо весь набор пересобирать, такого функционала у меня нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 16:59 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, вот в чём и фигня (v1, v2, vn) & (v7, v16, vn) vn = 1 левый можно удалить, куда девать правый? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 19:44 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
kealon(Ruslan) Верблюд, вот в чём и фигня (v1, v2, vn) & (v7, v16, vn) vn = 1 левый можно удалить, куда девать правый? Ахаха. Да, логично. Правый никуда не девать. 2SAT выражение получается. Если vn это отрицание, то он равен 0. И из v7 v16 получаем 2SAT ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 21:18 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, но вообще я один способ придумал, можно добавить в уравнение известные переменные, минимально достаточно двух ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 21:49 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
kealon(Ruslan) Верблюд, но вообще я один способ придумал, можно добавить в уравнение известные переменные, минимально достаточно двух здорово. осталось выяснить способ чего. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 21:53 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, для начала, хотя бы иметь возможность понизить количество переменных ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 22:21 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
kealon(Ruslan) Верблюд, для начала, хотя бы иметь возможность понизить количество переменных Хороший ход. Но ты не сможешь утоптать 2^n возможных решений в n-1 переменных. Вместо сочетаний n по 3 придётся использовать сочетания n по 4, что увеличит размер хранения полученной формулы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 22:55 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, ничего особо не увеличит (кардинально во всяком случае), вместо 8*C(3,n) бит потребуется 8*C(3,n + 3) например добавим 3 переменные (t0 = 0, t1 = 0, t2 =0) - это 7 известных соотношений. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 23:45 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, фактически можно хранить в развёрнутом виде только разницу 8* [C(3,n + 3) - C(3,n)] бит, так как исходные блоки не меняются ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2021, 00:01 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
kealon(Ruslan) Верблюд, фактически можно хранить в развёрнутом виде только разницу 8* [C(3,n + 3) - C(3,n)] бит, так как исходные блоки не меняются Немного не понял, для чего вообще хранить t0 t1 t2, если они в задачу не входят? Сохранить не проблема, достаточно в начале сказать что в задаче на 3 переменных больше. Что с ними делать дальше? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2021, 00:36 |
|
Решение NP-сложных задач за полиномиальное время
|
|||
---|---|---|---|
#18+
Верблюд, я пытаюсь понять базовые операции, которые нам доступны вполне очевидно, что понижение уровня уравнения довольно базовая вещь Собственно невозможность подставки 1 натолкнула на мысль, что можно подставить не конкретно 1 или 0, а переменную. Потом пришла мысль, что может получиться ситуация (vi, vi, vj) - что недопустимо, и я подумал, а почему бы не добавить соотношение которое однозначно задаёт переменные, количество решений это не увеличивает. Т.е. это позволяет решить конкретную проблему: понижение уровня уравнения Пойдём дальше: из операции видно, что при подстановке всегда будет меняться только часть с включением этих добавленных переменных (помним, что для добавки достаточно 8* [C(3,n + 3) - C(3,n)] бит. ), что очень хорошо. Можно не хранить исходную функцию в развёрнутом виде, а просто помечать те переменные, которые уже найдены\предположены - и это можно сделать гораздо эффективнее (нужно лишь определиться с базовыми операциями). Теперь вернёмся к тому, что говорит Aleksandr Sharahov при подстановке у нас получается дробление на 2 ветки, Aleksandr Sharahov утверждает, что возможно задать такое уравнение что при любой подстановке у вас не обнаружится коллизий и придётся опять дробить на 2. Логично, что в худшем случае вам придётся раздробиться на 2^N решений, что как бы уже относится к NP. Отсюда следует простой вывод: чтобы не было дроблений, либо их количество было минимально нужен алгоритм определяющий по какой переменной стоит дробиться. И я как бы не вижу у вас описание решения вопроса, который поднял Aleksandr Sharahov ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2021, 09:36 |
|
|
start [/forum/topic.php?fid=16&msg=40104832&tid=1339616]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
2115ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 2250ms |
0 / 0 |