Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AlgStr / Библиотека / POSIBNIK / СТРУКТУРИ ТА ОРГАНИЗАЦИЯ ДАНИХ В ЕОМ.doc
Скачиваний:
37
Добавлен:
23.03.2015
Размер:
1.1 Mб
Скачать

Информация и данные. Понятие о структурах данных. Информационная модель объекта

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

Элементами информационной модели являются атрибуты, описываю­щие соответствующие свойства объекта. Каждому атрибуту соответст­вует множество допустимых значений. Конкретному, выделенному экземпляру объекта соответствует экземпляр модели, где каждому ат­рибуту присвоено определенное значение.

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

Большинство атрибутов изменяется с течением времени, т.е. как правило, необходимо учитывать динамический характер моделей. По отношению к внешней среде объекта атрибуты можно разделить на входные, внутренние и выходные. Вектор (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, що дозволяє працювати суто в режимі інтерпретації.

Основні ознаки мови ПРОЛОГ:

  1. це декларативна мова (тобто мова описів);

  2. це мова обробки символів;

  3. наявність механізму виведення з пошуком і поверненням;

  4. наявність механізму уніфікації (зіставлення зі зразком);

  5. проста й виразна структура даних (основою подання даних служить дерево);

  6. нероздільність програм і даних;

  7. відсутність покажчиків, операторів переходу, циклів;

  8. механізм рекурсії – основа для організації повторень.

Повна могутність мови ПРОЛОГ визначається не однією якоюсь окремою ознакою, а сукупністю всіх цих особливостей. Декларативне програмування – це програмування в термінах цілей, тобто замість того, щоб указати програмі ЯК це необхідно зробити, ми задаємо ЩО ми хочемо одержати від програми. А вже сама система за допомогою убудованого механізму виведення шукає потрібний нам розв’язок.

Наприклад, нехай СУМА – це предикат, що встановлює залежності між двома складниками (останні два операнди) і сумою двох дійсних чисел (перший операнд). Потужність декларативного програмування можна проілюструвати на прикладі виконання таких цілей:

  • СУМА(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 – вільні змінні. ПРОЛОГ шукає такі значення змінних, що входять у ціль, при яких цей предикат перетворюється на істину. Головне для ПРОЛОГу – довести істинність або хибність поставленої цілі. Все інше – конкретизація змінних, виведення їх значень тощо – побічний ефект доказу (узгодження) цілі.