Анимация
JavaScript
|
Главная Библионтека 35Q Нечеткие компьютеры и прсгтмте обеспечение бедный (Деньги) {1/(0), 1/(50), 0.85 (80), 0.8/(100), 0 7/ /(120), 0,55/(140), 0.35/(160), 0.1/(180) 0/(200), 0/(10000000)} повторить #1о Числа в скобках обозначают денежный вклад в десятках тысяч йен, смысл других чисел тот же, что и выше. Допустим, имеются данные о трех девушках и дву юнощах. Например, Ёсинага: девушка, возраст-33 года вклад -13 млн. йен. Это запршем так: /*Имена, возраст и вклад (х 10000 йен) клиентов*/ девушка (Ёсинага, 33, 1300). Для двух других девушек Ямасита и Исида запишем аналогично: девушка (Ямасита, 25,350). девушка (Исида, 20, 60). Для двух юношей Танака и Сато запишем: юноша (Танака, 42, 4000). юноша (Сато, 26, 250). При этом имеются все данные о фактах. Факты о юношах и девушках установлены достоверно, поэтому все они имеют меру истинности, равную 1 (в этом случае 1 будем опускать). Теперь зададим правила. Пусть Ёсинага считает, что ее другом может быть богатый юноша, независимо от возраста. Аналогично Ямасита хотела бы иметь молодого и небедного друга, а Исида-молодого, но только богатого друга. Эти правила запишем на нечетком Прологе следующим образом: /*Деэушкр, которые хотят найти друга*/ друг (Ёсинага, Юноша):-юноша (Юноша, , Деныи), бргатьгй (Деньги), друг (Ямасита, Юноша):-юноша (Юноша, Возраст, Деньги), не (бедный (Деньги)), молодой (Возраст), друг (Исида, Юноша):-юноша (Юноша, Возраст, Деньги), богатый (Деньги), молодой (Возраст). Пусть юноши ставят следующие условия своим подругам: /* Юноши, которые хотят найти подругу*/ подруга (Танака, Девушка):-девушка (Девушка, Возраст, ), молодой (Возраст). Глдвд б подруга (Сато, Девушка):-девушка (Девувдка, ). Наконец, для взаимного поидка установим следующее правило. /♦Правило для знакомства юнощи и девупши, которые хотят быть друзьями */ 3H3JfOMQTpo (Юноша, Девушка): - подруга (Юноща, Девушка), друг (Девушка, Юоша) (0.6, 1}. Числа (0.6, I) в конце правила обознг1чают вес правила. О нем мы скажем чиже. Метод вывода в нечетком Прологе До сих пор определялись факты и правила для знакомств ва. Зададим теперь несколько вопросов. Вопрос 1. Кто из юношей богатый? •7-юноша (Юноша, Деньги), богатый (Деньги). (Юноща =Танака, Деньги = 4000) {МТ= 1.0000, Т = = 1.0000 с CONF = = 1.0000} (Юноша = Сато, Деньги = 250) {МТ = 0.3200, Т = 0.2000 с с CONF = 0.6000} 3.2есь Г-значение истинности ответа, CONF-степень досточерно<?ги резолюции в.1В0да, по которой получен ответ, МТ-суммарное значение истинности. Первые два значения точные и должны рассматриваться отдельно, но очевидно, что их лучше обьедицить э одно значение, поэтому определим следующим образом МТ: при Т= 0,5 и CONF = О обычно Л/Г должно быть равным 0,5. этого требования получаем МГ= Сг X CONF X 0,5 0,5 = = (2Г- 1) X CONF X 0,5 + 0,5. В данном примере Танака - безусловно богатый. Сато имеет вклад 2,5 млн. йец. Значение функции принадлежности для «богатый (250)» равно 0,2, а значение истинности при этом п7(п Чое слово вывода в этом случае - «богатый» У- 0)», степень достоверности резолюции по определению равна CONF = С,„„,,,,,з„ = (0,2 - 0,5)1 х 2 = 0,6. Таким образом, суммарное значение ист1р1ности МТ= (2 X 0,2 - 1) X 0,6 X 0,5 + 0,5 = 0,32. Здесь значение МГменьшее 0,5 означает «небогатый». Обратите внимание на то, что выдаются и отрицательные результаты. В Прологе, использующем двузначную логику, вьщача такого результата невозможна. Это одна из особенностей нечеткого Пролога. Вопрос 2. Кто из девушек молодая? ?-девушка (Девушка, Возраст, ), молодой (Возраст). (Девушка =Ёсинага, Возраст = 33) {МТ= 0.3318, Г=0,2Г00 с CONF = 0.5801} (Девушка = Ямасита, Возраст = 25) {МГ= 0.9922, Г= 0.9961 с CONF = 0.9922} (Девушка = Исида, Возраст = 20) {МТ= 0.9895, Г= 0.9845 с CONF = 0.9690} КОНЕЦ В этом случае ответы с девушками Ямасита и Исида почти истинны, а для Ёсинага получен отрицательный результат. Вопрос 3. Кого с кем можно познакомить? ?-знакомство (Юноша, Девушка). (Юноша = Танака, Девушка = Ёсинага) {МГ= 0.2100, Г= 0.0000 с CONF = 0.5801} (Юноша = Танака, Девушка = Ямасита) {МГ= 0.0039, Г= 0.0000 с CONF = 0.9922} (Юноша = Танака, Девушка = Исида {МТ= 0.0155, Г= 0,0000 с CONF = 0.9690} (Юноша = Сато, Девушка = Ёсинага) {МГ= 0.2000, Г= 0.0000 с CONF = 0,6000} (Юноша = Сато, Девушка = Ямасита) {МГ= 0.8953, Г= 1.0000 с CONF = 0.7906} (Юноша = Сато, Девушка = Исида) {МТ= 0.2000, Г= 0.0000 с CONF = 0.6000} Кроме пары Сато и Ямасита все ответы отрицательные, т. е. мала вероятность знакомства. МГможно интерпретировать как меру этой вероятности. Например, попробуем проследить вывод пары Сато и Ёсинага. Предпосылки правил для поиска друга: подруга (Сато, Ёсинага) и друг (Ёсинага, Сато), соответствующие значения истинности-1, значение истинности богатый (250) 0,2, \Ср\ < нижняя граница => вывод невозможен. в качестве значения истинности предпосылок выбираем меньшее-0,2. Скажем несколько слов о весах правил. Правилам можно присвоить произвольное числовое значение из [О, 1]*. Это значение, или вес, определяет «меру истинности заключения, если истинна предпосылка». Для его вычисления используют формулу Вес правила = Степень достоверности предпосылки х Степень достоверности заключения. С помощью этой формулы по степени достоверности предпосылки вычисляют степень достоверности заключения. Для веса можно указать некоторый интервал значений. Например {0,6; 1}, добавленный к правилу, означает, что верхняя граница веса равна 1, а нижняя-0,6. Степень достоверности Cq заключения Q правила Р ~* Q (верхняя граница, нижняя граница} при условии, что задана степень достоверности Ср предпосылки Р, вычисляется по формулам: (6.13) \Cp\ICp, (6.14) • Cq = верхняя граница/Ср. (6.15) Если вес опущен, он предполагается равным (О, 1}. В указанном выше примере степень достоверности предпосылки равна (0,2 - 0,5) X 2 = -0,6, степень достоверности заключения из формулы (6.14) равна - 1, т. е. значение истинности равно 0. Степень достоверности резолюции в этом случае определяется по ключевому слову богатый (250) и равна 1 -0,6 = = 0,6. Заключение В нечетком Прологе, с которым мы ознакомились выще, можно получать заключения со значениями истинности и степенями достоверности резолюций. Кроме того, можно оперировать даже с операторами, имеющими значения истин- нижняя граница < Ср < верхняя граница = I Ср > верхняя граница: * Фактически допускается также отрицательный вес, он означает меру лжи (истинности) заключения в случае истинной (ложной) предпосылки. 23-6830 niuLisp-86-торговая марка фирмы Soft Warehouse. MS-DOS-торговая марка фирмы Microsoft. • предусмотрено множество встроенных функций обработки дечетких множеств; - возможно определение собственных функции обработки нечетких множеств; ф функции Лиспа используются также для нечетких множеств и наборов значений (вычисления по принципу расширения [32]); Ф без изменения используются почти все возможности Лиспа и т. п. Ниже возможности этой системы рассмотрены на нескольких примерах. Пример 1. Представленве нечетких множеств и нечетких отаошений. В данной системе нечеткие множества записываются с помощью скобок { }, а нечеткие отношения-с помощью скобок { } и < > как набор нечетких множеств. Например, нечеткое множество: (0.1/а, 0.2/Ь, 0.3/с}, нечеткое отношение: {0.3/<о, 1>, 0.9/<fc, 2>, 0.1/<с, 3>}. Для замены этих понятий на переменные используется функция Лиспа setq. Для замены нечетких множеств на переменные F] и F2 можно записать ->(setq F1 {0.1/а, 0.2/Ь, 0.3/с}) {0.1/А, 0.2/В, 0.3/С} ->(setq F2 {0.7/b, 0.2/с, 0.4/d}) {0.7/В, 0.2/С, 0.4/D} а для замены нечетких отношений на Л1 и R2 ->(setq R1 {0.3/<а, 1 >, 0.9/<Ь, 2>, 0.1/<с, 3>}) {0.3/<А, 1>, 0.9/<В, 2>, 0.1/<С, 3>} ->(setq R2 {0.5/<b, 2>, 0.8/<с, 3>, l/<d, 4>}) (0.5/<В, 2>, 0.8/<С, 3>, 1/<D, 4>} Здесь -» обозначает подсказку из системы. Таким образом, если вслед за подсказкой пользователь введет подчеркнутую строку, то система подсчитает (в Лиспе эта операция называется Оценкой) входные данные пользователя и вьвдаст на экран эти значения в следующей строке. Автоматически НОСТИ меньше 0,5, что совершенно невозможно в Прологе построенном на двузначной логике. В качестве метода вычисления степени достоверности заключения или значения истинности кроме указанного выше метода можно использовать и другие, но оправдать выбор того или иного метода можно, лишь полагаясь на интуицию или проведя ряд экспериментов. В действительности существует немало типов нечеткостей и задача заключается в том, чтобы уточнить, что означает нечеткость объектов, которые мы собираемся использовать в нечетком Прологе. 6.2.3. СИСТЕМА ОБРАБОТКИ НЕЧЕТКИХ МНОЖЕСТВ НА ЛИСПЕ При реализации прикладной системы [15], основанной на нечетких множествах [28], прежде всего необходимо написать подпрограммы представления и обработки на компьютере нечетких множеств, а затем уже строить соответствующую прикладную систему. Организация представления и обработки нечетких множеств конкретного типа не так сложна [16], но если используются также нечеткие отношения, то это уже представляет определенные трудности. Достаточно сложно реализовать использование нечетких множеств второго рода (нечетких множеств, оценка которых также является нечетким множеством) или нечетких множеств второго уровня (нечетких множеств, элементы которых являются нечеткими множествами). Мумано и др. [29-31] построили систему, которая позволяет обрабатывать традиционные нечеткие множества на базе языка Лисп. Эта система имеет несколько версий. Ниже мы опишем систему на базе muLisp-86(работающей под управлением MS-DOS ) на компьютерах серии РС-9800. Особенности этой системы: • возможно представление и обработка почти всех предложенных до сих пор нечетких множеств и нечетких отношений; • нечеткие множества записываются в естественном виде с использованием скобок { }, а наборы значений с использованием скобок < ); 0 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 45 46 47 48 49 50 51 52 53 54 55 56 [ 57 ] 58 59 60 |