Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
matlog.doc
Скачиваний:
8
Добавлен:
14.04.2019
Размер:
853.5 Кб
Скачать

Вероятностные логики

В вероятностных логиках всем логическим формулам приписывается вероятность. Здесь вероятность вновь соответствует законам Байеса.

Рассмотрим три логических формулы в логике высказываний: A, AB, B. Представим следующие вертикальные вектора.

где (1) – мир истинности A, AB, B,

(2) –мир истинности A, и лжи AB, B,

(3) – мир лжи A и истинности AB, B,

(4) – мир лжи A, B и истинности AB

Эти три логических формулы подобраны так, что возможны только эти четыре случая (когда нет противоречий). Это так называемые возможные миры (миры с возможностью интерпретации). Все другие миры – например, A, AB истина, B ложь – это миры, содержащие противоречие.

Если выбрать один из возможных миров, то образуется традиционная двузначная логика. В вероятностной логике рассматриваются состояния, когда одновременно с некоторой вероятностью могут существовать несколько возможных миров. Например, пусть вероятность, с которой возможна интерпретация в мире (1), равна 0.4, а вероятности интерпретации в мирах (2), (3), (4) равны соответственно 0.3, 0.2, 0.1 (сумма вероятностей возможных миров равна 1), тогда представим следующим образом вектор вероятностей возможных миров:

И наоборот, если существует группа логических формул, каждой из которых приписана вероятность, то эту группу можно считать упорядоченной (непротиворечивой), только когда возможно вероятностное существование соответствующих возможных миров.

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

А именно, эти вероятностные возможные миры имеют состояние «истина» с вероятностью 0.7 (A), 0.7 (AB) и 0.6 (B).

Пусть задана вероятность и вероятность , тогда вероятность должна находиться в диапазоне:

Нечеткие логики

Пусть U полное множество, охватывающее всю проблемную область.

Нечеткое множество F множества U определяется через функцию принадлежности (u элемент множества U). Эта функция отображает элементы u множества U на множество чисел в отрезке [0, 1], которые указывают степень принадлежности каждого элемента нечеткому множеству F.

Если полное множество U состоит из конечного числа элементов , то нечеткое множество F можно представить в следующем виде:

В случае непрерывного множества U вводится следующее обозначение:

Например, пусть полное множество – это множество людей в возрасте 0 – 100 лет, функции принадлежности нечетких множеств, означающих возраст: «молодой», «средний», «старый» можно определить:

При записи через десять лет получим приблизительно следующее:

Молодой = 1/0 + 1/10 + 0.8/20 + 0.3/30

Средний = = 0.5/30 + 1/40 + 0.5/50

Старый = = 0.4/50 + 0.8/60 + 1/70 + 1/80 + 1/90

Определим понятие дополнения, объединения и пересечения для нечетких множеств:

1.Дополнение множества.

или

2.Объединение множества.

или )

3.Пересечение множеств.

или

Например, для нечетких множеств «молодой» и «средний» получим:

(молодой средний) =

(молодой средний) =

При выполнении нечетких выводов необходимо знать нечеткие отношения. Нечетким отношением R между некоторой проблемной областью (полным множеством U) и другой областью (полным множеством V) называется нечеткое подмножество декартового произведения U X V, определяемое следующим образом:

Здесь

Допустим, что существует правило «если F, то G», использующее нечеткие множества FU, GV, тогда один из способов построения нечеткого отношения состоит в следующем:

(1)

или

Например, пусть U и V - это области натуральных чисел от 1 до 4, тогда определим следующим образом нечеткие множества F = маленькие, G = большие.

U = V = {1, 2, 3, 4},

F = маленькое =

G = большие =

Если есть правило: «если u маленькое, то v большое» (FG), то можно следующим образом построить нечеткое отношение:

В качестве элементов матрицы указаны записаны значения принадлежности, указанные в числителе формулы (1).

Для свертки нечетких отношений, необходимых при выводах с помощью цепочки правил, часто применяется свертка max – min. Пусть R – нечеткое отношение на области U в область V, а S – нечеткое отношение из области V в область W. Тогда нечеткое отношение из U в W определяется как свертка:

Знак  означает свертку max – min, знак  - взятие максимума для всех , знак  - взятие минимума.

Например, допустим, что для W = {1, 2, 3, 4} определено нечеткое множество H W = очень_большое = .

Тогда если есть правило: «если v не_маленькое, то w очень_большое» ( , то в соответствии с тем, что и (1) получим, что отношение S из V в W равно:

Если теперь вычислить свертку с нечетким отношением R, то из двух правил:

«Если u маленькое, то v большое»

«Если v не_маленькое, то w очень_большое»

построим следующее нечеткое отношение из U в W:

Традиционный дедуктивный вывод (называемый также modus ponens – правило отделения) это вывод Q из P по правилу PQ, что записывается как:

Это же обозначение используется в случае нечетких дедуктивных выводов, если знания это нечеткие множества ( ). А именно, вывод из по правилу FG записывается как:

Эта задача имеет существенную особенность: множества F и Fне обязательно совпадают. Если F и F близки к друг другу, то их можно более или менее сопоставить и получить вывод G, так сказать, в их сфере совпадения. Конкретно нечеткие выводы представляются следующим образом.

Прежде всего, определим нечеткое отношение для правила FG. Вывод Gопределяется из свертки max – min нечеткого множества Fи отношения R:

Рассмотрим пример. Пусть:

U = V = {1, 2, 3, 4}

F U = маленькие =

G V = большие =

Кроме того, пусть:

F= около 2 =

При условиях:

«Если u маленькое, то v большое» (FG)

«u около 2» (F)

определим «каково v». Из этих правил определим отношение R из U в область V:

Определим вывод G:

Таким образом, получаем ответ «v это G», где

Говоря другими словами, ответ – «до некоторой степени большое». Примерно такие же выводы делаем и мы.

Преимущества нечеткой логики проявляются тогда, когда система анализируется с помощью лингвистических правил. В качестве примера рассмотрим алгоритм QoS (алгоритм качества обслуживания), который управляет выходом данных по определенному каналу связи. Его задача состоит в том, чтобы обеспечить для программы постоянную пропускную способность канала. Если программа пытается отправить слишком много данных, необходимо снизить скорость передачи. С точки зрения управления можно выделить три элемента. Первый элемент – это скорость поступления данных из программы, второй элемент – измеряемый коэффициент использования канала, а третий – шлюз, который контролирует поток данных между программой и каналом связи.

Задача анализа заключается в том, чтобы определить, когда и сколько пакетов данных пропустить через канал.

Эту задачу можно оценить с помощью простых правил:

  1. Если коэффициент использования программы слишком велик, для нее следует уменьшить скорость пропуска пакетов через шлюз.

  2. Если коэффициент использования программы слишком низок, для нее следует увеличить скорость пропуска пакетов через шлюз.

Э ти правила показывают, что существует мертвая зона между высоким и низким использованием пропускной способности. Вопрос заключается в том, как определить понятия высоко или низко для программы. Как мы видели, нечеткая логика определяет эти понятия с помощью функции принадлежности.

Из этого графика низкое значение можно определить как:

Высокое значение:

Таким образом, имеем (сл.стр.):

Достаточно простой механизм позволяет включить функцию принадлежности в коэффициент, который используется механизмом шлюзов.

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

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

П

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

m_low(x)

m_high(x)

80

1

0

85

0.75

0

90

0.5

0

95

0.25

0

100

0

0

105

0

0.25

110

0

0.5

115

0

0.75

120

0

1

еременная rate – это текущее количество пакетов, которым разрешается проходить через шлюз в заданное время (1 сек.). Константа pdelta – изменяющийся параметр, определяющий количество пакетов, которое может быть добавлено в коэффициент или удалено из него.

Рассмотрим пример, для которого используется константа pdelta = 10.

Если значение rate = 110, то получим:

rate = 110 + (0 * 10) – (0.5*10) = 105

На следующей итерации получим:

rate = 105 + (0 * 10) – (0.25 * 10) = 102.5

Процесс будет продолжаться пока не будет получено 100, которое указывает, что дальнейшее изменение коэффициента производиться не будет.

Если rate = 80, получим rate = 80 + (1*10) – (0*10) = 90

Рассмотрим другой пример. В нем задача состоит в том, чтобы задать набор функций принадлежности, которые позволяют хищнику выследить жертву и ее поймать. Для управления функцией принадлежности будут использоваться угол ошибки (отображающий разницу между текущим направлением движения хищника и текущим направлением движения жертвы).

Важным элементом при использовании нечеткой логики являются ограничители. Они предоставляют системе с нечеткой логикой дополнительные лингвистические конструкции при описании правил и позволяют поддерживать математическое постоянство. Рассмотрим, например, функцию ограничитель very (очень) и not very (не очень). Они используются вместе с функциями принадлежности и изменяют их значения в зависимости от поставленных задач. Пусть имеем:

Тогда для примера, если коэффициент равен 115, значение m_high = 0.75

Если применить very, получаем:

Very(m_high(rate))=0.5625

При создании приложений, использующих нечеткую логику, обычно задают ряд стандартных функций принадлежности. Например, spikeProfile – функция принадлежности в виде треугольника. Параметры этой функции l0 и hi, которые определяют базовые точки треугольника. Высшая точка задается как hi/2.

Второй часто используемой функцией является функция plateauProfile, задающая трапецию.

Операторы нечеткой логики схожи с обычными булевыми функциями. Они позволяют расширить возможности системных операторов. Разработчики системы могут упростить сложность системы, используя нечеткую логику, поскольку они позволяют моделировать комплексные программы с большим количеством входов и выходов.

Наиболее популярные области применения нечетких логик – это системы управления, в устройствах видеокамер и фотоаппаратов с автофокусировкой, системах смешивания, например, цемента, автомобильных системах и т.д.

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

В режиме подзарядки в батарею поступает очень небольшое количество тока, что приводит к неполной зарядке батареи. В режиме зарядки весь доступный ток направляется в зарядное устройство.

С точки зрения СУ следует определить, когда нужно переходить в режим быстрой зарядки, а когда – в режим подзарядки. При зарядке температура батареи повышается. Если батарея полностью заряжена, дополнительный ток, проходящий через нее, будет приводить к ее нагреву. Поэтому, если батарея нагревается, можно считать, что она полностью заряжена, а следовательно, надо перейти в режим подзарядки. Кроме того, можно измерить напряжение батареи, чтобы определить, достигла ли она предела, а затем переключиться в режим подзарядки. Если батарея не нагрелась и не достигла предела по напряжению, следует перейти в режим полной зарядки. Это упрощенные правила.

Состояние батарей отслеживают два датчика: датчик напряжения и датчик температуры. Для управления зарядкой используются следующие правила нечеткой логики:

  1. if m_voltage_high(voltage) then mode = trickle_charge

  2. if m_temperature_hot(temperature) then mode = trickle_charge

  3. if ((not(m_voltage_high(voltage)))) and (not(m_temperature_hot(temperature)))) then mode = fast_charge

Зададим функции принадлежности:

Здесь не учитываются другие технические характеристики батарей.

48

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]