Главная страница
Навигация по странице:

  • Кафедра «Автоматическое управление »Отчет

  • Предикаты (отношения)

  • лб3. Отчет о выполнении лабораторной работы по дисциплине " Интеллектуальные системы управления " ст гр утсисоп117


    Скачать 0.62 Mb.
    НазваниеОтчет о выполнении лабораторной работы по дисциплине " Интеллектуальные системы управления " ст гр утсисоп117
    Дата18.05.2022
    Размер0.62 Mb.
    Формат файлаdocx
    Имя файлалб3.docx
    ТипОтчет
    #537200

    Министерство образования и науки

    Кыргызской Республики

    Кыргызский Государственный Технический Университет

    им. И. Раззакова

    Кафедра «Автоматическое управление»

    Отчет

    о выполнении лабораторной работы

    по дисциплине: “ Интеллектуальные системы управления ”

    Выполнил: ст.гр УТС-ИСОП-1-17

    Жумакеев Кылым

    Приняла: Кудакеева Г.М.

    Бишкек 2020

    Лабораторная работа №3

    Рекурсия

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

    1. Откат - процедура поиска с возвращением

    2. Рекурсия

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

    Пример:

    Родст (родитель, потомок):-

    род (родитель, потомок).

    Родств (родитель, потомок):-

    род (родитель, Х), родств (Х, потомок)

    Рекурсия состоит из следующих основных элементов:

    1. Базис рекурсии

    2. Шаг рекурсии

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

    Шаг рекурсии - правило, в теле которого в качестве подцели осуществляется вызов определяемого предиката или же …… с другими параметрами.

    Для избежания зацикливания (вызов самого себя) необходимо осуществлять не … Эти параметры должны изменяться на каждом шаге так, чтобы в итоге сработал базис рекурсии …. Поэтому общий вид шага рекурсии выглядит как:
    <предикат>:-

    подцели, <условие, которое ведет к выходу из рекурсии>,

    подцели, <вызов самого определяемого предиката>, подцели.
    В некоторых случаях предложения, которые реализуют базис/шаг рекурсии может быть несколько. Это происходит в том случае, когда действия зависят от выполнения или невыполнения определенного условия.
    Списки

    Списки - это упорядоченная последовательность элементов одного и того же типа. Списки можно задать 2-мя методами:

    1. С помощью специальной рекурсивной структуры

    (“Ли”,(“Ким”,(...,([])))).

    Первым элементом этой структуры является терм любого типа, а вторым аргументом структура и это будет происходит до тех пор пока последним аргументом не будет указана пустая структура элементов

    2. Элементы структуры указываются в [...].

    [“Ли”, “Ким”...]

    Удобна, но не всегда используется в рекурсивных структурах

    Список может иметь любую переменную длину . Также список может быть пустым []. Элементами списка могут быть данные любого типа. Также в качестве элементов списка могут быть списки. Для обработки списков используется рекурсия с помощью которой можно осуществить доступ к элементам. Для этого используется следующее представление списков [ H | T]

    ● Н - голова

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

    [H1, H2, T]

    ● Т - хвост

    Т - это список, который содержит все элементы, за исключением элементов головы.

    L = [5, 8, 9]

    L = [ H | T ]

    H = 5

    T = [8, 9]

    Управление поиском с возвратом заключается в решении двух задач: включении поиска с возвратом при необходимости найти все возможные решения задачи и отключении поиска с возвратом для ограничения пространства поиска. Для решения этих задач используются два стандартных предиката: fail и nl.

    fail – это тождественно-ложный предикат, искусственно создающий ситуацию неуспеха. После выполнения этого предиката управление передается в точку отката и поиск продолжается. Чтобы прервать поиск решений при выполнении какого-либо условия, используется предикат отсечения (nl). Однажды пройдя через отсечение, невозможно вернуться назад, т.к. этот предикат является тождественно-истинным. Процесс может только перейти к следующей подцели, если такая имеется.

    1 задание

    2 задание

    Предикаты (отношения)

    иначе называется именем предиката. Объекты, которые участвуют в отношении, называются аргументами предиката ; в факте likes(bill, cindy)., отношение likes есть предикат, а объекты bill и cindy есть аргументы предиката.

    Вот несколько примеров предикатов с нулем и более аргументов.

    pred(integer, symbol)

    person(last, first, gender)

    run

    insert_mode

    birthday(firstName, lastName, date)

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

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

    Вывод: Я освоил работу со списками, рекурсией и унификацией данных.


    написать администратору сайта