ИПСАПР: нахождение геометрических аналогий
Написание алгоритма, который решает арифметические выражения. Анализ задачи нахождение геометрических аналогий. Описание алгоритма предиката test_analogy. Тестирование программы. Отличия процедурного и логического программирования на языке пролог.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | |
Язык | русский |
Дата добавления | 07.12.2014 |
Размер файла | 151,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/ 12
Министерство образования и науки
Российской Федерации
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ
Кафедра компьютерных систем в управлении и проектировании (КСУП)
НАХОЖДЕНИЕ ГЕОМЕТРИЧЕСКИХ АНАЛОГИЙ
Пояснительная записка к курсовой работе
по дисциплине «Интеллектуальные подсистемы в САПР»
Студент гр. ___________ Руководитель: профессор, канд. физ-мат. наук___________ |
Томск 2014
РЕФЕРАТ
Пояснительная записка содержит __ страниц, __ приложение, __ таблиц, __ источников.
Ключевые слова: ГЕОМЕТРИЧЕСКИЕ АНАЛОГИИ, PROLOG, ПРЕДИКАТ
Курсовая работа посвящена созданию решения задачи нахождения геометрических аналогий.
Цель работы - закрепление и более глубокое усвоение теоретических знаний в области искусственного интеллекта, приобретение навыков и методов программирования достаточно сложных задач на языках логического программирования, развитие творческой инициативы при решении конкретных задач.
Программа написана на языке логического программирования SWI Prolog.
Пояснительная записка выполнена в текстовом редакторе Microsoft Word 2013.
Курсовая работа содержит следующие файлы:
- kyrsovoi.pl - программа;
- ИПСАПР.doc - пояснительная записка.
Министерство образования и науки
Российской Федерации
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ
Кафедра компьютерных систем в управлении и проектировании (КСУП)
Утверждаю
зав. кафедрой КСУП
_____ Ю. А. Шурыгин
«___»____________ 2014 г.
ЗАДАНИЕ
на курсовую работу по дисциплине
«Интеллектуальные подсистемы в САПР»
Выдано: студенту гр. 580-1 Кузнецову Павлу Александровичу
Тема:
1. Программа для логических вычислений.
2. Срок сдачи: 1 декабря 2014 г.
3. Исходные данные к проекту:
- Разработайте программу для логических вычислений.
4. Содержание пояснительной записки:
- Анализ задачи;
- Описание алгоритма;
- Тестирование программы;
- Анализ результатов;
- Листинг программы.
5. Дата выдачи задания: 11 сентября 2014 г.
Руководитель
Профессор, канд. физ-мат. наук
_______________
Задание принял к исполнению
_______________
Оглавление
- 1 Введение 6
- 2 Анализ задачи 7
- 3 Описание алгоритма 8
- 4 Тестирование программы 8
- 5 Заключение 11
- Список использованных источников 13
1 Введение
Пролог - язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка [1]. Основными понятиями в языке Пролог являются факты, правила логического вывода и запросы, позволяющие описывать базы знаний, процедуры логического вывода и принятия решений.
Основная цель данной курсовой работы написание алгоритма, который решал бы арифметические выражения.
Областью применения данного алгоритма является вычисление больших сложных выражений, которые решаются быстрее и точнее.
2 Анализ задачи
Целью курсовой работы является нахождение геометрических аналогий. Для решения поставленной задачи нужны некоторые предикаты, чтобы пользователь мог получать ответы на вопросы, на которые не удается ответить с помощью традиционных языков программирования.
Для этого обозначаем фигуры идентификаторами, и храним в базе данных. Предикаты выполняют некоторые операции над своими операндами и помещают результат в качестве выбранной геометрической фигуры. На рисунке 1 представлена задача. Необходимо найти правило по которому фигура А относится к В, и по этому правилу найти вторую фигуру из списка(1,2,3) к фигуре С.
Рисунок 1 - Пример задачи
геометрические аналогии prolog предикат
3 Описание алгоритма
Программа запускается с помощью предиката test_analogy, который имеет входные параметры, в котором мы можем указать как номер теста, так и дать название полю имени теста.
Ее основным отношением является предикат analogy(Pair1,Pair2,Answers), в котором каждая пара Pair представляется термом X is_to Y. В программе, конечно, должно быть дано определение инфиксному оператору is_to. Элементы пары Pair1 находятся в таком же отношении, как и элементы пары Pair2, а во второй элемент пары Pair2 принадлежит множеству ответов Answers.
Большое значение имеет выбор способа представления фигур в рассматриваемой задаче. Этот выбор оказывает существенное влияние на "интеллектуальность" программы. В программе фигуры представлены термами Пролога. Например, фигура A на рис. 1 - квадрат в треугольнике - представляется термом inside(square,triangle).
Связь между фигурами отыскивается с помощью предиката match(A,B,Rule). Это отношение истинно, если операция Rule сопоставляет A и B. Для решения рассматриваемой задачи применяется операция invert, которая обеспечивает обмен местами ее аргументов.
Предикат match в программе используется двояко. В первом случае с его помощью производится сопоставление двух данных фигур. Во втором случае для заданных операции и фигуры подбирается вторая фигура. Однако эти детали несущественны для недетерминированного поведения программы. Наконец, с помощью предиката member проверяется, принадлежит ли данная фигура множеству ответов.
4 Тестирование программы
Запускаем файл kyrsovoi.pl и вводим test_analogy(Name,X). На экране появляется надпись "Name = test, X = inside(square, circle) ;" Что является ответом на первый тест:
Рисунок 2 - тест 1.
Проанализировав фигуры А и В, программа выделила правило, по которому нашла подходящую фигуру из списка(1,2,3) для С. Ей оказался круг с квадратом внутри. Программа как раз так и ответила: " X = inside(square, circle)"
Аналогично прогрмма находит решения для двух других тестов (тест 2 и тест 3):
Рисунок 3 - Скриншот ответов программы.
Тесты 2 и 3:
Рисунок 4 - Тест 2.
Рисунок 5 - Тест 3.
5 Заключение
В данной курсовой работе реализована программа для нахождения геометрических аналогий. Сделаем некоторые выводы:
- программирование на процедурных языках программирования существенно отличается от принципов логического программирования на таком языке программирования как Пролог. Отличие, прежде всего, состоит в том, что при логическом программировании программист озабочен лишь теми проблемами, которые непосредственно связаны с решением поставленной перед ним задачи, то есть он определяет сущности, касающиеся задачи и отношения между этими сущностями. Именно на основе их строится программа на языке Пролог;
- при использовании языка логического программирования задача написания программы решается гораздо быстрее за счёт описанного выше преимущества.
Список использованных источников
1 Википедия. Свободная энциклопедия. [Электронный ресурс]. ? Режим доступа: http://www.ru.wikipedia/wiki/Пролог (дата обращения 13.11.14)
2 Зюзьков В. М. Искусственный интеллект: учебное пособие. - Томск: Томский Межвузовский Центр Дистанционного Образования, 2005. - 59с.
3 Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. - М.: Мир, 1990.
Размещено на http://www.allbest.ru/
...Подобные документы
Общее понятие графа, его виды и сущность вершинного покрытия. Написание точного алгоритма решения задачи о надежности сети, нахождение минимального покрытия. Реализация данного алгоритма на языке TurboC++. Код программы, решающий поставленную задачу.
курсовая работа [1,3 M], добавлен 27.06.2014Исследование правил интеллектуальной игры "Ханойская башня". Описания алгоритма решения задачи на языке программирования Пролог. Характеристика компиляции и запуска программы с решением для трёх дисков. Изучение работы визуализатора, написание скрипта.
курсовая работа [672,6 K], добавлен 13.06.2012Составление производственного плана трех видов изделий при определенных возможностях машин. Написание алгоритма решения задачи симплексным методом: описание переменных, констант, нахождение разрешающего элемента, вычисление таблицы методом прямоугольника.
методичка [237,2 K], добавлен 25.09.2010Описание алгоритма решения задачи графическим способом. Вывод элементов массива. Описание блоков укрупненной схемы алгоритма на языке Pascal. Листинг программы, а также ее тестирование. Результат выполнения c помощью ввода различных входных данных.
контрольная работа [150,4 K], добавлен 03.05.2014Математическая постановка задачи. Обоснование выбора средств разработки. Входные и выходные данные работы программы. Решение задачи теста для написания и отладки программы. Описание программных модулей. Разработка алгоритма, анализ полученных результатов.
курсовая работа [2,2 M], добавлен 13.12.2015Постановка задачи и математическое описание ее решения. Назначение программного обеспечения. Описание принятых идентификаторов. Выбор языка программирования и написание программы на входном языке. Методика отладки программы и проведение ее тестирования.
курсовая работа [96,1 K], добавлен 25.06.2013Постановка задачи и алгоритм решения. Листинг программы, иллюстрирующей работу с символами, строками и блоками. Описание возможностей языка С, используемых для реализации алгоритма. Тестирование итоговой программы, анализ полученных результатов расчета.
курсовая работа [63,0 K], добавлен 27.12.2012Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.
лабораторная работа [123,5 K], добавлен 15.01.2014Изучение способов описания и использования множеств, разработка алгоритма и составление программы для решения задачи. Нахождение в последовательности целых чисел таких, которые встречаются в ней ровно два раза. Набор программы, ее отладка и тестирование.
лабораторная работа [121,4 K], добавлен 03.10.2010Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.
курсовая работа [1,5 M], добавлен 21.09.2010Ханойские башни: постановка задачи, условия перемещения дисков со стержня на стержень. Стратегия решения, используемые предикаты. Текст программы на языке Пролог. Построение модели решения задачи о ферзях. Примеры использования списков в языке Пролог.
презентация [72,0 K], добавлен 29.07.2012Составление алгоритма и разработка в среде программирования Delphi 7 программы, вычисляющей макроэкономические индексы цен. Реализация программы в виде 4 форм и 1 диалогового окна. Описание алгоритма решения задачи. Текст программы, руководство оператора.
курсовая работа [1,4 M], добавлен 04.06.2013Постановка задачи и ее математическая модель. Блок-схема алгоритма обработки массивов координат точек. Тестирование алгоритма сортировки. Используемые глобальные и локальные переменные. Листинг программы на языке Си. Анализ результатов. Пример работы.
курсовая работа [1,8 M], добавлен 08.11.2012Этапы процедуры принятия решений. Разработка математического алгоритма. Блок-схема алгоритма работы программы. Разработка программы на языке программирования С++ в среде разработки MFC. Текст программы определения технического состояния станка с ЧПУ.
курсовая работа [823,0 K], добавлен 18.12.2011Приобретение теоретических и практических навыков программирования на языке Паскаль. Математическая формулировка задачи и выбор метода обработки информации. Разработка алгоритма и его описание. Описание программы. Форма представления исходных данных.
курсовая работа [224,3 K], добавлен 11.02.2016Понятие алгоритма, его свойства. Дискретность, определенность, результативность, формальность как свойства алгоритма. Программа как описание структуры алгоритма на языке алгоритмического программирования. Основные структурные алгоритмические конструкции.
реферат [1,3 M], добавлен 18.11.2010Выбор алгоритма решения задачи. Разработка программы, обеспечивающую эффективную обработку и хранение информации с использованием линейных списков. Написание программы на псевдокоде и на языке программирования высокого уровня. Результаты работы программы.
курсовая работа [2,1 M], добавлен 21.04.2012Математическое описание задачи решения обыкновенного дифференциального уравнения численным явным методом Рунге-Кутта, разработка схемы алгоритма и написание программы в среде программирования Microsoft Visual Studio 2010. Тестирование работы программы.
курсовая работа [1,1 M], добавлен 22.01.2014Разработка алгоритма синтеза пленочного резистора по заданным параметрам исходного резистора, программы реализации данного алгоритма на языке С++. Отладка и тестирование программы, составление документации и инструкции пользователя данной программой.
курсовая работа [1,7 M], добавлен 08.06.2009Разработка и реализация программы расчета заданных функций на языке программирования VBA. Математическая модель, параметры и характеристики задачи, критерии оценки эффективности созданного модуля. Разработка алгоритма и тестирование программного модуля.
курсовая работа [488,7 K], добавлен 08.09.2010