Теория нечётких множеств, Операции над нечёткими числами

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

Министерство образования Российской Федерации

Государственное образовательное учреждение высшего

 профессионального образования

«Комсомольский-на-Амуре Государственный Технический Университет»

Факультет Компьютерных Технологий

Кафедра МОП ЭВМ

Лабораторная работа  5

по курсу «Теория вычислительных процессов»

Выполнил студент группы  1ВТ-1:                                                                 Журавлёв Д.А.

Преподаватель:                                                                                              Абарникова Е.Б.

2004

Тема:             Теория нечётких множеств. Операции над нечёткими числами.

Цель:             Научиться производить операции над нечёткими числами.

Задание:        Разработать программу для нахождения разности двух нечётких чисел.

Теоретическое описание

Нечёткое множество – это множество, состоящее из пар следующего вида: (x, µA(x)), где x – количественная характеристика, а µA(x)- функция принадлежности (µA(x) є [0; 1]).

Нечёткое число отличается от нечёткого множества только областью задания. Для нечёткого числа x є R.

Разность нечётких чисел осуществляется следующим образом:

Описание программы

После запуска программы, появляется окно с меню и текстовыми полями для входных данных. После выбора в меню «Файл» пункта «Выполнить», вызываются предикаты подготовка(), который преобразует входные данные в удобный вид для вычисления (к списку структур нечеткое_число). Далее два списка нечетких_чисел передаются в предикат начало(), который вызывает:

-  предикат проверка(), который проверяет на правильность входных данных;

-  предикат реверс() обращает список для последующих вычислений;

-  предикат min_max_el() осуществляет поиск минимального (максимального) значения нечеткого числа. Это необходимо для определения границ получаемого нечеткого числа;

-  предикат разность(), который как раз и производит вычитание нечётких чисел по формуле, приведённой в «Теоретическом описании»;

-  предикаты число_слова() и число_строка(), которые преобразуют полученный результат к необходимому текстовому;

-  выводит результат в соответствующее поле на основной форме;

Листинг программы.

DOMAINS

элемент = integer

принадлежность = real

нечеткое_множество = нечеткое_число*

нечеткое_число = нечеткое_число(элемент, принадлежность)

PREDICATES

подготовка(string, string, string, string, string, string, string, string, string, string, нечеткое_множество) - (i, i, i, i, i, i, i, i, i, i, o)

начало(нечеткое_множество, нечеткое_множество, WINDOW) - (i, i, i)

проверка(нечеткое_множество) - (i)

проверка_сорт(нечеткое_множество) - (i)

проверка_полноты(нечеткое_множество) - (i)

реверс(нечеткое_множество, нечеткое_множество, нечеткое_множество) - (i, i, o)

min_max_el(нечеткое_множество, нечеткое_множество, элемент) - (i, i, o)

min(принадлежность, принадлежность, принадлежность) - (i, i, o)

max(принадлежность, принадлежность, принадлежность) - (i, i, o)

разность(нечеткое_множество, нечеткое_множество, нечеткое_множество, нечеткое_множество, элемент, элемент, принадлежность, нечеткое_множество, нечеткое_множество) - (i, i, i, i, i, i, i, i, o)

число_строка(нечеткое_множество, string, string) - (i, i, o)

число_слова(нечеткое_множество, нечеткое_множество, принадлежность, string) - (i, i, i, o)

поиск_слова(нечеткое_множество, нечеткое_множество, принадлежность, string) - (i, i, i, o)

CLAUSES

/*подготовка*******************/

подготовка("", Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, Epr5, А):!, подготовка("0", Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, Epr5, А).

подготовка(Eel1, "", Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, Epr5, А):!, подготовка(Eel1, "0", Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, Epr5, А).

подготовка(Eel1, Epr1, "", Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, Epr5, А):str_int(Eel1, El1_int),

El2_int = El1_int + 1,

str_int(Eel2, El2_int),

!,          подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, Epr5, А).

подготовка(Eel1, Epr1, Eel2, "", Eel3, Epr3, Eel4, Epr4, Eel5, Epr5, А):!,    подготовка(Eel1, Epr1, Eel2, "0", Eel3, Epr3, Eel4, Epr4, Eel5, Epr5, А).

подготовка(Eel1, Epr1, Eel2, Epr2, "", Epr3, Eel4, Epr4, Eel5, Epr5, А):str_int(Eel2, El2_int),

El3_int = El2_int + 1,

str_int(Eel3, El3_int),

!,          подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, Epr5, А).

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.