Реферат по предмету "Информатика, программирование"


Понятие лингвистической переменной. Язык программирования Prolog

Содержание
1. Нечеткая лингвистическаяпеременная
2. Пролог — языкпрограммирования ЭС
Используемаялитература

Вопрос24. Нечеткая лингвистическая переменная
Понятие лингвистическойпеременной
Лингвистическаяпеременная отличается от числовой переменной тем, что ее значениями являются нечисла, а слова или предложения в естественном или формальном языке. Поскольку слова,в общем, менее точны, чем числа, понятие лингвистической переменной даетвозможность приближенно описывать явления, которые настолько сложны, что неподдаются описанию в общепринятых количественных терминах. В частности,нечеткое множество, которое представляет собой ограничение, связанное созначениями лингвистической переменной, можно рассматривать как совокупнуюхарактеристику различных подклассов элементов универсального множества. В этомсмысле роль нечетких множеств аналогична той роли, которую играют слова ипредложения в естественном языке. Например, прилагательное «КРАСИВЫЙ»отражает комплекс характеристик внешности индивидуума. Это прилагательное можнотакже рассматривать как название нечеткого множества, которое являетсяограничением, обусловленным нечеткой переменной «КРАСИВЫЙ». С этойточки зрения термины «ОЧЕНЬ КРАСИВЫЙ», «НЕКРАСИВЫЙ»,«ЧЕРЕЗВЫЧАЙНО КРАСИВЫЙ», «ВПОЛНЕ КРАСИВЫЙ» и т.п. —названия нечетких множеств, образованных путем действия модификаторов«ОЧЕНЬ, НЕ, ЧЕРЕЗВЫЧАЙНО, ВПОЛНЕ» и т.п. на нечеткое множество«КРАСИВЫЙ». В сущности, эти нечеткие множества вместе с нечеткиммножеством «КРАСИВЫЙ» играют роль значений лингвистической переменной«ВНЕШНОСТЬ».
Важный аспект понятиялингвистической переменной состоит в том, что эта переменная более высокогопорядка, чем нечеткая переменная, в том смысле, что значениями лингвистическойпеременной являются нечеткие переменные. Например, значениями лингвистическойпеременной «ВОЗРАСТ» могут быть: «МОЛОДОЙ, НЕМОЛОДОЙ, СТАРЫЙ,ОЧЕНЬ СТАРЫЙ, НЕ МОЛОДОЙ И НЕ СТАРЫЙ» и т.п. Каждое из этих значенийявляется названием нечеткой переменной. Если />— название нечеткой переменной, то ограничение,обусловленное этим названием, можно интерпретировать как смысл нечеткойпеременной />.
Другой важный аспектпонятия лингвистической переменной состоит в том, что лингвистическойпеременной присущи два правила:
1. Cинтаксическое,которое может быть задано в форме грамматики, порождающей название значенийпеременной;
2. Cемантическое,которое определяет алгоритмическую процедуру для вычисления смысла каждогозначения.
3. Лингвистическая переменная характеризуется набором свойств />, в котором:
4. />—название переменной;
5. />обозначаеттерм-множество переменной />, т.е. множествоназваний лингвистических значений переменной />,причем каждое из таких значений является нечеткой переменной />со значениями из универсального множества />с базовой переменной />;
6. />—синтаксическое правило, порождающее названия />значений переменной />;
7. />—семантическое правило, которое ставит в соответствие каждой нечеткой переменной/>еесмысл />,т.е. нечеткое подмножество />универсальногомножества />.
8. Конкретноеназвание />,порожденное синтаксическим правилом />, называетсятермом. Терм, который состоит из одного слова или из нескольких слов, всегдафигурирующих вместе друг с другом, называется атомарным термом. Терм, которыйсостоит из более чем одного атомарного терма, называется составным термом.
К примеру, зададимлингвистическую переменную W = «Возраст работника». Определимсинтаксическое правило G как определение «оптимальный», налагаемое напеременную W. Тогда полное терм-множество значений T = { T1 =Оптимальный возраст работника, T2 = Неоптимальный возраст работника }.Носителем U выступает отрезок [20, 70], измеряемый в годах человеческой жизни.И на этом носителе определены две функции принадлежности: для значения T1 — mT1(u),она изображена на рис. 2.2, для T1 — mT2(u), причем первая изних отвечает нечеткому подмножеству M1, а вторая – M2. Таким образом,конструктивное описание лингвистической переменной завершено.
prologпрограммирование язык лингвистический переменный
Вопрос54.           Пролог — язык программирования ЭС
Prolog (от“PROgramming in LOGic”) — декларативный язык программирования общегоназначения. Prolog был создан в 1972 с целью сочетать использование логики спредставлением знаний. С тех пор у него появился ряд диалектов, расширяющихоснову языка различными возможностями. Стандарт языка дан в ISO/IEC 13211-1(1995 год).
Prolog — одиниз старейших и все еще один из наиболее популярных языков логическогопрограммирования, хотя он значительно менее популярен, чем основныеимперативные языки. Он используется в системах обработки естественных языков,исследованиях искусственного интеллекта, экспертных системах, онтологиях идругих предметных областях, для которых естественно использование логическойпарадигмы.
Prolog былсоздан под влиянием более раннего языка Planner и позаимствовал из негоследующие идеи:
· обратныйлогический вывод (вызов процедур по шаблону, исходя из целей);
· построениеструктура управляющей логики в виде вычислений с откатами;
· принцип“отрицание как неудача”;
· использованиеразных имен для разных сущностей и т.д.
Главнойпарадигмой, реализованной в языке Prolog, является логическое программирование.Как и для большинства старых языков, более поздние реализации, например, VisualProlog, добавляют в язык более поздние парадигмы, например,объектно-ориентированное или управляемое событиями программирование, иногдадаже с элементами императивного стиля.
Prologиспользует один тип данных, терм, который бывает нескольких типов:
· атом — имя без особого смысла, используемоедля построения составных термов;
· числа и строкитакие же, как и в других языках;
· переменная обозначается именем, начинающимся спрописной буквы, и используется как символ-заполнитель для любого другоготерма;
· составной терм состоит из атома-функтора, закоторым следует несколько аргументов, каждый из которых в свою очередь являетсяатомом.
Программы,написанные на чистом Prolog, описывают отношения между обрабатываемымисущностями при помощи клауз Хорна. Клауза — это формула вида Голова :- Тело.,которая читается как “чтобы доказать/решить Голову, следует доказать/решитьТело”. Тело клаузы состоит из нескольких предикатов (целей клаузы),скомбинированных с помощью конъюнкции и дизъюнкции. Клаузы с пустым теломназываются фактами и эквивалентны клаузам вида Голова :- true. (true— не атом, как в других языках, а встроенный предикат).
Другой важнойчастью Prolog являются предикаты. Унарные предикаты выражают свойства ихаргументов, тогда как предикаты с несколькими аргументами выражают отношениямежду ними. Ряд встроенных предикатов языка выполняют ту же роль, что и функциив других языках, например, …. Предикаты с несколькими аргументами могутдействовать в нескольких направлениях в зависимости от того, какие изаргументов уже связаны, а какие — нет. Наконец, для того, чтобы быть языкомобщего назначения, Prolog должен предоставлять ряд сервисных функций, например,процедур ввода/вывода. Они реализованы как предикаты без специальногологического смысла, которые всегда оцениваются как истинные и выполняют своисервисные функции как побочный эффект оценивания.
Цельювыполнения программы на Prolog является оценивание одного целевого предиката.Имея этот предикат и набор правил и фактов, заданных в программе, Prologпытается найти привязки (значения) переменных, при которых целевой предикатпринимает значение истинности.
Структурапрограммы на Прологе отличается от структуры программы, написанной напроцедурном языке. Пролог-программа является собранием правил и фактов. Решениезадачи достигается интерпретацией этих правил и фактов. При этом пользователюне требуется обеспечивать детальную последовательность инструкций, чтобыуказать, каким образом осуществляется управление ходом вычислений на пути крезультату. Вместо этого он только определяет возможные решения задачи иобеспечивает программу фактами и правилами, которые позволяют ей отыскатьтребуемое решение.
Во всехдругих отношениях Пролог не отличается от традиционных языков программирования.Как и в случае программы написанной на любом другом языке, Пролог-программапредназначена для решения отдельной задачи.
Пролог (Prolog)— язык логического программирования, основанный на логике дизъюнктов Хорна,представляющей собой подмножество логики предикатов первого порядка. Началоистории языка относится к 70-м годам XX века. Будучи декларативным языкомпрограммирования, Пролог воспринимает в качестве программы некоторое описаниезадачи, и сам производит поиск решения, пользуясь механизмом бэктрекинга иунификацией.
Прологотносится к так называемым декларативным языкам, требующим от автора умениясоставить формальное описание ситуации. Поэтому программа на Прологе неявляется таковой в традиционном понимании, так как не содержит управляющихконструкций типа if … then, while … do; нет даже оператора присваивания. ВПрологе задействованы другие механизмы. Задача описывается в терминах фактов иправил, а поиск решения Пролог берет на себя посредством встроенного механизмалогического вывода.
Переченьвозможных синтаксических конструкций Пролога невелик, и в этом смысле языкпрост для изучения. С другой стороны, декларативный стиль программированияоказывается столь непривычным и новым для опытных программистов, что вызываетшок и в ряде случаев оказывается тормозом.
Прологреализован практически для всех известных операционных систем и платформ. Вчисло операционных систем входят OS для мэйнфреймов, всё семейство Unix,Windows, OS для мобильных платформ. Многие современные реализации языка имеютвнутреннее расширение за счет ООП-архитектуры. Кроме проприетарных решений,существуют свободные реализации Пролог. Пролог критикуется в первую очередь засвою недостаточную гибкость, отчего решения на обычных языках программирования(типа C++, Java) в сочетании с базами данныхоказываются более технологичными, чем аналогичные решения на Прологе.Негибкость заключается в трудности изучения языка, более высоких требованиях кквалификации программиста на Прологе, трудности отладки программы, неразвитоститехнологии программирования, плохой контролируемости промежуточных результатов.Основные вехи развития языка Prolog
Prolog сталвоплощением идеи использования логики в качестве языка программирования,которая зародилась в начале 1970-х годов, и само его название являетсясокращением от слов “programming in logic” (программирование в терминахлогики). Первыми исследователями, которые занялись разработкой этой идеи, былиРоберт Ковальски (Robert Kowalski) из Эдинбурга (теоретические основы), Маартенван Эмден (Maarten van Emden) из Эдинбурга (экспериментальная демонстрационнаясистема) и Ален Колмероэ (Alain Colmerauer) из Марселя (реализация).Популяризации языка Prolog во многом способствовала эффективная реализацияэтого языка в середине 1970-х годов Дэвидом Д. Г. Уорреном (David D.H. Warren)из Эдинбурга. К числу новейших достижений в этой области относятся средствапрограммирования на основе логики ограничений (Constraint Logic Programming —CLP), которые обычно реализуются в составе системы Prolog. Средства CLPпоказали себя на практике как исключительно гибкий инструмент для решения задачсоставления расписаний и планирования материально-технического снабжения. А в1996 году был опубликован официальный стандарт ISO языка Prolog. Наиболее заметные тенденции в истории развития языка Prolog
В развитииязыка Prolog наблюдаются очень интересные тенденции. Этот язык быстро приобрелпопулярность в Европе как инструмент практического программирования. В Япониивокруг языка Prolog были сосредоточены все разработки компьютеров пятогопоколения. С другой стороны, в США этот язык в целом был принят с небольшимопозданием в связи с некоторыми историческими причинами. Одна из них состояла втом, что Соединенные Штаты вначале познакомились с языком Microplanner, которыйтакже был близок к идее логического программирования, но неэффективнореализован. Определенная доля низкой популярности Prolog в этой странеобъясняется также реакцией на существовавшую вначале “ортодоксальную школу”логического программирования, представители которой настаивали на использованиичистой логики и требовали, чтобы логический подход не был “запятнан”практическими средствами, не относящимися к логике. В прошлом это привело кширокому распространению неверных взглядов на язык Prolog. Например, некоторыесчитали, что на этом языке можно программировать только рассуждения с выводомот целей к фактам. Но истина заключается в том, что Prolog — универсальный языкпрограммирования и на нем может быть реализован любой алгоритм. Далекая отреальности позиция “ортодоксальной школы” была преодолена практиками языкаProlog, которые приняли более прагматический подход, воспользовавшисьплодотворным объединением нового, декларативного подхода с традиционным,процедурным. Элементысинтаксиса:Комментарий до конца строки % Регистрозависимость да Регулярное выражение идентификатора переменной [_A-Z][_a-zA-Z0-9]* Регулярное выражение идентификатора функции [_a-z][_a-zA-Z0-9]* Группировка выражений (… )
Списокиспользуемой литературы1. http://sedok.narod.ru/fuzzy.html — Ключевые понятия теории нечетких множеств.
2. http://ru.wikipedia.org/wiki/Лингвистическая_переменная
3. http://www.intuit.ru/department/ds/fuzzysets/9/
4. http://progopedia.ru/language/prolog/


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Кредитные механизмы Международного Валютного Фонда
Реферат Информационная деятельность ЮНЕСКО в сфере образования
Реферат The Monkey
Реферат Исследование манипулятивных технологий управления социальными ресурсами местного самоуправления
Реферат Комиссия Европейского Союза
Реферат Интелектуальная миграция как фактор развития рынка труда
Реферат Кризис 1998 года. Кризис США 2007
Реферат Проектирование элементов информационной системы фирмы для автоматизации процессов продаж оргтехники
Реферат ИСТОЧНИКИ МЕЖДУНАРОДНОГО ПРАВА
Реферат Косовська проблема в міжнародних відносинах
Реферат Кипр в системе международных экономических отношений
Реферат Ибрагимбеков Рустам Мамед Ибрагимович
Реферат Іран та його міжнародні відносини
Реферат Інтеграція України до ЄС. Шляхи і перспективи розвитку
Реферат кономика Объединенных Арабских Эмиратов