ИПСАПР: нахождение геометрических аналогий

Написание алгоритма, который решает арифметические выражения. Анализ задачи нахождение геометрических аналогий. Описание алгоритма предиката 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.