Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора информатика.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

44. Нечеткая логика. Ф. Принадлежности. Ф. Ограничения. Основные операции в нечеткой логике.

НЛ (Fuzzy logic) была придумана для того, чтобы позволить программам работать в диапазоне различных степеней истины. Вместо двоичных систем, отображающих только истину и ложь, были введены степени истины, которые действуют в диапазоне от 0,0 до 1,0 включительно. В качестве примера рассмотрим алгоритм качества обслуживания, кот-ый управляет выходом данных по определенному каналу связи. Его задача состоит в том, чтобы обеспечить для программы постоянную пропускную способность, канала. Если программа пытается отправить слишком много данных, необходимо снизить скорость передачи. С точки зрения управления м. выделить три элемента. 1-й элемент - это скорость поступления данных из программы,2-й элемент - измеряемый коэф-т испол-ия канала, а 3-й - шлюз, кот-й контролирует поток данных между программой и каналом связи. З-ча шлюза заключается в том, чтобы определять, когда и сколько пакетов данных м.б. пропущено ч/з канал.

Вопрос заключается в том, как определить понятия «высоко» или «низко» для программы? НЛ опр-ет эти понятия с помощью функций принадлежности.(куча)

ФП (Membership function) опр-ет степень принадлежности (степень истины) заданного условия. Рассмотрим задачу регулирования скорости прохождения пакетов по каналу. Алгоритм QoS позволяет получить функцию принадлежности для использования канала следующим образом:

На рис. представлено два сегмента, между которыми находится третий (цель). Обозначим rate - это текущее кол-во пакетов, к-рым разрешается проходить ч/з шлюз в заданное время (одну секунду).

Низ. знач. скорости м.б. задано, как показано в выражении:

m_low(x) = {

0, если rate(x) >= 100 (1)

(l00-rate(x))/20 если rate(x) > 80 и rate(x) < 100

1, если rate(x) <= 80.

}

Выс. знач. может быть задано так, как показано в выражении:

m_high(x) = {

0, если rate(x) <= 100 (2)

(rate(x)-100)/20 если rate(x) > 100 и rate(x) < 120

1, если rate(x) >= 120.

}

Нечеткое управление

В таб. представлены знач-я ФП в зависимости от скорости прохождения данных.

Скорость передачи пакетов

m_low(x)

M_high(x)

10

1,0

0,0

85

0,75

0,0

90

0,5

0,0

95

0,25

0,0

100

0,0

0,0

105

0,0

0,25

110

0,0

0,5

115

0,0

0,75

180

0,0

1,0

С помощью двух ФП м. задать степень прин-ти для определенной скорости пропуска данных. Как же с помощью этой степени управлять скоростью пропуска пакетов данных и сохранять постоянный уровень сервиса? Очень простой механизм позволяет включить степень принад-ти в коэф-т, который используется алгоритмом шлюза.

Функ. Опр-ет, сколько пакетов данных м. пройти ч/з шлюз в заданный промежуток времени (например, за одну секунду). Каж/ секунду кол-во пакетов данных, кот-м разрешается пройти ч/з шлюз, регулируется т.о., чтобы поддерживалось постоянство. Если коэф-т использования слишком высок, кол-во пакетов умен-ся. В противном случае кол-во пакетов увел-ся. Механизм состоит в том, чтобы использовать степень принад-ти в качестве коэф-та, кот-й применяется к дельте от кол-ва пакетов данных. Рассмотрим уравнение 9.3:

rate = rate + (m_low(rate) * pdelta) - (m_high(rate) * pdelta)(3)

Кон-та pdelta - изменяемый параметр, опр-щий мак-ое кол-во пакетов, кот-е м.б. добавлено в коэф-т или удалено из него.

Т.о, при использовании степени принад-ти в качестве коэф-та изменения скорости получается простой механизм упр-я. Обычное построение функ-и принадл-ти в виде прямой соединяющей 2 точки не всегда соотв-ет действ-и. Вместо прямой можно использовать любые линии, например, SQR и SQRT.Функции ограничения

Важным элементом систем НЛ явл-ся ограничители (Hedge) ФП. Рассмотрим функции-ограничители VERY и NOT_VERY. Они используются вместе с ФП и изменяют их значения в зависимости от поставленных задач. В качестве ФОг можно взять:

VERY(m_x) = SQR(m_x) (4)

NOT_VERY(m_x) = SQRT(m_x) (5)

Аксиомы нечеткой логики

Аналогично булевой логике, НЛ имеет набор базовых операторов. Они совпадают с булевыми, но действуют по-другому. Аксиомы НЛ представлены в таблице:

Оператор

Формула вычисления

Truth(A OR В)

MAX(truth(A), truth(B))

Truth(A AND В)

MIN(truth(A), trirth(B))

Truth(NOT A)

1,0-truth(A)

Эти операторы обеспечивают основу для операций НЛ. Пример условия: if (m_warm(board_temperature)AND m_high(fan_speed) ) then ... Эта форма не очень удобна для чтения, но помогает точнее оценивать состояние системы.

Зачем использовать нечеткую логику

НЛ имеет огромное значение при создании ПО, кот-е использует вместо четких значений приблизительные. Поскольку человеческая логика сама по себе яв-ся приблизительной, при проектировании систем легче использовать НЛ, чем детерминированные алгоритмы.