0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 9
1

Операции с нечеткими множествами(объединение, пересечение, дополнение, разность) [SWI Prolog]

21.05.2011, 15:54. Показов 5131. Ответов 9
Метки нет (Все метки)

Помогите пожалуйста сделать операции над нечеткими множествами в swi-prolog (объединение, пересечение, дополнение, разность).
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2011, 15:54
Ответы с готовыми решениями:

Реализовать базовые операции над множествами: объединение, пересечение, дополнение
Вот как звучит задание: "Объект: множество символов алфавита. Реализовать базовые операции над...

Выполнение основных операций (объединение, пересечение, разность, дополнение до заданного универсума) над множествами
Написать программу, которая позволяет выполнить основные операции (объединение, пересечение,...

Реализовать операции над множествами: объединение, пересечение, разность
Модуль. Разработать способ представления множеств, содержащих более 255 элементов. Реализовать...

Реализовать классические операции над множествами - объединение, пересечение и симметричная разность
Создать параметризованный тип данных - множество. Этот тип предназначен для хранения множества...

9
92 / 92 / 6
Регистрация: 04.05.2011
Сообщений: 171
21.05.2011, 16:15 2
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*Show list by element*/
    show_list([]) :- !.
    show_list([H|T]):-write(H),nl,show_list(T).
 
    /*Add element in head of list*/
    add_elem(X,Tail,[X|Tail]).
    
    /*Is there such element in this list?*/
    member(X,[X|T]).
    member(X,[_|T]) :- member(X,T).
 
    /*Delete element*/
    remove(X,[X|Tail],Tail).
    remove(X,[Y|Tail],[Y|Tail1]) :- remove(X,Tail,Tail1).
 
    /*Unite lists*/
    add([],LIST,LIST).
    add([H|T], LIST,[H|App_T]) :- add(T,LIST,App_T).
 
    /*Kill double elements*/
    kill([],My_List,RES_LIST):- RES_LIST is My_List.
    kill([H|Tail],My_List,RES_LIST):- member(H,My_List),!,remove(H,My_List,M),
                       kill(Tail,M,RES_LIST); kill(Tail,My_List,RES_LIST).
    
    /*Append lists*/
        % Можно использовать стандартный append/3
    append(List1,List2) :- kill(List1,List2,List_M),add(List1,List_M,Res_List),
                   write('Res_List= '),write(Res_List),nl.
 
    /*Cross lists*/
    cross(List1,List2) :- kill(List1,List2,RES_DIFF), kill(RES_DIFF,List2,RESULT),
                  write('Res_List= '),write(RESULT), nl.
        
    /*Minus lists*/
    minus(List1,List2) :- kill(List2,List1,RES_LIST),
                  write('Res_List= '),write(RES_LIST),nl.
 
    /* Dekart */
    cart([A|X1],[B|X],X2,[[A,B]|C]) :- !,cart([A|X1],X,X2,C).
    cart([A|X1],[],X2,C) :- !,cart(X1,X2,X2,C).
    cart([],_,_,[]).
    
    decart(List1,List2) :- cart(List1,List2,List2,Res), 
                write('Res_List= '),write(Res), nl.
2
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 9
21.05.2011, 17:44  [ТС] 3
спасибо, объясни еще пожалуйста какие запросы для объединения, пересечения, дополнения и разности?
0
92 / 92 / 6
Регистрация: 04.05.2011
Сообщений: 171
21.05.2011, 18:08 4
Комментарии же есть.
append, cross, minus.
Дополнение можно через разность вывести.
0
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 9
22.05.2011, 13:36  [ТС] 5
можно еще объяснить как задавать сами множества, а то у меня все врем выдает false
0
92 / 92 / 6
Регистрация: 04.05.2011
Сообщений: 171
22.05.2011, 16:03 6
Похожая тема.
Разность списков
Здесь я оставил более подробное описание.
0
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 9
22.05.2011, 18:36  [ТС] 7
так там же обычные множества, а у меня нечеткие и я понять не могу как задать эти множества в запросе, если не сложно напиши пример запроса. Извиняюсь за назойливость)
0
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 9
26.05.2011, 18:58  [ТС] 8
Скажите пожалуйста как именно вводить запрос, очень нужно!!!
0
92 / 92 / 6
Регистрация: 04.05.2011
Сообщений: 171
26.05.2011, 19:08 9
Prolog
1
? - append([1,2],[3,4],L).
или
Prolog
1
? - member(1,[1,2,3]).
И так далее.
0
Vaginshtain
31.03.2013, 20:39 10
Помогите написать предикат, который формирует список из элементов которые есть в двух заданных списках.
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2013, 20:39
Помогаю со студенческими работами здесь

Работа с множествами: объединение, пересечение, симметрическая разность
В общем нужно задать 3 множества (a,b,c) (массивы) И на выходе получить ("A" объединение с "B")...

Выполнить операции над множествами (объединение, пересечение, разницу)
над множествами 1 и 2 выполнить - объединение ,пересечение , разницу mnoj1\mnoj2 и mnoj2\mnoj1(ну...

Операции над нечеткими множествами С++
Ребята подскажите кодом или литературой,примерами кода по данному вопросу. Спасибо

Создать программу, которая позволяет осуществить все операции над элементами множеств: пересечение, объединение, разность, проверку эквивалентности и
Создать программу, которая позволяет осуществить все операции над элементами множеств: пересечение,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru