Курсовая с практикой на тему Логическое программирование
-
Оформление работы
-
Список литературы по ГОСТу
-
Соответствие методическим рекомендациям
-
И еще 16 требований ГОСТа,которые мы проверили
Введи почту и скачай архив со всеми файлами
Ссылку для скачивания пришлем
на указанный адрес электронной почты
Содержание:
введение. 2
1 Направления логического
программирования. 4
2 Кластеризация объектов. 6
2.1 Задачи кластеризации. 6
2.2 Меры расстояний при кластеризации. 7
2.3
Способы представления объектов кластеризации. 8
3 Программное средство TEXT-Clusterer. 11
3.1
Задача кластеризации текстовых данных. 11
3.2
Методы решения выбранной задачи. 12
3.3 Внешние спецификации программного
средства Text-Clusterer 14
3.4
Возможности программного средства. 15
Заключение. 20
Список литературы 21
Введение:
На сегодняшний день логическое программирование стало все
чаще применяться для решения научных и прикладных задач, где требуется
логическое мышление. Логическое программирование основывается на том, что
компьютер должен уметь работать по логическим расчётам, которые характерны для человека.
Логическое программирование – это такое программирование, при котором программа
задаётся совокупностью правил без явного указания последовательности их
применения.
Одной из главных причин развития логического
программирования является существование большого множества неформализованных
задач. К неформализованным относят такие задачи, которые обладают одной или
несколькими из следующих характеристик:
1. Задачи не могут быть заданы в числовой форме
(данные представлены в символьном виде).
2. Не существует точного метода решения.
3. Есть возможность выбора, но нет алгоритмического
решения.
4. Противоречивость исходных данных и знаний о
предметной области.
У логического программирования имеется два главных отличия
от классического программирования:
1. Использование качественных характеристик. Для
оценки данных применяются не числовые метрики, а символьные.
2. Алгоритмы получения соответствующих результатов явно
не задаются, но описываются объекты, их свойства и отношения между собой.
В рамках курсовой работы необходимо
выбрать задачу, которая решается с применением технологии логического
программирования, и написать программное средство на языке программирования Python, реализующее выбранную задачу. В соответствии с
поставленной целью курсовой работы определены следующие задачи:
— описать направления, решаемые с применением
логического программирования;
— выбрать задачу для одного из направлений
логического программирования;
— разработать программное средство на языке
программирования Python,
решающее выбранную задачу.
Заключение:
В результате выполнения курсовой работы было разработано
программное средство Text-Clusterer на языке
программирования Python,
предназначенное для кластеризации текста.
При создании программного средства Text-Clusterer
были приняты следующие решения:
— разработку ПО вести в ОС Ubuntu
20.04;
— векторизацию объектов
кластеризации осуществить посредством статистической меры TF-IDF;
— для
кластеризации объектов был выбран алгоритм k-средних;
— вывод результатов
кластеризации осуществить в текстовые файлы, каждый из которых и представляет
полученный после отработки алгоритма кластер.
В процессе разработки программного средства
были изучены основные особенности логического программирования. Были освоена
интеллектуальная обработка данных на базе кластерного анализа. Был изучен
алгоритм k-средних для кластеризации объектов, были рассмотрены основные
библиотеки языка Python,
реализующие данный алгоритм. Также была осуществлена проверка работоспособности
разработанного программного средства, которая позволила сделать выводы о выборе
количества кластеров.
Фрагмент текста работы:
1 Направления логического
программирования
По мнению японских разработчиков Токийского института,
логическое программирование является связующим звеном, которое позволяет
взглянуть на современные тенденции развития по следующим направлениям:
— программирование;
— системы баз данных;
— искусственный интеллект (ИИ).
Логическое программирование расширяет возможности
классического программирования, позволяет решать поставленные задачи, не
прибегая к строгой последовательности действий.
В логическом программировании база данных рассматривается
как набор фактов (аксиом). Выполнение запроса выполняется как доказательство
того, что некоторая формула является логической последовательностью фактов, то
есть теоремой. Результатом запроса будут частные значения переменных, при
которых формула является истинной.
Развитие искусственного интеллекта началось с намерения
создать подобный интеллект в машинах, схожий с человеческим. Основными целями
развития ИИ являются:
— создание
экспертных систем – систем, которые демонстрируют разумное поведение:
учиться, показывать, объяснять и давать советы;
— реализация
человеческого интеллекта в машинах – создание машины, способную
понимать, думать, учить и вести себя как человек.
Логическое программирование может отражаться в следующих задачах:
1. Распознавание образов. Задача состоит в
отнесении входного набора данных, представляющего распознаваемый объект, к
одному из заранее известных классов.
2. Кластеризация данных. Задача состоит в
группировке входных данных по присущей им "близости". В результате
данные разбиваются на заранее неизвестное число кластеров (сжатие данных, их
анализ и поиск закономерностей).
3. Аппроксимация функций. Имеется набор экспериментальных
данных {(X1,Y1), …, (Xn,Yn)}, представляющий значения Yi неизвестной функции
от аргумента Xi, i = 1,…, n. Требуется найти функцию, аппроксимирующую
неизвестную и удовлетворяющую некоторым критериям (моделирование сложных систем
и создание систем управления сложными динамическими объектами).
4. Предсказание. Имеется набор {y(t1), y(t2),…,
y(tn)} значений y, представляющих поведение системы в моменты времени t1,
t2,…, tn. Требуется по предыдущему поведению системы предсказать ее поведение
y(tn+1) в момент времени tn+1 (управление складскими запасами, системы принятия
решений).
5. Оптимизация. Цель – найти решение NP-полной
проблемы, удовлетворяющее ряду ограничений и оптимизирующее значение целевой
функции (задача коммивояжера).
6. Контекстно-адресуемая (ассоциативная) память.
Эта память позволяет считывать содержимое по частичному или искаженному
представлению входных данных (мультимедийные базы данных). В рамках курсовой работы была выбрана задача кластеризации
данных. 2 Кластеризация объектов
Кластеризация
– это объединение множества объектов по похожести их свойств в группы
(кластеры). Каждый кластер состоит из схожих объектов, а объекты разных кластеров
существенно отличаются.
На
сегодня предложено несколько десятков алгоритмов кластеризации и еще больше их
разновидностей [1].
2.1 Задачи кластеризации
Задача
кластеризации относится к широкому классу задач обучения без учителя, когда
известно только описание обучающей выборки и требуется сгруппировать объекты по
схожим признакам [1].
Пусть
множество X – это пространство объектов, а функция ρ: X × X → [0, ∞) определяет
расстояния между ними. Тогда задачей кластеризации является найти такой алгоритм
a: X → Y, где каждый кластер состоит из близких объектов при заданной функции
ρ, а объекты разных кластеров существенно различны.
Решение
задачи кластеризации принципиально неоднозначно, потому что ей присущи
следующие неопределенности:
1. Точной
постановки задачи кластеризации нет.
2. Существует
много критериев качества кластеризации.
3. Существует
много эвристических методов кластеризации.
4. Число
кластеров, как правило, неизвестно заранее.
5. Результат
кластеризации существенно зависит от функции расстояния между объектами,
которую эксперт задаёт субъективно.
Существуют
следующие задачи кластеризации:
1. Разбиение
множества X на группы схожих объектов для работы с каждой из них в отдельности
(задачи классификации, регрессии, прогнозирования).
2. Сжатие
объема хранимых данных до одного представителя в каждом кластере (задача
сжатия данных).
3. Выделение
нетипичных объектов, которые не подходят ни к одному из кластеров (задачи
одноклассовой классификации).
4. Построение
иерархии множества объектов (задача таксономии).