Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Множество разбиений на классы эквивалентности 
:(
    Опции темы
Dims
Дата 22.8.2007, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Пусть есть n объектов a_1, a_2, ... a_n. Это не переменные, а терминальные (конечные) объекты. 

Рассмотрим конъюнкции, составленные из равенств и неравенств (отрицаний равенств) между этими объектами. Равенство (в пределах конъюнкции) обладает обычными свойствами: объект равен сам себе, коммутативность, транзитивность.

Естественно, не все сочетания совместимы, так как, например, (a_1=a_2)*(a_1=a_3)*(a_2<>a_3) = 0. Кроме того, (a_1=a_2)*(a_1=a_3)*(a_2=a_3) = (a_1=a_2)*(a_1=a_3), (a_1=a_2)*(a_1<>a_2)=0 и так далее.

Каждая конъюнкция должна быть "полной", то есть, соответствовать одному разбиению множества {a_1, a_2, ... a_n} на классы эквивалентности. Ясно, что некоторые разные конъюнкции соответствуют одним и тем же разбиениям. 

Можно заметить, что каждую конъюнкцию можно представить в виде графа, где ребро означает равенство, а отсутствие -- неравенство. 

Теперь рассмотрим произвольное подмножество всех таких конъюнкций и составим из них дизъюнкцию.

Можно заметить, что это выражение можно представить в виде как бы наложения нескольких графов один на другой. Если ребро присутствует во всех членах, то оно получается "жирным", а если не во всех, то "бледным". Если ребро во всех членах отсутствует, то в наложении мы тоже "увидим" чистый промежуток между узлами. Но, естественно, этот образ не даёт полного описания ситуации, так как при одной и той же степени бледности двух рёбер, они могут появляться в разных членах.

Вопрос в том, как такое, во-первых, хранить, а, во-вторых, выполнять с ним основные логические операции (и, или, не)?

Проблема в том, что возможных конъюнкций очень много. Их количество описывается так называемыми числами Бернулли. То есть, например, при 20 объектах может быть составлено 51724158235372 разбиений и ещё больше конъюнкций.

Поэтому, видимо, требуется постоянно упрощать выражение. 

Задача упрощения логического выражения в общем случае тоже очень сложна. Так, алгоритм МакКинси практически не применим для более чем 6-7 переменных. Проблема в том, что в этом алгоритме требуется преобразовывать выражение в полную нормальную дизъюнктивную или конъюнктивную формы, а в них тоже очень много членов.

Возникает вопрос: ведь в данном случае у нас не произвольные переменные, а только равенства или неравенства, между которыми есть дополнительные упрощающие соотношения и ограничения целостности. Не может ли это сделать задачу более подъёмной?

Можно зайти с другой стороны. Хранить в отдельности каждое разбиение на классы эквивалентности и написать логические процедуры для них. Но здесь тоже получаются непростые выражения и при этом совсем непонятно, как с ними работать. Какие алгебраические действия возможны над разбиениями? Как их упрощать? И так далее.

Буду благодарен за любую помощь, ссылки и т.п.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0698 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.