Главная  Карта сайта  Об авторе  Контакты  Нормативно-правовая основа деятельности кафедры

  Интеллектуальные информационные системы  
  Синтаксис языка программирования Пролог  
  Экспертные системы, их использование для решения организационно–экономических задач. Основные компоненты экспертных систем  
  Структура экспертной системы  
  Структуры Пролог  
  Факты, правила, вопросы  
  Процесс разработки имитационных моделей для изучения социально–экономических систем. Основные этапы  
  Декларативная и процедурная семантика программ на языке Пролог  
  Общая схема согласования целевых утверждений  
  Механизм поиска с возвратом  
  Порядок предложений и целей. Опасность бесконечного цикла  
  Рекурсия и ее свойства  
  Схема поиска решений в рекурсивных программах  
  Прикладное программное обеспечение. классификация  
  Структура Пролога списки  
  Операторы. Арифметика в Пролог  
  Предметно-ориентированные информационные системы  

Исследование операций

  Модели теории графов и сетевого моделирования  
  Элементы теории графов  
  Матрицы инцедентности ориентированного графа  
  Природа потоков в сетях и принцип их сохранения  
  Теорема о максимальном потоке и минимальном разрезе  
  Методы решения сетевых задач  
  Метод ветвей и границ  
  Методы сетевого планирования  
  Преимущества СПУ  
  Подготовка задач к решению  
  Правила построения сетевых моделей  
  Параметры сетевых моделей и методы их расчета  
  Анализ сетевых моделей  
  Методы и модели линейного программирования  
  Общая задача линейного программирования  

Структуры и алгоритмы компьютерной обработки данных

  Виды структур данных  
  Развитие концепции структуризации в программировании  
  Понятие типа данных  
  Порядковые типы  
  Абстрактные типы  
  Идентификация объектов  
  Именование  
  Организация адресного пространства оперативной памяти MS DOS  
  Понятие указателя  
  Действия над указателями  
  Связывание идентификатора объекта с его элементом хранения  
  Понятие “времени жизни” объекта  
  Классы памяти  
  Поиск в списке узла по заданному условию  
  Совместимость типов. Приведение и преобразование типов  

Теория оптимального управления
экономическими системами

  Корпоративные информационные системы  
  Стандарты корпоративных систем  
  Программные продукты управления предприятием  
  Информатизация банковской деятельности  
  Современные технологии проектирования управления  
  Понятие Workflow и Workflow Management  
  Модель Workflow Management с точки зрения коалиции WfMC  
  Основные аспекты технологии Workflow Management  
  Организационно-функциональный модуль  
  Хранилища данных и аналитические системы  
  Виртуальное Хранилище Данных  
  Этапы ETL-процесса  
  Очистка данных  
  Аналитические системы  

 

 

 

 
 
 

Синтаксис языка программирования Пролог

Пролог - это язык программирования, предназначенный для обработки символьной  нечисловой информации. Особенно хорошо он приспособлен для решения задач, в которых фигурируют объекты и отношения между ними. На рисунке 2 представлен пример - родственные отношения. Тот факт, что Том является родителем Боба, можно записать на Прологе так:

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

Здесь уместно сделать следующее важное замечание:
Язык программирования Пролог не допускает использование русских символов в качестве идентификаторов. Однако мы в нашем изложении иногда будем употреблять русские символы для большей понятливости и наглядности. В приведенном выше примере при написании факта на языке Пролог уместно использовать идентификатор parent вместо родитель и имена (tom, bob) вместо (том, боб). Следовательно, данный факт в системе Arity Prolog будет выглядеть следующим образом:

parent(tom, bob). (рисунок 1)

Рисунок 1 -  Пример Пролог – программы «Родственные отношения»

Мы выбрали родитель в качестве имени отношения, том и боб - в качестве аргументов этого отношения. По причинам, которые станут понятны позднее, мы записываем такие имена, как том, начиная со строчной буквы. Все дерево родственных отношений на рисунке 2 описывается следующей пролог - программой:
родитель( пам, боб).
родитель( том, боб).
родитель( том, лиз).
родитель( боб, энн).
родитель( боб, пат).
родитель(пат; джим).

Рисунок 2 - Дерево родственных отношений

Эта Пролог - программа содержит шесть предложений. Каждое предложение объявляет об одном факте наличия отношения родитель. После ввода такой программы в пролог-систему последней можно будет задавать вопросы, касающиеся отношения родитель. Например, является ли Боб родителем Пат? Этот вопрос можно передать пролог - системе, набрав на клавиатуре терминала:
?- родитель( боб, пат).
Найдя этот факт в программе, система ответит
yes (да)
Другим вопросом мог бы быть такой:
?- родитель( лиз, пат).
Система ответит
по (нет),
поскольку в программе ничего не говорится о том, является ли Лиз родителем Пат. Программа ответит «нет» и на вопрос
?- родитель( том, бен).
по (нет),
потому, что имя Бен в программе даже не упоминается.
Можно задавать и более интересные вопросы. Например: «Кто является родителем Лиз?»
?- родитель( X, лиз).
На этот раз система ответит не просто «да» или «нет». Она скажет нам, каким должно быть значение X (ранее неизвестное), чтобы вышеприведенное утверждение было истинным. Поэтому мы получим ответ:
X = том
Вопрос «Кто дети Боба?» можно передать пролог - системе в такой форме:
?- родитель( боб, X).
В этом случае возможно несколько ответов. Сначала система сообщит первое решение:
X = энн
Возможно, мы захотим увидеть и другие решения. О нашем желании мы можем сообщить системе (во многих реализациях для этого надо набрать точку с запятой), и она найдет другой ответ:
X = пат
Если мы потребуем дальнейших решений, система ответит «нет», поскольку все решения исчерпаны.
Нашей программе можно задавать и более общие вопросы: «Кто чей родитель?» Приведем другую формулировку этого вопроса:
Найти X и Y такие, что X - родитель Y. На Прологе это записывается так:
?- родитель( X,Y).
Система будет по очереди находить все пары вида «родитель-ребенок». По мере того, как мы будем требовать от системы новых решений, они будут выводиться на экран одно за другим до тех пор, пока все они не будут найдены. Ответы выводятся следующим образом:

X = пам
Y= боб;
X = том
Y= боб;
X = том
Y= лиз;
Мы можем остановить поток решений, набрав, например, точку вместо точки с запятой (выбор конкретного символа зависит от реализации).
Пример Пролог – программы изображен на рисунке 1. Варианты вопросов и ответов приведены на рисунке 3.

Рисунок 3 -  Варианты вопросов и ответов по программе «Родственные отношения»

Нашей программе можно задавать и еще более сложные вопросы, скажем, кто является родителем родителя Джима? Поскольку в нашей программе прямо не сказано, что представляет собой отношение родитель_родителя, такой вопрос следует задавать в два этапа.
(1) Кто родитель Джима?  Предположим, что это некоторый Y.
(2) Кто   родитель   Y?         Предположим,    что   это некоторый X.
Такой составной вопрос на Прологе записывается в виде последовательности двух простых вопросов:
?- родитель( Y, джим), родитель( X, Y).
Ответ будет:
X = боб
Y= пат
Наш составной вопрос можно интерпретировать и так: «Найти X и Y, удовлетворяющие следующим двум требованиям»:
родитель( Y, джим) и родитель( X, Y)
Если мы поменяем порядок этих двух требований, то логический смысл останется прежним:
родитель( X, Y) и родитель( Y, джим)
Этот вопрос можно задать нашей пролог - системе и в такой форме:
?- родитель( X, Y), родитель( Y, джим).
При этом результат будет тем же.
Таким  же образом  можно спросить:   «Кто  внуки Тома?»
?- родитель( том, X), родитель(Х,Y).
Система ответит так:
X = боб
Y= энн;
X = боб
Y= пат
Следующим вопросом мог бы быть такой: «Есть ли у Энн и Пат общий родитель?» Его тоже можно выразить в два этапа:
(1) Какой X является родителем Энн?
(2) Является ли (тот же) X родителем Пат?
Соответствующий запрос к пролог - системе будет то¬гда выглядеть так:
?- родитель( X, энн), родитель( X, пат).
Ответ:
X = боб
Наша программа-пример помогла проиллюстрировать некоторые важные моменты:
Пользователь может легко задавать пролог - системе вопросы, касающиеся отношений, определенных в программе.
Пролог-программа состоит из предложений. Каждое предложение заканчивается точкой.
Аргументы отношения могут быть (среди проче¬го): конкретными объектами, или константами (такими, как том и энн), или абстрактными объектами, такими, как X и Y. Объекты первого типа называются атомами. Объекты второго типа - переменными.
Вопросы к системе состоят из одного или более целевых    утверждений    (или    кратко целей). Последовательность целей, такая как
родитель (X, энн), родитель(X, пат)
означает конъюнкцию этих целевых утвержде¬ний:
X - родитель Энн и
X - родитель Пат.
Пролог-система    рассматривает    вопросы    как цели, к достижению которых нужно стремиться,
Ответ на вопрос может оказаться или положительным или отрицательным в зависимости от того,   может   ли   быть   соответствующая   цель достигнута или  нет.  В случае положительного ответа мы говорим,  что соответствующая цель достижима и успешна. В противном случае цель недостижима, имеет неуспех   или   терпит неудачу.
Если на вопрос существует несколько ответов, пролог-система найдет столько из них, сколько пожелает пользователь.



Поступайте к нам!
Уважаемые абитуриенты! Мы рады приветствовать Вас на нашем сайте и сегодня сообщаем Вам о том, что Вы всё ещё можете подавать заявления и поступать в ВФ МГИУ. Напоминаем, что на некоторые специальности Вы можете поступить по результатам ЕГЭ. Помните, у нас Вы сможете получить прекрасное образование по следующим направлениям: "Прикладная информатика в экономике", "Бухгалтерский учёт, анализ и аудит", Автомобиле- и тракторостроение", "Менеджмент организации"!
подробнее   >>>
 


все новости...

{LTS}

Статья 1394. Публикация сведений о выдаче патента на изобретение, полезную модель, промышленный образец Статья 1396. Международные и евразийские заявки, имеющие силу заявок, предусмотренных настоящим Кодексом Интеллектуальные информационные системы Экспертные системы, их использование для решения организационно–экономических задач. Основные компоненты экспертных систем Структура экспертной системы Структуры Пролог 

 
     
   
 

В помощь дипломнику

  Демин Л. М. Пояснительная записка дипломного проекта  
  Широков Л. А. Дипломное проектирование  
  Общие правила оформления  
  Правила оформления приложения  
  Литература, рекомендуемая дипломнику  
  Выбор и формулировка темы дипломного проектирования  
  ОСТ 4.071.030  
  Общие положения для Объяснительной записки  
  Состав выпускной квалификационной работы  

Статьи и публикации

  КОМТЕЛ - 2010  
  Олимпиада по информатике в Смоленске  
  Кураторство  
  График контроля выполнения дипломных проектов и готовности к государственному экзамену студентов специальности 080801  
  График проведения консультаций - осений семестр 2009  
  План проведения дня открытых дверей  
  Олимпиада по информатике в Смоленске  
  Результаты внутренней олимпиады по информатике  
  График проведения контрольных точек дипломного проектирования специальности 080801 «Прикладная информатика в экономике»  

Нормативно-правовая основа деятельности кафедры

  Должностная инструкция доцента кафедры  
  Должностная инструкция заведующего кафедрой  
  Общие рекомендации по планированию работы кафедры на учебный год  
  Общие рекомендации по выполнению выпускной квалификационной работы  
  Положение о кафедре ВФ ГОУ МГИУ  
  Положение о кураторе студенческой учебной группы ВФ ГОУ МГИУ  
  Положение о курсовых экзаменах и зачетах  
  Положение о планировании, организации и проведении лабораторных работ  
  Положение о научно-методическом совете филиала ГОУ ВПО МГИУ в г. Вязьме  
  Положение о планировании, организации и проведении практических работ  
  Положение о практике студентов ВФ ГОУ МГИУ  
  Положение о промежуточной аттестации студентов ВФ ГОУ МГИУ  
  Положение о самостоятельной работе студентов  
  Положение о планировании, организации и проведении семинарских занятий  
  Положение о системе рейтинговой оценки студентов  
  Положение о ВФ ГОУ ВПО МГИУ Смоленской области  
  Положение об итоговой государственной аттестации  
  Положение об ученом совете  
  Правила внутреннего трудового распорядка  


Рассылки Subscribe.Ru
Современное образование
Подписаться письмом