Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Контрольная работа: Унификация алгебраических выражений

Название: Унификация алгебраических выражений
Раздел: Рефераты по информатике
Тип: контрольная работа Добавлен 03:10:56 08 мая 2011 Похожие работы
Просмотров: 143 Комментариев: 9 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

Содержание

Введение

1. Задача унификации

2. Преобразование выражения в префиксную форму

3. Определение классов для реализации алгоритма

4. Операции класса Lisp _ item

4.1 Операция выполнения унификации (unifikacia )

4.2 Операция проверки применимости продукций(Primen _ prod )

4.3 Операция замены свободных переменных (zamena )

5. Операции класса podst

5.1 Операция проверки применимости (primenima )

6. Операции класса trojka

6.1 Операция проверки применимости (primenima )

Выводы

Литература


Введение

Тема курсовой работы по дисциплине "Проектирование интеллектуальных систем" - "Унификация алгебраических выражений".

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

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

По А. Н. Колмогорову, любая материальная система, с которой можно достаточно долго обсуждать проблемы науки, литературы и искусства, обладает интеллектом. Такое определение показывает, что данная дисциплина находится во взаимосвязи практически со всеми учебными дисциплинами. Тем не менее, следует подчеркнуть связи со следующими дисциплинами: "Программирование", "Математический анализ", "Линейная алгебра и аналитическая геометрия", "Дискретная математика", "Логическое программирование", "Экспертные системы", "Интерфейсы интеллектуальных систем".


1. Задача унификации

Формально задача записывается следующим образом: для данной теоремы Т в форме продукции вида

Н Þ С,

где Н – гипотеза;

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

Например, для продукции (теоремы) ( a + b )2 = a 2 + 2 ab + b 2 исходное выражение x 2 + ( y + √3)2 с помощью свободных переменных a = y и b = √3 можно преобразовать к виду x 2 + ( a + b )2 . Фрагмент выражения ( a + b )2 полностью совпадает с левой частью продукции, следовательно вместо него можно подставить правую часть продукции. В результате будет получено выражение x 2 + a 2 + 2 ab + b 2 . Для завершения преобразования необходимо свободные переменные a и b заменить соответствующими им фрагментами выражения Е. окончательно будет получено: x 2 + y 2 + 2 y √3 + (√3)2 .

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

Рисунок 1 -Представление продукции и выражения в виде дерева (­ -символ операции возведения в степень)

На рисунке одинаковыми цветными прямоугольниками выделены совпадающие фрагменты деревьев продукции и выражения; штрихпунктирными линиями – соответствие между свободными переменными и фрагментами дерева выражения.

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

- выполняется проверка на совпадение операции из узла дерева выражения Е с операцией в корне левой части очередной продукции Т. Если совпадают, то выполняется переход к следующему шагу. В противном случае, по окончании просмотра всех продукций, выполняется переход к следующему узлу дерева выражения Е;

- если в левой части продукции операндами операции являются переменные, то им сопоставляются ветви дерева выражения Е, отходящие от узла с совпавшей операцией (так, как показано на рисунке);

- фрагмент дерева выражения Е, соответствующий левой части продукции, заменяется деревом из правой части продукции (см. рисунок 2);

Рисунок 2 -Выражение Е после замены фрагмента на правую часть выражения

- в полученном дереве выражения Е выполняется замена свободных переменных сопоставленными фрагментами исходного дерева (см. рисунок 3).


Рисунок 3 -Выражение Е после замены свободных переменных соответствующими фрагментами

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

( ­ (+ a b ) 2) => (+ ( ­ a 2) (+ (* 2 (* a b )) ( ­ b 2)) );

(+ ( ­ x 2) ( ­ (+ y (√ 3)) 2)).

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


2.Преобразование выражения в префиксную форму

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

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

Если очередной элемент выражения операция или скобка, то действия определяются в зависимости от соотношения приоритетов данной операции и операции на вершине стека операций (таблица 1). Обозначения: Op(E) – очередная операция из выражения Е; Op(stack) – операция на вершине стека операций. Значения приоритетов и количество операндов в операциях определяются с помощью справочника операций. Соблюдаются следующие соглашения о приоритетах:

- приоритет открывающей скобки из выражения выше приоритета любой операции на вершине стека;

- приоритет любой операции из выражения выше приоритета открывающей скобки на вершине стека операций;

- приоритет любой операции на вершине стека выше приоритета закрывающей скобки из выражения.


Таблица 1 - Связь между соотношением приоритетов операций и действиями алгоритма

Op(E) Ä Op(stack) Описание действий
>

1)Op(E) занести в стек операций;

2)перейти к следующему элементу выражения Е

=

1)сформировать тройку:

- операция - с вершины стека операций;

- один или два операнда - с вершины стека операндов;

2)ссылку на тройку поместить на вершину стека операндов;

3)Op(E) занести в стек операций;

4)перейти к следующему элементу выражения Е

<

1)сформировать тройку:

- операция - с вершины стека операций;

- один или два операнда - с вершины стека операндов;

2)ссылку на тройку поместить на вершину стека операндов;

3)снова провести сравнение приоритетов и выбрать действие в соответствии с таблицей.

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

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

Действия алгоритма иллюстрируются таблицей, в которой отображаются состояния стеков и другая информация после выполнения алгоритмом очередного шага для выражения a + b + c /( m - d ) . Символ $ используется как признак конца(дна) стека или входной строки.

Таблица 2 - Состояния основных структур алгоритма

Стек операций Стек операндов Символ входной строки Соотно-шение приори-тетов Описание
$ $ a
$ $a + >
$+ $a b
$+ $ab + =

Выделение тройки:

(+ a b)

$+ $(+ a b) c
$+ $(+ a b)c / >
$+/ $(+ a b)c ( >
$+/( $(+ a b)c m
$+/( $(+ a b)cm - >
$+/(- $(+ a b)cm d
$+/(- $(+ a b)cmd ) <

Выделение тройки:

(- m d)

$+/( $(+ a b)c(- m d) ) Удаление скобки
$+/ $(+ a b)c(- m d) $ <

Выделение тройки:

(/ c (- md))

$+ $(+ a b) (/ c (- md)) $ <

Выделение тройки:

(+ (+ ab) (/ c (- md)))

$ $(+ (+ a b)(/ c (- md))) $ Конец работы

3. Определение классов для реализации алгоритма

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

Рисунок 4 - Диаграмма классов для алгоритма унификации

В рассматриваемом примере реализации алгоритма унификации основную структурную единицу задает класс Lisp_item. Имя класса указывает на то, что проводится аналогия с понятием символа языка LISP. Суть заключается в том, что в LISP символ может обозначать константу, переменную, список, функцию или выражение, которое можно обрабатывать. Чтобы конкретизировать, что задает экземпляр класса Lisp _ item , в его состав вводится атрибут typ . Атрибут itm будет задавать ссылку на объект (константу, переменную или тройку – выражение, состоящее из операции и двух операндов). Причем, любой из операндов может быть экземпляром класса Lisp _ item .

Таблица 3 - Назначение операций класса Lisp _ item

Имя операции Описание

unifikacia(ArrayList sp,

ref ArrayList SV,TextBox tbox)

Выполняет унификацию данного экземпляра Lisp_item, где sp – список продукций (подстановок); SV – формируемый список свободных переменных; tbox – компонента для вывода текстовых сообщений.

Primen_prod(ArrayList sp, ref ArrayList SV,

TextBox tbox)

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

Для задания продукций (подстановок), используемых для унификации выражений, применяется класс podst . В соответствии с определением продукции атрибутами класса являются left _ part и right _ part . При этом и левая, и правая части могут представлять произвольные выражения и задаются как объекты класса Lisp _ item .

Таблица 4 - Назначение операций класса podst

Имя операции Описание
primenima(Lisp_item E, ref ArrayList SV) Определяет применимость левой части продукции к заданному выражению. Е – унифицируемое выражение; SV – формируемый список свободных переменных.
zamena(ArrayListSV) Выполняет замену свободных переменных в правой части удачно примененной продукции.

Для работы с выражением в префиксной форме предназначен класс trojka . Атрибуты этого класса предназначены для определения основных элементов и признаков выражения в префиксной форме: operation – символ операции; priority – приоритет операции; is _ func – операция является функцией; op 1 , op 2 – операнды.

Таблица 5 - Назначение операций класса trojka

Имя операции Описание

primenima(Lisp_item E,

ref ArrayList SV)

Определяет применимость тройки из левой части продукции к тройке заданного выражения. Е – унифицируемое выражение; SV – формируемый список свободных переменных.

4. Операции класса Lisp _ item

4.1 Операция выполнения унификации (unifikacia )

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

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

4.2 Операция проверки применимости продукций( Primen _ prod )

Действия данной операции определяются схемой на рисунке 6 и складываются из следующего. Организуется цикл просмотра списка продукций.

Для очередной продукции из списка (rpod ) вызывается операция проверки применимости продукции (Primenima ). Если операция возвращает истинное значение, то вызывается операция замены свободных переменных в правой части продукции.

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

4.3 Операция замены свободных переменных ( zamena )

Действия данной операции определяются схемой на рисунке 7 и складываются из следующего. Состав выполняемых действий зависит от типа обрабатываемого элемента выражения.

В случае константы никаких действий не выполняется.

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


5. Операции класса podst

5.1 Операция проверки применимости (primenima )

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

Если левая часть – константа, то выполняется сравнение значений констант из левой части продукции и заданного выражения. Результат сравнения возвращается как результат выполнения операции.

Если левая часть продукции – переменная, то формируется элемент списка свободных переменных и помещается в список. Для задания элементов списка свободных переменных используется класс sv _ perem , атрибутами которых являются:

nm _ sv – имя свободной переменной;

fragment - фрагмент выражения, соответствующий переменной (тип Lisp_item).

Если левая часть – тройка, то выполняется выделение выражений тройки из левой части продукции и унифицируемого выражения, после чего вызывается операция класса trojka для проверки применимости тройки из продукции к тройке из выражения (primenima ).


Рисунок5 -СхемаалгоритмаоперацииLisp_item.unifikacia

Рисунок 6 - Схема алгоритма операции Lisp _ item . Primen _ prod

Рисунок 7 - Схема алгоритма операции Lisp _ item . zamena

Рисунок 8 - Схема алгоритма операции podst . primenima

6. Операции класса trojka

6.1 Операция проверки применимости (primenima )

Действия данной операции определяются схемой на рисунке 9 и складываются из следующего. Тройка из продукции будет считаться удачно примененной к тройке из унифицируемого выражения, если, во-первых, совпадают операции троек; во-вторых, правила применимости выполняются для первых и вторых операндов троек.

При совпадении операций троек, анализируется тип первого операнда.

В случае константы выполняется сравнение значений констант, стоящих на месте первого операнда в сравниваемых тройках. При несовпадении – выполняется выход.

Если первый операнд переменная, то ей сопоставляется первый операнд из тройки унифицируемого выражения и заносится в список свободных переменных.

Если первый операнд тройка, то для этого объекта вызывается описываемая операция primenima . При неудачном завершении этой операции выполняется выход из операции со значением false .

Поскольку в тройке может отсутствовать второй операнд (например, функции с одним аргументом, или одноместные операции типа (not x )), то если это подтверждается, то работа операции завершается со значением true . Если же второй операнд присутствует, то прежде всего проверяется возможное условие совпадения первого и второго операндов.

Если же в тройке из продукции операнды различны, то выполняется обработка второго операнда. Алгоритм обработки аналогичен алгоритму обработки первого операнда.


Рисунок 9, лист 1- Схема алгоритма операции trojka . primenima


Рисунок 9, лист 2.


Выводы

Таким образом, процесс унификации выражения складывается из трех последовательно выполняемых этапов:

преобразование выражения в инфиксной форме в выражение в префиксной форме Þ унификация выражения в префиксной форме Þ преобразование результата унификации из префиксной формы в инфиксную форму .

Что касается последнего преобразования, то оно реализуется в виде несложной рекурсивной процедуры.


Литература

1 . Уоссермен Ф., Нейрокомпьютерная техника, - М.,Мир, 1992.

2 . Горбань А.Н. Обучение нейронных сетей. - М.: ПараГраф, 1990

3 . Горбань А.Н., Россиев Д.А. Нейронные сети на персональном компьютере. - Новосибирск: Наука, 1996

4 . Gilev S.E., Gorban A.N., Mirkes E.M. Several methods for accelerating the training process of neural networks in pattern recognition // Adv. Modelling & Analysis, A. AMSE Press. – 1992. – Vol.12, N4. – P.29-53

5 . С. Короткий. Нейронные сети: алгоритм обратного распространения.

6 . С. Короткий, Нейронные сети: обучение без учителя. Artificial Neural Networks: Concepts and Theory, IEEE Computer Society Press, 1992.

7 . Заенцев И. В. Нейронные сети: основные модели./Учебное пособие к курсу "Нейронные сети" для студентов 5 курса магистратуры к. электроники физического ф-та Воронежского Государственного университета – e-mail: ivz@ivz.vrn.ru

8 . Лорьер Ж.Л. Системы искусственного интеллекта. – М.: Мир, 1991. – 568 с.

9 . Искусственный интеллект. – В 3-х кн. Кн. 2. Модели и методы: Справочник/ Под ред. Поспелова Д. А. – М.: Радио и связь, 1990. – 304 с.

10 . Бек Л. Введение в системное программирование.- М.: Мир, 1988.

11. Шлеер С., Меллор С. Объектно-ориентированный анализ: моделирование мира в состояниях. – К.: Диалектика, 1993. – 240 с.

12 . Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. - http://www.nexus.odessa.ua/files/books/booch.

13. Аджиев В. MS: корпоративная культура разработки ПО – http:// www.osp.ru

14. Трофимов С.А. Case-технологии. Практическая работа в RationalRose. – М.: ЗАО "Издательство БИНОМ", 2001.

15 . Новичков А. Эффективная разработка программного обеспечения с использованием технологий и инструментов компании RATIONAL. – http://www.interface.ru

16. Selic B., RumbaughJ. Использование UML при моделировании сложных систем реального времени. - http://www.interface.ru.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Мне с моими работами постоянно помогают на FAST-REFERAT.RU - можете просто зайти узнать стоимость, никто вас ни к чему не обязывает, там впринципе всё могут сделать, вне зависимости от уровня сложности) у меня просто парень электронщик там какой то, тоже там бывает заказывает))
FAST-REFERAT.RU15:22:26 07 декабря 2018
Спасибо, Оксаночка, за совет))) Заказал курсач, отчет по практике, 2 реферата и дипломную на REFERAT.GQ , все сдал на отлично, и нервы не пришлось тратить)
Алексей22:38:03 15 июля 2018Оценка: 5 - Отлично
Я обычно любые готовые работы покупаю на сайте shop-referat.tk , и свои все там же на продажу выставляю, неплохой доп.заработок. А если там не нахожу то уже на referat.gq заказываю и мне быстро делают.
Оксана20:52:19 11 июня 2018Оценка: 5 - Отлично
Хватит париться. На сайте REFERAT.GQ вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую.
Студент09:38:14 10 июня 2018
Как заработать в интернете на halyava.125mb.com
Duke Nukem06:03:29 25 октября 2017

Смотреть все комментарии (9)
Работы, похожие на Контрольная работа: Унификация алгебраических выражений

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(260056)
Комментарии (3520)
Copyright © 2005-2020 BestReferat.ru support@bestreferat.ru реклама на сайте

Рейтинг@Mail.ru