powered by simpleCommunicator - 21.11.28     © 2024 Programmizd 02
Map
Форумы / Приличный Трёп [закрыт для гостей] / Алгоритм
9 сообщений из 9, страница 1 из 1
Алгоритм
    #3154218
Ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Усовершенствованный брутфорс 3-sat выражения. За 6 минут на старом дряхлом ноуте в один поток выдаёт все варианты решения задачи из 50 переменных.
...
Хуск - трусливое анусное ссыкло. 3174775
Трахая козу, Квейд наивно полагает, что приобщается к великой культуре 3399661
Рейтинг: 0 / 0
Алгоритм
    #3154223
Ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл. Обычный брутфорс на том же ноуте считает это же больше двух суток, может дольше, ждать не стал.
...
Хуск - трусливое анусное ссыкло. 3174775
Трахая козу, Квейд наивно полагает, что приобщается к великой культуре 3399661
Рейтинг: 0 / 0
Алгоритм
    #3154580
Дырокол
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Колю дыры
поздравляю
...
Рейтинг: 1 / 0
Нравится: Ё
Алгоритм
    #3155760
Ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посчитал сложность. Если для брутфорса сложность равна O(2^n), то для моего алгоритма она равна O((7/8)^m*2^n), где n - число переменных, m - число клозов в выражении.
...
Хуск - трусливое анусное ссыкло. 3174775
Трахая козу, Квейд наивно полагает, что приобщается к великой культуре 3399661
Рейтинг: 0 / 0
Алгоритм
    #3155763
помощник менеджера
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу никакого алгоритм а
...
Рейтинг: 0 / 0
Алгоритм
    #3155765
Ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помощник менеджера  24.07.2021, 20:41
Не вижу никакого алгоритм а
А он есть.
...
Хуск - трусливое анусное ссыкло. 3174775
Трахая козу, Квейд наивно полагает, что приобщается к великой культуре 3399661
Рейтинг: 0 / 0
Алгоритм
    #3155773
Ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ё  24.07.2021, 20:39
Посчитал сложность. Если для брутфорса сложность равна O(2^n), то для моего алгоритма она равна O((7/8)^m*2^n), где n - число переменных, m - число клозов в выражении.
Это нижняя граница. Верхняя O((7/8)^n*2^n). Для анализа формулы с 20 переменными брутфорсу требуется 1047576 итераций, моему алгоритму максимум 72570. Если конечное число решений не больше этой цифры.
...
Хуск - трусливое анусное ссыкло. 3174775
Трахая козу, Квейд наивно полагает, что приобщается к великой культуре 3399661
Изменено: 24.07.2021, 20:51 - Ё
Рейтинг: 0 / 0
Алгоритм
    #3155802
Ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам алгоритм.

1. Пронумеруем все n битов задачи.
2. Отсортируем переменные в каждом клозе выражения в порядке возрастания.
3. Отсортируем все клозы выражения в порядке возрастания переменных, которые в них входят.
4. Инициализируем переменные нулями.
5. В порядке сортировки клозов проверяем их на выполнимость, пока не найдём невыполнимую клозу.
6. В невыполнимой клозе увеличим значение последнего бита, что бы клоза стала выполнимой. Если последний бит был единицей, применим правило переноса на следующий бит задачи.
7. Повторяем пункты 5 - 7 до тех пор, пока выражение не будет выполнимо. Если при выполнении переноса мы получаем все биты равные 0, выражение не имеет решений.

Тут еще есть момент с улучшением. Если клоза выполнима и следующее её значение при увеличении последней переменной приводит к невыполнимости, пометим эту переменную признаком блокировки, указывающим, что она заблокирована предыдущей переменной клозы. При последующем распространении переноса, перенос происходит через заблокированные переменные, пока не изменится переменная, которая их заблокировала.
...
Хуск - трусливое анусное ссыкло. 3174775
Трахая козу, Квейд наивно полагает, что приобщается к великой культуре 3399661
Изменено: 24.07.2021, 21:15 - Ё
Рейтинг: 0 / 0
Алгоритм
    #3156074
Ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ё  24.07.2021, 21:10
Сам алгоритм.

1. Пронумеруем все n битов задачи.
2. Отсортируем переменные в каждом клозе выражения в порядке возрастания.
3. Отсортируем все клозы выражения в порядке возрастания переменных, которые в них входят.
4. Инициализируем переменные нулями.
5. В порядке сортировки клозов проверяем их на выполнимость, пока не найдём невыполнимую клозу.
6. В невыполнимой клозе увеличим значение последнего бита, что бы клоза стала выполнимой. Если последний бит был единицей, применим правило переноса на следующий бит задачи.
7. Повторяем пункты 5 - 7 до тех пор, пока выражение не будет выполнимо. Если при выполнении переноса мы получаем все биты равные 0, выражение не имеет решений.

Тут еще есть момент с улучшением. Если клоза выполнима и следующее её значение при увеличении последней переменной приводит к невыполнимости, пометим эту переменную признаком блокировки, указывающим, что она заблокирована предыдущей переменной клозы. При последующем распространении переноса, перенос происходит через заблокированные переменные, пока не изменится переменная, которая их заблокировала.
Еще ускорение нашел. К каждой переменной добавить id клозов которые изменяются при изменении этой переменной и строить обход клозов не в лоб по очереди, а в порядке их изменения. В результате получается граф зависимостей переменных и частей формулы. И мне кажется, что так можно даже алгоритм PPSZ обогнать или приблизиться к нему. Возможно, если дальше проанализировать этот граф обхода, можно найти зависимости выполнимых выражений от невыполнимых.
...
Хуск - трусливое анусное ссыкло. 3174775
Трахая козу, Квейд наивно полагает, что приобщается к великой культуре 3399661
Изменено: 25.07.2021, 00:26 - Ё
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Приличный Трёп [закрыт для гостей] / Алгоритм
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (16): Анонимы (14), Yandex Bot, Bing Bot 1 мин.
Пользователи онлайн (20): Анонимы (18), Yandex Bot, Bing Bot 1 мин.
x
x
Закрыть


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