powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Задача
9 сообщений из 9, страница 1 из 1
Задача
    #32282504
n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
n
Гость
Есть набор предикаотов. f1,f2,..,fn. НАдо придумать или найти алгоритм выявления противоречивых правил. Или хотябы алгоритм доказательства, что данный набор противоречивый.

Правила f1 и f2 называются противоречивыми если не существует такого x, что f1(x) = false и f2(x) = false.
...
Рейтинг: 0 / 0
Задача
    #32282850
andresito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то есть в дискретной матеметике...
смотри конъюнктивные и дизъюнктивные нормальные формы -
есть ли алгоритм, приводящий предикат к КНФ или ДНФ - не знаю.. поищи..
...
Рейтинг: 0 / 0
Задача
    #32282907
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, проведи подстановку сложных предикатов, приведи получившееся логическое выражение к КНФ или ДНФ по правилу раскрытия скобок. Минимизируй результирующее выражение (удаление избыточности). Сравни.
...
Рейтинг: 0 / 0
Задача
    #32283018
n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
n
Гость
f1 = { 1 если x<= 0, 0 если x >0 }
f2 = { 1 если x<= 1 , 0 если x > 1}

- непротиворечивые

f1 = { 1 если x< 0, 0 если x =>0 }
f2 = { 1 если x>=0 , 0 если x <0 }

- противоречивые

а как это сделать для таких правил?

я не совсем понял. т.е надо доказать что : f1||f2 - ложно? но они же (предикаты) зависят от параметров.
...
Рейтинг: 0 / 0
Задача
    #32285443
andresito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем случае конечно автоматизировать это нельзя,
но если у тебя предикаты подобного вида, то можно попробовать сравнивать граничные значения
...
Рейтинг: 0 / 0
Задача
    #32300204
n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
n
Гость
Терминология немного изменилась.

Группа правил pi ( pi:X->{0,1} ), i=1..N называется невыполнимой, если не существует x такого что p1&p2&..&pn = True ( т.е все правила не могут выполнятся одновременно)

АЛГОРИТМ ВЫЯВЛЕНИЯ НЕВЫПОЛНИМЫХ ГРУПП

1) НАЧАЛО j:=N
2) ПРОВЕРКА: Если существует x такое что pj(x)&..&pN(x)=True то ИТЕРАЦИЯ иначе НАБОР НЕВЫПОНИМ
3) ИТЕРАЦИЯ: j:=j-1. Если j=0 то НАБОР ВЫПОЛНИМ
4) НАБОР НЕВЫПОЛНИМ : КОНЕЦ
5) НАБОР ВЫПОЛНИМ: КОНЕЦ.
6) КОНЕЦ.
...
Рейтинг: 0 / 0
Задача
    #32300631
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переформулируй задачу в терминах пересеченя/объединения множеств, сразу все станет ясно. Есть область определеня X и ее подмножества s(j)={x << X| p(j,x)=1}, j=j..N. Только не забудь рассмотреть дополнения, а то может оказаться, что проще искать выполнимость, а потом взять отрицание.

А зачем оно тебе надо?
...
Рейтинг: 0 / 0
Задача
    #32301416
n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
n
Гость
"Переформулируй задачу в терминах пересеченя/объединения множеств, сразу все станет ясно. Есть область определеня X и ее подмножества s(j)={x << X| p(j,x)=1}, j=j..N. Только не забудь рассмотреть дополнения, а то может оказаться, что проще искать выполнимость, а потом взять отрицание."

Просто я не вижу к сожалению как это смогу использовать. ТОгда надо будет доказывать что области определения пересекаются. Но я не знаю как решать такю задачу (.

А зачем оно тебе надо? задачка такя поставлена. нужен алгоритм для ручного использования ).
...
Рейтинг: 0 / 0
Задача
    #32302353
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Просто я не вижу к сожалению как это смогу использовать.

Тогда станет ясно, что достаточно перебирать не все x, а только S(j+1)=S(j) intersect s(j+1), где S(1)=s(1) и j=1..N-1. Хотя это и так очевидно. Т.е. только те x, где p(1,x)&...&p(j)=1. Еще очевидно, что {S(j)} - последовательность невозрастающих по включению множеств. Если для некоторого j вдруг S(j)=0, то система невыполнима. Очевидно что начинать лучше с минимального s, а еще лучше пустого.

>ТОгда надо будет доказывать что области определения пересекаются. Но я не знаю как решать такю задачу (.

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

>задачка такя поставлена. нужен алгоритм для ручного использования ).

Так если бы ты объяснил откуда ноги растут, может стало бы понятнее, что от нас требуется. Например в каком виде приходят p? Может оказаться, что сначала лучше упростить p(1)&..&p(N). У Дейта есть глава посвященная оптимизации SQL выражений, там что-то похожее рассматривается и можно найти ссылки.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Задача
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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