- •Лабораторная работа n 1 основы языка программирования пролог. Изучение среды turbo prolog.
- •Запустить Turbo Prolog
- •1.1 Основные понятия языка Турбо Пролог.
- •1.1.2. Факты
- •1.1. 3 . Запросы
- •1.2. Разделы программы на языке Турбо Пролог.
- •2. Среда turbo prolog 2.0.
- •2.1. Интерфейс среды Турбо Пролог 2.0.
- •2.1 Элементы главного меню и их функции:
- •2.3 Основные операции в среде Турбо Пролог.
- •2. 4 . Трассировка.
- •Лабораторная работа n 2 понятие правила и рекурсии. Встроенные предикаты.
- •1. Правила
- •1.1. Дерево вывода.
- •2. Рекурсия
- •3.Использование встроенных предикатов.
- •4. Задание для лабораторной работы
- •4.1. Варианты заданий
- •5. Контрольные вопросы.
- •Лабораторная работа № 3 интегрированная среда разработки visual prolog
- •1. Создание нового проекта.
- •2. Создание формы.
- •3. Работа с меню
- •4. Создание обработчиков нажатия на кнопку.
- •5. Задание для лабораторной работы
- •6. Контрольные вопросы.
- •2. Преобразование данных
- •3. Арифметические действия
- •Лабораторная работа № 5 построение нейросетевой экспертной системы
- •5.1. Цель работы
- •5.2. Методические указания
- •5.2.1. Постановка задачи
- •5.2.2. Критерии оценки
- •5.2.3. Ввод анализируемых данных
- •5.2.3.1. Использование файла запуска фактов
- •5.2.3.2. Использование протокола dde
- •5.3. Порядок выполнения работы
- •Лабораторная работа №6 Архитектура процессора NeuroMatrix ® nm 6403 и его функциональные возможности
- •6.3.2. Внешний интерфейс процессора
- •6.3.3. Общее описание внутренней структуры процессора
- •6.3.3.1. Описание основных элементов скалярного процессора
- •6.3.3.2. Описание основных элементов векторного процессора
- •6.3.4. Основные вычислительные блоки векторного процессора
- •6.3.4.1. Взвешенное суммирование
- •6.3.4.2. Выполнение операций на векторном алу
- •6.3.4.3 Операция маскирования
- •6.3.4.4 Обработка данных функцией активации
- •6.3.4.5 Циклический сдвиг вправо операнда х при взвешенном суммировании
- •6.3.4.6 Порядок выполнения преобразований над данными на вп
- •6.4. Описание и порядок пользования программой nmCalculator запустить nmCalculator
- •6.4.1 Общие сведения о программе
- •6.4.2 Формирование векторной команды
- •6.4.3 Разбиение рабочей матрицы и запись весовых коэффициентов
- •Контрольные вопросы
- •Лабораторная работа № 7 Программирование процессора NeuroMatrix ® nm 6403
- •7.2.3 Типы скалярных команд
- •7.2.4 Типы векторных команд
- •7.2.5 Регистры процессора
- •7.2.5.1 Основные регистры
- •7.2.5.2 Регистровые пары
- •7.3. Примеры простейших программ
- •7.4. Порядок выполнения работы
3.Использование встроенных предикатов.
Для управления процессом вывода информации на экран в Турбо Прологе существуют встроенный предикат write, который производит вывод заданного количества аргументов (константы или переменные) на текущее устройство вывода. На момент вывода переменные не должны быть свободными. Формат write ( A 1, A 2,..., AN ). Согласуется всегда успешно.
Предикат nl обеспечивает переход на новую строку в текущем устройстве вывода (то же, что write("\n")).
Эти предикаты удобно использовать в разделе описания внутренней цели, например:
GOAL
Write (“Родственные отношения :”), nl ,
father ( X , “Анна”), write (“Отцом Анны является”, X ).
Для ограничения пространства поиска, с целью повышения эффективности работы программ используется предикат отсечения cut (записывается как “!”). Он всегда завершается успешно. После того, как до него дошла очередь, он устанавливает "забор", который не дает "откатиться назад", чтобы выбрать альтернативные решения для уже "сработавших" подцелей. То есть для тех, которые расположены левее отсечения . На цели , расположенные правее, отсечение не влияет. Кроме того, отсечение отбрасывает все предложения процедуры, расположенные после предложения , в котором находится отсечение . Например, для нахождения максимума из двух чисел можно воспользоваться следующим правилом:
max2(X,Y,X):-
X>Y,!./* если первое число больше второго, то первое число - максимум */
max2(_,Y,Y). /* в противном случае максимумом будет второе число */
4. Задание для лабораторной работы
В соответствии с вариантом задания, определенным преподавателем, построить базу знаний «Родственные отношения», содержащую предикаты родитель, мужчина, женщина. Требуется определить новое отношение и выявить круг лиц ему удовлетворяющих. Оформить отчет с указанием варианта задания, текста базы знаний, результатов выполнения запросов, трассы и деревьев вывода для правил.
4.1. Варианты заданий
Определить предикат сын и найти всех сыновей конкретного лица.
Определить предикат дочь и найти всех дочерей конкретного лица.
Определить предикат внук и найти всех внуков конкретного лица.
Определить предикат дедушка и найти всех дедушек конкретного лица.
Определить предикат бабушка и найти всех бабушек конкретного лица.
Определить предикат тетя и найти всех теть конкретного лица.
Определить предикат дядя и найти всех дядь конкретного лица.
Определить предикат брат и найти всех братьев конкретного лица.
Определить предикат сестра и найти всех сестер конкретного лица.
Определить предикат племянник и найти всех племянников конкретного лица.
Определить предикат потомок и найти всех потомков конкретного лица.
Определить предикат двоюродный брат и найти всех двоюродных братьев конкретного лица.
Определить предикат двоюродная сестра и найти всех двоюродных сестер конкретного лица.
Определить предикат троюродный брат и найти всех троюродных братьев конкретного лица.
Определить предикат троюродная сестра и найти всех троюродных сестер конкретного лица.
Определить предикат внучатый племянник и найти всех внучатых племянников конкретного лица.