- •Міністерство освіти і науки України Дніпропетровський національний університет
- •Структури та організація даних в еом
- •Дніпропетровськ
- •1. Понятие об информации
- •1.1. Объем информации
- •1.2. Количество информации
- •Вопрос 1: Забила ли Украина более одного гола? Да – 1 / Нет – 0;
- •Вопрос 2: Забила ли Италия более одного гола? Да – 1 / Нет – 0;
- •Вопрос 3: Забила ли Украина четное число голов? Да – 1 / Нет – 0;
- •Вопрос 4: Забила ли Италия четное число голов? Да – 1 / Нет – 0;
- •Вопрос1. Произошло ли с1? Да – 1;
- •Вопрос2. Произошло ли с2? Да – 01;
- •Вопрос3. Произошло ли с3? Да – 001;
- •2. Преобразование информации при решении задач на компьютере
- •Понятие данных
- •Информация и данные. Понятие о структурах данных. Информационная модель объекта
- •Понятие о данных
- •1. Основи мови програмування пролог
- •1.1. Основні поняття
- •1.2. Синтаксис мови пролог
- •1.3. Класифікація даних у пролозі
- •1.4. Приклад доказу в пролозі
- •1.5. Подання задачі у вигляді і-або дерева
- •1.6. Структура програми в системі tp
- •1.7. Убудовані типи даних мови tp
- •1.8. Висновки
- •2. Підстави логічного програмування
- •2.1. Принцип резолюцій
- •2.3. Способи застосування принципу резолюцій
- •2.4. Диз’юнкти хорhа
- •3. Три семантичні моделі пролог-програми
- •4. Подання знань
- •4.1. Процес подання знань
- •4.2. Способи подання бази знань
- •4.2.1. Представлення цілісних інформаційних елементів у вигляді фактів
- •4.2.2. Подання атрибутів у вигляді фактів
- •4.2.3. Представлення знань у вигляді списку структур
- •4.2.4. Подання у вигляді рекурсивних структур
- •4.2.5. Подання у вигляді двійкового дерева
- •4.2.6. Порівняння різних виглядів подання бази даних
- •4.2.7. Компонування даних у список
- •4.3. Використання складених об'єктів
- •4.4. Використання альтернативних доменів
- •4.5. Засоби документування програми
- •4.6. Типи й властивості відношень предметної області
- •4.6.1. Обмеження, що забезпечують цілсність відношень
- •4.6.2. Властивості відношень бази знань і їхня підтримка в програмі на tp симетрія і асиметрія
- •Рефлексивность і нерефлексивность
- •Транзитивність
- •Симетричність і транзитивність
- •Спроба 1
- •Спроба 2.
- •Запам'ятовування списку відвіданих місць
- •4.7. Списки
- •4.7.1. Подання й зображення списків
- •4.7.2. Використання списків
- •4.7.3. Метод поділу списку на голову і хвіст (псгх)
- •4.7.4. Списки списків
- •Методи програмування
- •5.1. Повторення і відкіт (пв)
- •5.2. Метод відкоту після невдачі (впн)
- •5.3. Метод відсікання та відкоту (вв)
- •5.4. Повторення та рекурсія (пр)
- •5.5. Метод узагальненого правила рекурсії (упр)
- •5.6. Побудова рекурсивних структур методом прогресуючої підстановки (пп)
- •5.7. Предикат відсікання
- •5.8. Організація багаторазово виконуваних інтерактивних програм (бвіп)
- •5.9. Метод аналізу станів (ас)
- •5.10. Метод організації висхідних рекурсивних обчислень (вро)
- •5.11. Комбінація спадних і висхідних рекурсивных обчислень (ксвро)
- •5.12. Предикат fail-if (not)
- •5.13. Предикат true
- •5.14. Модифікація бази даних (мбд)
- •5.15. Керування базою даних (кбд)
- •5.16. Глобальні змінні (гз)
- •5.17. Накопичування результатів у базі даних за допомогою вимушеного відкоту і глобальної змінної (нрввгз)
- •5.18. Метапрограмування (мп)
- •Список рекомендованої літератури
- •1. Основи мови програмування пролог 20
- •2. Підстави логічного програмування 30
- •3. Три семантичні моделі пролог-програми 35
- •4. Подання знань 38
- •Програмування мовою пролог
Информация и данные. Понятие о структурах данных. Информационная модель объекта
При разработке программ для решения сложных задач всегда можно выделить некоторый объект, являющийся главным элементом исследования. Таким объектом может быть номенклатура изделий некоторого завода, календарный план работы цеха, студенческая группа. Объект характеризуется свойствами, для исследования взаимосвязей которых и решается задача. Одним из возможных методов решения задачи является моделирование объекта с помощью компьютера. Для этой цели строится информационная модель, в которую включается информация только о существенных для данной задачи свойствах (характеристиках, сторонах) объекта. Другая задача, касающаяся этого же объекта, потребует знания информации о других его свойствах - строится другая информационная модель. Объединение различных информационных моделей объекта составит его комплексную модель, предназначенную для решения выделенной совокупности задач. Модель строится для набора однородных (с одинаковым вектором свойств) объектов и является изображением, описанием объекта при решении задачи.
Элементами информационной модели являются атрибуты, описывающие соответствующие свойства объекта. Каждому атрибуту соответствует множество допустимых значений. Конкретному, выделенному экземпляру объекта соответствует экземпляр модели, где каждому атрибуту присвоено определенное значение.
Атрибутом является логически неделимый элемент информации об объекте, который может быть связан с другими элементами, связи между атрибутами задаются связями между свойствами объекта.
Большинство атрибутов изменяется с течением времени, т.е. как правило, необходимо учитывать динамический характер моделей. По отношению к внешней среде объекта атрибуты можно разделить на входные, внутренние и выходные. Вектор (X) входных атрибутов включает те атрибуты, через которые внешняя среда влияет на объект. Вектор (С) внутренних, собственных атрибутов определяет конфигурацию объекта в текущей момент времени. Вектор (У) выходных атрибутов определяет те атрибуты, через которые объект воздействует на внешнюю среду. Алгоритмом решения задачи является некоторый оператор А, преобразующий входные и внутренние атрибуты в выходные.
Для таких систем, учитывающих предысторию системы и воздействий внешней среды, необходимо хранить информацию на определенных носителях.
Понятие о данных
Информация существует благодаря связи с носителем, который представляет среду, способную находиться в одном из фиксированных наборов состояний.
Данными называется изображение информации, т.е. описание состояния носителя. Для превращения информации в данные и наоборот необходим язык преобразования сообщения в состояние носителя и наоборот. Алфавит такого языка состоит из набора знаков (литер), которые могут быть отображены на состояние носителя (при этом для различных носителей система, отображений может быть различной). Информационное сообщение изображается в виде последовательности (строки) символов на логическом уровне, а изображение информации с описанием состояний носителя осуществляется ни физической уровне данных. И на логическом и на физическом уровне мы оперируем абстрактными понятиями данных. На логическом уровне нас не интересует метод преобразования символов на физическую память, а на физическом уровне нас не интересует реализация битов , управление устройством и многие другие вопросы. Знак обычно не связывается со смыслом, т.е. он представляет собой конструкцию данных, а не информации. Исключением являются знаки-цифры, несущие определенную информацию при своем появлении. Единице информации (атрибуту) соответствуем некоторое "слово" ( подстрока символов), называемое обычно элементом данных. Таким образом, информационная модель отображается на совокупность взаимосвязанных элементов данных, объединенных в логическую запись. При этом каждой логической записи соответствует свой экземпляр объекта, набору объектов соответствует файл.
Рассмотрим случай дискретного носителя, т.е. когда носитель состоит из конечного множества элементов, способных находиться в одном из ( к ) устойчивых состояний. Будем считать, что каждое состояние обеспечивается стандартным физическим устройством. Последовательность из ( n ) таких элементов представляет собой среду, способную находиться в устойчивых состояний. Хотя с ростом ( к ) растет диапазон представляемых кодов, но растет и сложность системы.
Количество стандартных устройств определяется по формуле Q(k)=k[lnN/lnK].
Функция Q(k) возрастает при к≥3 . Надежность системы P(k)=(1-q)Q где:
q- вероятность сбоя в одном устройстве, будет максимальной при минимальном Q .
Считая стоимость системы равной S=a*Q(k) мы находим, что надежная система будет при этих предположениях и системой с минимальной стоимостью. Легко проверить, что Q(k) будет наименьшим при к=3 , однако сложность реализации троичных элементов привела к использованию двоичных элементов. При этом основным элементом, среды является двоичный разряд (бит). Последовательность разрядов объединяется в группу изображения (кодирования) знака (символа). Последовательность групп разрядов объединяется в поле для записи элемента данных, т.е. поле является элементарной, основной конструкцией - понятием данных на физическом уровне. Поля объединяются в физические записи, содержащие данные логических записей. При отображении логической единицы на физическую появляется понятие проекции или отображения символов языка данных на группу двоичных разрядов. Наиболее распространенным случаем является использование групп одинаковой длины независимо от изображенного символа. Длина такой группы зависит от количества символов в алфавите. Примеры систем:
М2- в которой для каждого символа отводится 6 разрядов ;
ГОСТ 13052-67 - для каждого символа используется 7 бит;
ДКОИ - для каждого символа используется 8 бит.
Таким образом, при решении задачи приходится рассматривать три области - область реального мира, область информации и область данных. В первой области основным элементом является объект с выделенным множеством взаимосвязанных свойств. Объект является логическим понятием, с которым связаны понятия «экземпляр объекта» и «набор экземпляров объектов».
При отображении первой области на вторую объект заменяется информационной моделью, содержащей множество атрибутов и описание связей между ними. Экземпляру объекта соответствует сечение модели. При отображении второй области на третью атрибуты заменяются элементами данных, а взаимосвязи атрибутов реализуются специальными средствами, так что информационная модель преобразуется в структурированный (организованный специальным образом) набор данных.
Велику роль у створенні ефективної реалізації мови ПРОЛОГ відіграла група математиків з Единбургу (Шотландія). Мова ПРОЛОГ, що описана У. Клоксиним і К. Мелишем у книзі “Программирование на языке ПРОЛОГ”, тривалий час залишається фактичним стандартом цієї мови.
Мова ПРОЛОГ істотно відрізняється від традиційних алгоритмічних мов. Насамперед мова ПРОЛОГ – це декларативна мова, що визначило наступні області її застосування:
- обробка знань;
- експертні системи;
- створення динамічних реляційних баз даних;
- переклад програм з однієї мови на іншу;
- створення пакетів символьних обчислень;
- доказ теорем;
- швидке створення прототипів прикладних програм.
Мова ПРОЛОГ також є універсальною мовою програмування. Це одна з компактних мов з досить малою системою понять, але могутніми засобами розширення. До цього класу мов відносять такі мови, як РЕФАЛ, ЛІСП, ФОРТ. Мова ПРОЛОГ (разом з мовою ЛІСП) служить основою для розробки додатків штучного інтелекту (ШІ). Основою для мов ШІ є їх здатність подавати знання. Маючи базу знань, система ШІ здатна самостійно шукати й знаходити потрібні розв’язки. Пошук розв’язок може містити багато кроків. Тому ефективність роботи додатків ШІ – одне зі слабких місць усіх мов ШІ й особливо мови ПРОЛОГ. Багато мов ШІ є мовами, орієнтованими на інтерпретацію, що ще більше позначається на їх ефективності. Типова схема додатків ШІ має такий вигляд (рис. 1).
БАЗА
ЗНАНЬ ІНТЕРПРЕТАТОР
Рис. 1. Типова схема додатків ШІ
Розв’язання задачі будується шляхом взаємодії інтерпретатора з базою знань деякої предметної області, описаної цією ж мовою. Задача перед системою ставиться у вигляді цілі, заданої засобами цієї ж мови.
Фірма Борланд створила компілювальну версію мови ПРОЛОГ – TURBO PROLOG (TP). На даний час найбільш популярна версія TP 2.0. Вона містить інтегроване середовище розробки з можливістю налагодження програми в режимі інтерпретації, а також компілятор і завантажник, що дозволяють створювати виконуючі модулі, здатні працювати без системи ПРОЛОГ (у вигляді EXE-файлів). Обробна система (інтерпретатор) разом з базою даних вбудовується у виконуючий код. Таким способом можна розробляти більш ефективні за швидкодією програми.
У пакет, що поставляється разом із системою TP 2.0, входить інтерпретатор PIE, написаний мовою TP, що дозволяє працювати суто в режимі інтерпретації.
Основні ознаки мови ПРОЛОГ:
це декларативна мова (тобто мова описів);
це мова обробки символів;
наявність механізму виведення з пошуком і поверненням;
наявність механізму уніфікації (зіставлення зі зразком);
проста й виразна структура даних (основою подання даних служить дерево);
нероздільність програм і даних;
відсутність покажчиків, операторів переходу, циклів;
механізм рекурсії – основа для організації повторень.
Повна могутність мови ПРОЛОГ визначається не однією якоюсь окремою ознакою, а сукупністю всіх цих особливостей. Декларативне програмування – це програмування в термінах цілей, тобто замість того, щоб указати програмі ЯК це необхідно зробити, ми задаємо ЩО ми хочемо одержати від програми. А вже сама система за допомогою убудованого механізму виведення шукає потрібний нам розв’язок.
Наприклад, нехай СУМА – це предикат, що встановлює залежності між двома складниками (останні два операнди) і сумою двох дійсних чисел (перший операнд). Потужність декларативного програмування можна проілюструвати на прикладі виконання таких цілей:
СУМА(8, 3, 5) – так, тому що 8 = 3 + 5;
СУМА(10, 3, 5) – ні, тому що 10 3+ 5;
СУМА(8, X, 5) – так при X = 3;
СУМА(X, 3, 5) – так при X = 8;
СУМА(X,3,Y) – так при X = 3 + Y,
де X, Y – вільні змінні. ПРОЛОГ шукає такі значення змінних, що входять у ціль, при яких цей предикат перетворюється на істину. Головне для ПРОЛОГу – довести істинність або хибність поставленої цілі. Все інше – конкретизація змінних, виведення їх значень тощо – побічний ефект доказу (узгодження) цілі.