Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Оптимизация логических выражений / 14 сообщений из 14, страница 1 из 1
19.08.2016, 12:12
    #39294503
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
Есть выражние записанное в строке:

Код: plaintext
((((РР && (YY || SS)) && DD) && LL) && AA)

нужно его упростить до:

Код: plaintext
(РР && (YY || SS) && DD && LL && AA)

Как такое делается?
...
Рейтинг: 0 / 0
19.08.2016, 12:33
    #39294517
Алиса С
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
...
Рейтинг: 0 / 0
19.08.2016, 12:57
    #39294534
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
Спасибо, я знаю как это называется.
Тут вопрос скорее практический. С какой стороны подойти? А может проекты какие-то, где это уже было реализовано.
...
Рейтинг: 0 / 0
19.08.2016, 13:12
    #39294545
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
Как вариант: переводить в обратную польскую запись , а вместо расчета генерить строку с формулой, скобки ставить только для подстрок имеющих операции с меньшим приоритетом.
...
Рейтинг: 0 / 0
19.08.2016, 13:27
    #39294561
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
...
Рейтинг: 0 / 0
19.08.2016, 14:36
    #39294625
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
Hett,

Под "упростить" понимается только удаление лишних скобок или минимизаций булевой функции?
...
Рейтинг: 0 / 0
19.08.2016, 14:44
    #39294633
Алиса С
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
Hett,

В статье есть формулы. По ним и упрощать. Или вы хотите научить упрощать компьютер?
...
Рейтинг: 0 / 0
19.08.2016, 15:24
    #39294665
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
Hett
Код: plaintext
(РР && (YY || SS) && DD && LL && AA)

Как такое делается?

Смотри. Упрощать здесь особо нечего. Пускай так и будет. Первый пункт
переходит ко второму на основе убирания скобок в соотвествтии с приоритетами.
Это к лог-выражениям не имеет никакого отношения. Это общие знания.

Далее. Если у тебя есть сведения о взаимо зависимостях между
предикатами PP,YY,SS,DD,LL,AA то ты должен их предоставить.

Например PP=F(YY,SS). И на основании этих сведений мы можем предложить
улучшения.

Или. Если функции PP=F1(...), YY=F2(....) и каждая из функций обладает
сложностью в вычислениях то можно провести оптимизацию
базирующуюся на скорости. Тоесть маскимально быстро вычислить
результат меняя порядок булевых функций.
...
Рейтинг: 0 / 0
19.08.2016, 19:16
    #39294767
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
miksoftHett,

Под "упростить" понимается только удаление лишних скобок или минимизаций булевой функции?

Именно. Упростить для восприятия человеком.
...
Рейтинг: 0 / 0
19.08.2016, 20:01
    #39294776
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
HettmiksoftHett,

Под "упростить" понимается только удаление лишних скобок или минимизаций булевой функции?

Именно. Упростить для восприятия человеком.
Тут все сложно, надо искать золотую середину "понимания", т.к. если убрать все скобки, то будет
Код: sql
1.
YY && РР && DD && LL && AA || SS && РР && DD && LL && AA


ХЗ понятнее ли это будет человеку.
...
Рейтинг: 0 / 0
19.08.2016, 23:26
    #39294815
L1G
L1G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
Hett, всё просто: сначала конвертируете в постфиксную (RPN), а потом - обратно
в стандартной реализации первой конверсии порядок аргументов точно сохраняется, а судя по
http://scanftree.com/Data_Structure/prefix-postfix-infix-online-converter
- и при обратной тоже
на той страничке и алгоритмы где-то рядом есть
только вот я не понял, почему у вас самые внешние скобки не убираются
...
Рейтинг: 0 / 0
19.08.2016, 23:36
    #39294821
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
Hett почитай

https://ru.wikipedia.org/wiki/Законы_де_Моргана

+ законы поглощения, коммутативности, ассоциативности e.t.c.
...
Рейтинг: 0 / 0
20.08.2016, 09:10
    #39294861
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
Hett,
есть много способов.

алгебраически, по таблице истинности,
...
Рейтинг: 0 / 0
20.08.2016, 14:04
    #39294931
scf
scf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация логических выражений
Hett,

https://ru.wikipedia.org/wiki/Карта_Карно
Странно, что никто не вспомнил.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Оптимизация логических выражений / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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