Вернутся на главную

ЛЕКЦИЯ 1


ЛЕКЦИЯ 1 на нашем сайте

Статьи
Статьи для студентов
Статьи для учеников
Научные статьи
Образовательные статьи Статьи для учителей
Домашние задания
Домашние задания для школьников
Домашние задания с решениями Задания с решениями
Задания для студентов
Методички
Методические пособия
Методички для студентов
Методички для преподавателей
Новые учебные работы
Учебные работы
Доклады
Студенческие доклады
Научные доклады
Школьные доклады
Рефераты
Рефератывные работы
Школьные рефераты
Доклады учителей
Учебные документы
Разные образовательные материалы Разные научные материалы
Разные познавательные материалы
Шпаргалки
Шпаргалки для студентов
Шпаргалки для учеников
Другое

Модуль 1. Приемы программирования на ПРОЛОГе.

Тема 1. Основные понятия и определения логического программирования.

Императивный и декларативный стили программирования. Этапы программирования на ПРОЛОГе. Факты и правила. Предикат в ПРОЛОГе. Структура ПРОЛОГ-программы. Алфавит языка. Термы. Константы и переменные. Запись фактов и правил. Цели. Конъюнкция целей. Структуры и деревья. Функторы. Альтернативное задание типов.

ЛЕКЦИЯ 1

По характеру семантики (т.е. модели вычислительного процесса) в языках программирования можно выделить два основных наклонения – повелительное (императивное, представленное операторами, командами, предписаниями) и изъявительное (декларативное, описательное). В одних языках программирования преобладает описание действий, алгоритма, т.е. процесса, позволяющего получить результат. Программа является строгой последовательностью инструкций (операторов и выражений). Соответствующие языки называют императивными (процедурными), (FORTRAN, BASIC, ALGOL, PL/1, PASCAL, C, ADA). Другие языки программирования предполагают не столько построение (вычисление) результата, сколько описание (декларацию) его свойств в виде функциональных и логических зависимостей; на основе этой информации система программирования сама должна построить алгоритм. Такие языки называют не процедурными. Не процедурные языки в свою очередь делятся на декларативные и проблемно-ориентированные языки.

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

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

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

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

Рассмотрим некоторые наиболее важные применения искусственного интеллекта.

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

Экспертные системы. Система обработки данных, которые основаны на знаниях и экспертных оценках в некоторой специальной области. Эта система способна с помощью специальной программы, которая принимает решение, или машины вывода, решать проблемы, для которых, как считается, необходимы способности человека.

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

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

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

Моделирование. С помощью символьной обработки и методов искусственного интеллекта особенно удобно моделировать дискретные системы. Средства мета-программирования, которые содержатся в новых Лисп-системах, предлагают более эффективные механизмы, чем в традиционных языках моделирования. Следует отметить также когнитивную психологию. Эта наука возникла на границе искусственного интеллекта и психологии. Ее задачей является поиск ответов на вопрос, каким образом человек познает, учит, размышляет, изобретает и т.д.

Обработка сигналов и распознавание образов. Эта задача заключается в автоматическом наблюдении и идентификации (или классификации) объектов. Но для решения, с точки зрения распознавания образов, в отличие от символьной обработки, главную роль играет форма информации, а не ее содержание и значение. К распознаванию образов в символьной обработке относится поиск и сравнение разных символьных структур, сопоставление с образцом.

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

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

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

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

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





Название статьи ЛЕКЦИЯ 1