- •Объект информатики. Предметная область информатики как науки
- •3.Объект информатики. Предметная область информатики как науки
- •Рекуррентные соотношения
- •Частично рекурсивные функции определяются аналогичным образом, только к двум операторам подстановки и примитивной рекурсии добавляется ещё оператор минимизации аргумента.
- •Массовые задачи
- •Объединение
- •Пересечение
- •Вычитание
- •Выборка (ограничение)
- •1. Модель Мальтуса
Объединение
Отношение с тем же заголовком, что и у совместимых по типу отношений A и B, и телом, состоящим из кортежей, принадлежащих или A, или B, или обоим отношениям. A UNION B
Пересечение
Отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям A и B. A INTERSECT B
Вычитание
Отношение с тем же заголовком, что и у совместимых по типу отношений A и B, и телом, состоящим из кортежей, принадлежащих отношению A и не принадлежащих отношению B. A MINUS B
Проекция в реляционной алгебре — унарная операция, которая позволяет получить «вертикальное» подмножество данного отношения, или таблицы, то есть такое подмножество, которое получается выбором специфицированных атрибутов с последующим исключением, если это необходимо, избыточных дубликатов кортежей. Результат –таблица, полученная из исходной вычеркиванием атрибутов, не входящих в выбранное множество, с последующим возможным удалением избыточных дубликатов кортежей.
Выборка (ограничение)
Отношение с тем же заголовком, что и у отношения A, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие c дают значение ИСТИНА. C представляет собой логическое выражение, в которое могут входить атрибуты отношения A и/или скалярные выражения. A WHERE c
Соединением отношений А и В по условию С называется логическое выражение, в которое могут входить атрибуты отношений А и В и (или) скалярные выражения.
Таким образом, операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях А и В имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.
Тэта-соединение
Пусть отношение А содержит атрибут Х, отношение В содержит атрибут У, а тэта - один из операторов сравнения (=, <,>,>=,<= и т.д.). Тогда тэта наз. соединением отношения А по атрибуту Х с отношением В по атрибуту У
Это частный случай операции общего соединения.
Иногда, для операции тэта-соединения применяют следующий, более короткий синтаксис:
Экви-соединение
Наиболее важным частным случаем тэта-соединения является случай, когда тэта есть просто равенство.
Синтаксис экви-соединения:
естественное соединение - проекция по всем атрибутам, кроме одного из дублирующих. A join B. Естественное соединение производится по всем одинаковым атрибутам.
Функциональные зависимости. Суперключи и ключи таблиц. Частичная и транзитивная зависимость. 1-я, 2-я и 3-я нормальные формы. Нормализация баз данных с помощью декомпозиции.
Ключ схемы отношения – это подсхема исходной схемы, состоящая из одного или нескольких атрибутов, для которых декларируется условие уникальности значений в кортежах отношений. все значения кортежей, принадлежащих ключевым атрибутам, уникальны, единственны в своем отношении. 2е требование, предъявляемое к ключу отношения, – это требование неизбыточности - ни для какого строгого подмножества ключа требование уникальности не предъявляется.
На интуитивном уровне понятно, что ключевой атрибут – это тот атрибут отношения, который однозначно и точно определяет каждый кортеж отношения.
простой ключ – это ключ, состоящий из одного и не более атрибута. Составной ключ – это ключ, состоящий из двух и более атрибутов. Например, составным ключом в списке учебных аудиторий являются номер корпуса и номер аудитории. Суперключ – это любое надмножество любого ключа. Следовательно, сама схема отношения заведомо является суперключом. Первичный ключ – это просто ключ, который при задании базового отношения был объявлен первым. кандидатные ключи – это все остальные ключи, объявленные после первичного ключа.
Частичной зависимостью (частичной функциональной зависимостью) называется зависимость неключевого атрибута от части составного ключа.
Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, которая потенциально может привести к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.
Процесс преобразования базы данных к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры базы данных к виду, обеспечивающему минимальную избыточность, то есть нормализация не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение объёма БД. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в БД информации. Нормализация может применяться к таблице, которая представляет собой правильное отношение.
Устранение избыточности производится, как правило, за счёт декомпозиции отношений таким образом, чтобы в каждом отношении хранились только первичные факты (то есть факты, не выводимые из других хранимых фактов).
Типы нормальных форм. Первая нормальная форма (1NF). Отношение находится в первой нормальной форме тогда и только тогда, когда в любом допустимом значении отношения каждый его кортеж содержит только одно значение для каждого из атрибутов.
Вторая нормальная форма (2NF). Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме, и при этом любой его атрибут, не входящий в состав потенциального ключа, функционально полно зависит от каждого возможного ключа. Функционально полная зависимость означает, что атрибут функционально зависит от всего составного потенциального ключа, но при этом не находится в функциональной зависимости от какой-либо из входящих в него частей. Или другими словами: в 2NF нет неключевых атрибутов, зависящих от части составного ключа.
Третья нормальная форма (3NF). Согласно определению Кодда, таблица находится в 3НФ тогда и только тогда, когда выполняются следующие условия:1. Отношение R (таблица) находится во второй нормальной форме;2. Каждый непервичный атрибут R находится в нетранзитивной (то есть прямой) зависимости от каждого ключа R.
ТО, отношение находится в 3NF тогда и только тогда, когда оно находится во 2NF и отсутствуют транзитивные зависимости неключевых атрибутов от ключевых. Транзитивной зависимостью неключевых атрибутов от ключевых называется следующая: A > B и B > C, где A — набор ключевых атрибутов (ключ), B и С — различные множества неключевых атрибутов.
При решении практических задач в большинстве случаев третья нормальная форма является достаточной. Процесс проектирования реляционной базы данных, как правило, заканчивается приведением к 3NF.
Связи между таблицами в базе данных. Типы связей. Первичный ключ таблицы. Внешние ключи. Ссылочная целостность
Различают взаимосвязи типа "один к одному", "один ко многим" и "многие ко многим". Взаимосвязь "один к одному" (между двумя атрибутами)
Мы предполагаем, что ключ (номер) клиента является его уникальным идентификатором, то есть он не изменяется и при последующих поступлениях заказов от данного клиента. Если наряду с номером клиента в базе данных хранится и другой его уникальный идентификатор (например, номер паспорта), то между такими двумя уникальными идентификаторами существует взаимосвязь "один к одному". Взаимосвязь "один ко многим" (между двумя атрибутами). Имя клиента и его номер существуют совместно. Клиентов с одинаковыми именами может быть много, но все они имеют различные номера. Каждому клиенту присваивается уникальный номер. Это означает, что данному номеру клиента соответствует только одно имя. Взаимосвязь "многие ко многим" (между двумя атрибутами). Несколько клиентов с одинаковыми именами могли быть обслужены несколькими продавцами. Несколько продавцов с одинаковыми именами могли получить заказы от нескольких клиентов. Между атрибутами "имя клиента" и "имя продавца" существует взаимосвязь "многие ко многим".
Первичный ключ – это набор атрибутов, выбранных для идентификации уникальных экземпляров сущности. Первичный ключ может включать в себя один или несколько атрибутов первичного ключа, составляющих уникальный идентификатор для каждой записи в сущности.Атрибуты первичного ключа располагаются над линией в ключевой области. Как следует из названия, не ключевой атрибут – это атрибут, который не был выбран ключевым. Не ключевые атрибуты располагаются под чертой в области данных. В качестве первичных ключей могут быть использованы несколько атрибутов или наборов атрибутов. Атрибуты или группы атрибутов, которые могут быть выбраны первичными ключами, называются кандидатами в ключевые атрибуты (потенциальные атрибуты). Кандидаты в ключи должны уникально идентифицировать каждую запись сущности. В соответствии с этим, ни одна из частей ключа не может быть NULL, не заполненной или отсутствующей. Правила устанавливают, что атрибуты и группы атрибутов должны:
Уникальным образом идентифицировать экземпляр.
Не использовать NULL значений.
Не изменяться со временем. Экземпляр идентифицируется при помощи ключа. При изменении ключа, меняется экземпляр.
Быть как можно более короткими для использования индексирования и получения данных. Если вам нужно использовать ключ, являющийся комбинацией ключей из других сущностей, убедитесь в том, что каждая из частей ключа соответствует правилам.
внешний ключ – это ключ, объявленный в базовом отношении, который при этом ссылается на первичный или кандидатный ключ того же самого или какого-то другого базового отношения.
При этом отношение, на которое ссылается внешний ключ, называется ссылочным (или родительским)отношением. А отношение, содержащее внешний ключ, называется дочерним.
Также при создании базового отношения для каждого внешнего ключа записывается условие, называемое ограничением ссылочной целостности - необходимое качество реляционной базы данных, заключающееся в отсутствии в любом её отношении внешних ключей, ссылающихся на несуществующие кортежи.
Этапы проектирования баз данных. Концептуальная, логическая и физическая модели баз данных. Диаграммы «сущность-связь» (ER-диаграммы).
При разработке БД можно выделить следующие этапы работы.
I этап. Постановка задачи. На этом этапе формируется задание по созданию БД. В нем подробно описывается состав базы, назначение и цели ее создания, а также перечисляется, какие виды работ предполагается осуществлять в этой базе данных (отбор, дополнение, изменение данных, печать или вывод отчета и т. д).
II этап. Анализ объекта. Рассматривается, из каких объектов может состоять БД, каковы свойства этих объектов. После разбиения БД на отдельные объекты необходимо рассмотреть свойства каждого из этих объектов, или, другими словами, установить, какими параметрами описывается каждый объект. Все эти сведения можно располагать в виде отдельных записей и таблиц. Далее необходимо рассмотреть тип данных каждой отдельной единицы записи. Сведения о типах данных также следует занести в составляемую таблицу.
III этап. Синтез модели. По проведенному выше анализу необходимо выбрать определенную модель БД. Далее рассматриваются достоинства и недостатки каждой модели и сопоставляются с требованиями и задачами создаваемой БД. После такого анализа выбирают ту модель, которая сможет максимально обеспечить реализацию поставленной задачи. После выбора модели необходимо нарисовать ее схему с указанием связей между таблицами или узлами.
IV этап. Выбор способов представления информации и программного инструментария. После создания модели необходимо, в зависимости от выбранного программного продукта, определить форму представления информации.
Концептуальная модель представляет объекты и их взаимосвязи без указания способов их физического хранения. Концептуальная модель является, по существу, моделью предметной области. При проектировании концептуальной модели все усилия разработчика должны быть направлены в основном на структуризацию данных и выявление взаимосвязей между ними без рассмотрения особенностей реализации и вопросов эффективности обработки. Проектирование концептуальной модели основано на анализе решаемых задач по обработке данных. КМ включает описания объектов и их взаимосвязей, представляющих интерес в рассматриваемой предметной области и выявляемых в результате анализа данных. Здесь имеются в виду данные, используемые как в уже разработанных прикладных программах, так и в тех, которые только будут реализованы. КМ транслируется затем в модель данных, совместимую с выбранной СУБД. Возможно, что отраженные в КМ взаимосвязи между объектами окажутся впоследствии нереализуемыми средствами выбранной СУБД. Это потребует изменения концептуальной модели. Версия КМ, которая может быть обеспечена конкретной СУБД, называется логической моделью.
Логическая модель отражает логические связи между элементами данных вне зависимости от их содержания и среде хранения. ЛМ данных может быть реляционной, иерархической или сетевой. Пользователям выделяются подмножества этой логической модели, называемые внешними моделями (в некоторых источниках их также называют подсхемами), отражающие их представления о предметной области. Внешняя модель соответствует представлениям, которые пользователи получают на основе логической модели, в то время как концептуальные требования отражают представления, которые пользователи первоначально желали иметь и которые легли в основу разработки концептуальной модели. ЛМ отображается в физическую память, такую, как диск, лента или какой-либо другой носитель информации.
Физическая модель, определяющая размещение данных, методы доступа и технику индексирования, называется внутренней моделью системы.
Язык запросов SQL. Подъязыки языка SQL. Описание данных, манипулирование данными и информационные запросы к данным на языке SQL.
SQL (Structured Query Language - «язык структурированных запросов») - универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных.
SQL основывается на реляционной алгебре. Является, прежде всего, информационно-логическим языком, предназначенным для описания хранимых данных, для извлечения хранимых данных и для модификации данных. SQL не является языком программирования. (Вместе с тем стандарт языка спецификацией SQL/PSM предусматривает возможность его процедурных расширений.)
Изначально SQL был основным способом работы пользователя с базой данных и представлял собой небольшую совокупность команд (операторов) допускающих создание таблиц, добавление в таблицы новых записей, извлечение записей из таблиц (в соответствии с заданным условием), удаление записей и изменение структур таблиц. В связи с усложнением язык SQL стал более языком прикладного программирования, а пользователи получили возможность использовать визуальные построители запросов.
Язык SQL представляет собой совокупность операторов.
Операторы SQL делятся на:
операторы определения данных (Data Definition Language, DDL)
операторы манипуляции данными (Data Manipulation Language, DML)
операторы определения доступа к данным (Data Control Language, DCL)
операторы управления транзакциями (Transaction Control Language, TCL)
Основные направления исследований в области искусственного интеллекта. Области применения систем искусственного интеллекта. Факты и знания. Способы представления знаний: фреймы, семантические сети, системы правил (продукций).
1. Доказательство – это задача формальной логики. Это операции формальной логики, т.е. разработка таких программ, которые могли бы создавать новые не существующих в их базе данных.
2. Машинные игры (компьютерные игры). Компания Microsoft проводит тест на определение «кто с ним говорит», человек или машина.
3. Распознавание образов. Представляет серьёзную проблему, в силу того, что для быстрого и безошибочного объекта или изображения предмета или слухового образа при наличии помех требуется очень большой объём информации о геометрических, физических и прочих свойствах, а так же о ситуациях, в которых находится объект.
Одно из направлений: робот, который должен определить какой-то объект из множества объектов.
4. Использование естественного языка. Разработка систем: вопрос-ответ, и автоматического перевода. Программы переводчики.
5. Робототехника. «Robo Sapiens» (человекоподобный робот). Применение в медицине (желудок, сердце, почки и т.д.).
6. Экспертные системы. Разработка хранилищ профильной информации в области науки или техники (медицина, криминалистика, геология).
7. Инженерия знаний – теоретическая наука о способах представления знаний и манипулирования ими.
ЭС — наиболее распространенный и известный вид интеллектуальных систем.
Основные компоненты:
База данных (нет универсальных баз данных, которые могли бы учитывать всё) — предназначена для хранения исходных и промежуточных данных, решаемой в текущий момент задачи.
База знаний предназначена для хранения долгосрочных данных, кот. описывают рассматриваемую область и правил, описывающих целесообразность преобразований данных в этой области.
Решатель использует исходные данные в рабочей памяти и знания из базы знаний, формирует такую последовательность правил, которые, будучи применимыми к исходным данным, приводят к решению задачи.
Объяснительный компонент объясняет, как система получила результат и какие знания использовала.
Диалоговый компонент ориентирован на дружелюбное отношение.
Участники разработки ЭС:
Эксперт в той предметной области, задачи которой будет решать ЭС. Это опытный, высококвалифицированный специалист.
Инженер по знаниям — это специалист в области ЭС.
Программист — специалист по разработке инструментальных средств. Программист разрабатывает инструментальное средство, которое содержит основные компоненты ЭС, осуществляет сопряжение инструментального средства с той средой, в которой оно будет использовано (переводчик сопряжен с текстовым процессором).
В режиме «приобретение знаний» общение с ЭС осуществляется через посредничество инженера по знаниям. Важную роль в режиме приобретения играет объяснительный компонент. Именно благодаря ему, эксперт, тестируя, локализует причины неудач работы ЭС, что позволяет эксперту модифицировать старое и вводить новые знания.
применение
Некоторые из самых известных ИИ-систем:
Deep Blue — победил чемпиона мира по шахматам. Матч Каспаров против суперЭВМ не принёс удовлетворения ни компьютерщикам, ни шахматистам, и система не была признана Каспаровым. Затем линия суперкомпьютеров IBM проявилась в проектах brute force BluGene (молекулярное моделирование) и моделирование системы пирамидальных клеток в швейцарском центре Blue Brain.
MYCIN — одна из ранних экспертных систем, которая могла диагностировать небольшой набор заболеваний, причем часто так же точно, как и доктора.
Распознавание речи. Системы такие как ViaVoice способны обслуживать потребителей.
Роботы в ежегодном турнире RoboCup соревнуются в упрощённой форме футбола.
Банки применяют системы искусственного интеллекта (СИИ) в страховой деятельности (актуарная математика) при игре на бирже и управлении собственностью. Методы распознавания образов (включая, как более сложные и специализированные, так и нейронные сети) широко используют при оптическом и акустическом распознавании (в том числе текста и речи), медицинской диагностике, спам-фильтрах, в системах ПВО (определение целей), а также для обеспечения ряда других задач национальной безопасности.
Разработчики компьютерных игр применяют ИИ в той или иной степени проработанности. Это образует понятие «Игровой искусственный интеллект». Стандартными задачами ИИ в играх являются нахождение пути в двумерном или трёхмерном пространстве, имитация поведения боевой единицы, расчёт верной экономической стратегии и так далее. <продолжение ИИ>
Зна́ние — в теории искусственного интеллекта и экспертных систем — совокупность информации и правил вывода (у индивидуума, общества или системы ИИ) о мире, свойствах объектов, закономерностях процессов и явлений, а также правилах использования их для принятия решений. Главное отличие знаний от данных состоит в их структурности и активности, появление в базе новых фактов или установление новых связей может стать источником изменений в принятии решений.
Способы представления знаний
Фрейм — (англ. frame — «каркас» или «рамка») — способ представления знаний в искусственном интеллекте, представляющий собой схему действий в реальной ситуации. Первоначально термин «фрейм» ввёл Марвин Минский в 70-е годы XX века для обозначения структуры знаний для восприятия пространственных сцен. Фрейм — это модель абстрактного образа, минимально возможное описание сущности какого-либо объекта, явления, события, ситуации, процесса.
Фреймы используются в системах искусственного интеллекта (например, в экспертных системах) как одна из распространенных форм представления знаний.
Семанти́ческая сеть — информационная модель предметной области, имеющая вид ориентированного графа, вершины которого соответствуют объектам предметной области, а дуги (рёбра) задают отношения между ними. Объектами могут быть понятия, события, свойства, процессы[1]. Таким образом, семантическая сеть является одним из способов представления знаний. В названии соединены термины из двух наук: семантика в языкознании изучает смысл единиц языка, а сеть в математике представляет собой разновидность графа — набора вершин, соединённых дугами (рёбрами). В семантической сети роль вершин выполняют понятия базы знаний, а дуги (причем направленные) задают отношения между ними. Таким образом, семантическая сеть отражает семантику предметной области в виде понятий и отношений.
Неправильно приравнивать друг другу понятия «Семантическая сеть» (англ. Semantic Network) и «Семантическая паутина» (англ. Semantic Web). Хотя эти понятия не эквивалентны, тем не менее, они связаны.
Продукционные системы
Продукции наряду с фреймами являются наиболее популярными средствами представления знаний в ИИ. Продукции, с одной стороны, близки к логическим моделям, что позволяет организовывать на них эффективные процедуры вывода, а с другой стороны, более наглядно отражают знания, чем классические логические модели. В них отсутствуют жесткие ограничения, характерные для логических исчислений, что дает возможность изменять интерпретацию элементов продукции.
Экспертная система (ЭС). Задачи, решаемые ЭС. Характеристика предметных областей, для которых разрабатываются ЭС. Архитектура ЭС. Прямой и обратный порядок вывода.
Экспе́ртная систе́ма (ЭС, expert system) — компьютерная программа, способная частично заменить специалиста-эксперта в разрешении проблемной ситуации. ЭС начали разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в 1980-х получили коммерческое подкрепление.
В информатике экспертные системы рассматриваются совместно с базами знаний как модели поведения экспертов в определенной области знаний с использованием процедур логического вывода и принятия решений, а базы знаний — как совокупность фактов и правил логического вывода в выбранной предметной области деятельности.
Похожие действия выполняет программа-мастер (wizard). Мастера применяются как в системных программах так и в прикладных для интерактивного общения с пользователем (например, при установке ПО). Главное отличие мастеров от ЭС — отсутствие базы знаний; все действия жестко запрограммированы. Это просто набор форм для заполнения пользователем.
Другие подобные программы — поисковые или справочные (энциклопедические) системы. По запросу пользователя они предоставляют наиболее подходящие (релевантные) разделы базы статей (представления об объектах областей знаний, их виртуальную модель).
Классификация ЭС по связи с реальным временем
Статические ЭС
Квазидинамические ЭС
Динамические ЭС
Оболочки экспертных систем, которые поддерживают какой-либо язык представления знаний и комбинацию режимов управления. Такие оболочки хорошо зарекомендовали себя в ряде приложений, разработанных во времена становления экспертных систем. Языки программирования высокого уровня, такие как интерпретаторы порождающих правил и объектно-ориентированные системы, которые образуют основные компоненты для представления знаний и управления ходом логического вывода. Программные среды, использующие смешанные парадигмы, которые обеспечивают пользователя широким спектром средств представления и множеством механизмов управления. Архитектуры решения проблем, такие как системы с доской объявлений, представляют собой объектно-ориентированные оболочки, на основе которых можно создавать конкретные приложения. Полезные программные пакеты, которые можно использовать для решения определенных подзадач, например моделирования или анализа правдоподобия. Такие пакеты могут работать в тесном взаимодействии с основной программой решения проблемы.
Инструментальные средства для разработки ЭС. Продукционные языки. Парадигмы программирования, поддерживаемые языком CLIPS. Структура программы на языке CLIPS: определения (конструкты), шаблоны, факты и правила. Представление информации о предметной области в виде фактов и правил.
По своему назначению и функциональным возможностям инструментальные программы, применяемые при проектировании экспертных систем, можно разделить на четыре достаточно больших категории.
(1) Оболочки экспертных систем (expert system shells). Системы этого типа создаются, как правило, на основе какой-нибудь экспертной системы, достаточно хорошо зарекомендовавшей себя на практике. При создании оболочки из системы-прототипа удаляются компоненты, слишком специфичные для области ее непосредственного применения, и оставляются те, которые не имеют узкой специализации. Примером может служить система EMYCIN, созданная на основе прошедшей длительную "обкатку" системы MYCIN. В EMYCIN сохранен интерпретатор и все базовые структуры данных — таблицы знаний и связанный с ними механизм индексации. Оболочка дополнена специальным языком, улучшающим читабельность программ, и средствами поддержки библиотеки типовых случаев и заключений, выполненных по ним экспертной системой. Дальнейшим развитием оболочки EMYCIN явились системы S.1 и М.4, в которых механизм построения цепочки обратных рассуждений, заимствованный в EMYCIN, объединен с фреймоподобной структурой данных и дополнительными средствами управления ходом рассуждений.
(2) Языки программирования высокого уровня. Инструментальные средства этой категории избавляют разработчика от необходимости углубляться в детали реализации системы — способы эффективного распределения памяти, низкоуровневые процедуры доступа и манипулирования данными. Одним из наиболее известных представителей таких языков является OPS5, о котором уже шла речь в главах 5, 14. Этот язык прост в изучении и предоставляет программисту гораздо более широкие возможности, чем типичные специализированные оболочки. Следует отметить, что большинство подобных языков так и не было доведено до уровня коммерческого продукта и представляет собой скорее инструмент для исследователей.
(3) Среда программирования, поддерживающая несколько парадигм (multiple-paradigm programming environment). Средства этой категории включают несколько программных модулей, что позволяет пользователю комбинировать в процессе разработки экспертной системы разные стили программирования. Среди первых проектов такого рода была исследовательская программа LOOP, которая допускала использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного (см. об этой программе в главе 5). На основе этой архитектуры во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE, KnowledgeCraft и ART. Эти программы предоставляют в распоряжение квалифицированного пользователя множество опций и для последующих разработок, таких как КАРРА и CLIPS, и стали своего рода стандартом. Однако освоить эти языки программистам далеко не так просто, как языки, отнесенные нами к предыдущей категории.
(4) Дополнительные модули. Средства этой категории представляют собой автономные программные модули, предназначенные для выполнения специфических задач в рамках выбранной архитектуры системы решения проблем. Хорошим примером здесь может служить упоминавшийся в главе 15 модуль работы с семантической сетью, использованный в системе VT. Этот модуль позволяет отслеживать связи между значениями ранее установленных и новых параметров проектирования в процессе работы над проектом. Подобные модули управления семантической сетью можно использовать для распространения внесенных изменений на все компоненты системы. < продолжение Клипс>
парадигмы программирования:
Процедурно-ориентированное программирование. Эта парадигма была представлена языком LISP, в котором активным компонентом являются процедуры, а пассивным — данные, несмотря на то, что в LISP процедуры сами по себе также являются данными, поскольку имеют вид списков. В рамках единой среды процедуры могут быть использованы для обработки внешних данных, в частности изменения значений общедоступных переменных. Программирование, ориентированное на правила. Эта парадигма аналогична предыдущей, но роль процедур играют правила "условие-действие". В среде LOOPS наборы правил сами по себе являются объектами, которые можно рекурсивно вкладывать один в другой. Таким образом, часть "действие" одного правила, в свою очередь, может активизировать подчиненный набор правил. С множествами правил связываются управляющие компоненты, с помощью которых в простейшей форме выполняется разрешение конфликтов. Объектно-ориентированное программирование. Структурированные объекты обладают свойствами и процедур, и данных, причем побочные эффекты обычно локализуются в пределах объекта. Обработка поступающих сообщений приводит к передаче данных или изменению их значений, но все манипуляции данными выполняются под управлением того компонента, который обратился к объекту. При этом вызывающий объект совершенно не интересует, как хранятся данные и как они модифицируются внутри объекта. Программирование, ориентированное на данные. Доступ к данным и обновление данных запускает определенные процедуры, причем не имеет значения, почему изменен компонент данных, — то ли это результат побочного эффекта, то ли результат действия других процедур. С переменными, в которых хранятся значения данных, связываются определенные процедуры, подобно тому, как это делается в слотах фрейма, причем такие переменные часто называют активными величинами. В таких приложениях, как моделирование, этот стиль программирования оказывается довольно продуктивным, поскольку позволяет распространить эффект изменения какого-либо компонента на прочие, с ним связанные.
В рамках основной объектно-ориентированной парадигмы модули среды, поддерживающие разные стили программирования, можно комбинировать. Обычно условия в порождающих правилах и логические фразы связываются со значениями слотов структурированных объектов, а правила модифицируют значения этих слотов. Именно такой стиль объединения парадигм в настоящее время реализован в языке CLIPS.
CLIPS включает в язык представления порождающих правил и язык описания процедур. Основными компонентами языка описания правил являются база фактов (fact base) и база правил (rule base). На них возлагаются следующие функции
база фактов представляет исходное состояние проблемы
база правил содержит операторы, которые преобразуют состояние проблемы, приводя его к решению. Машина логического вывода CLIPS сопоставляет эти факты и правила и выясняет, какие из правил можно активизировать. Это выполняется циклически, причем каждый цикл состоит из трех шагов:
(1) сопоставление фактов и правил;
(2) выбор правила, подлежащего активизации;
(3) выполнение действий, предписанных правилом.
Такой трехшаговый циклический процесс иногда называют "циклом распознавание— действие"
Понятие модели. Классификация моделей. Виды моделирования. Основные этапы математического моделирования. Понятие вычислительного эксперимента. Этапы вычислительного эксперимента.
Модель — это такой материальный или мысленно представляемый объект или явление, отдельные свойства которого полностью или частично совпадают со свойствами исходного объекта или явления. Модель в процессе исследования замещает объект, так что ее изучение дает новые знания об объекте-оригинале.
Модель вместо исходного объекта используется в случаях, когда эксперимент опасен, дорог, долговременен, кратковременен, протяжен в пространстве, микроскопичен, невозможен, неповторим, ненагляден.
В самом общем случае при построении модели исследователь отбрасывает те характеристики и параметры объекта-оригинала, которые несущественны для изучения объекта. Выбор характеристик объекта-оригинала, которые при этом сохраняются и войдут в модель, определяется целями моделирования. Обычно такой процесс абстрагирования от несущественных параметров объекта называют формализацией.
В определенном смысле вся научная деятельность сводится к построению и исследованию моделей природных явлений.
Классификация моделей
В зависимости от средств построения различают следующие классы моделей:
словесные или описательные модели (их также в некоторой литературе называют вербальными или текстовыми моделями), натурные модели, абстрактные или знаковые модели .
по предметной области: физические модели; биологические; социологические; экономические и т.д.
по применяемому математическому аппарату:
модели, основанные на применении обыкновенных дифференциальных уравнений; уравнений в частных производных;
вероятностные модели и т.д.
по цели моделирования: дескриптивные модели (описательные) описывают моделируемые объекты и явления и как бы фиксируют сведения человека о них. Оптимизационные модели служат для поиска наилучших решений при соблюдении определенных условий и ограничений. Игровые модели (компьютерные игры); обучающие модели (всевозможные тренажеры); имитационные модели (модели, в которых сделана попытка более или менее полного и достоверного воспроизведения некоторого реального процесса, например, моделирование движения молекул в газе, поведение колонии микробов и т.д.).
в зависимости от их изменения во времени: статические и динамические.
Виды моделей. Физическим (материальным, натурным) принято называть такое моделирование (макетирование), при котором реальному объекту ставится в соответствие его увеличенная или уменьшенная копия (некий реальный предмет — макет, муляж, эталон). Эта копия создается на основе теории подобия, что и позволяет утверждать, что в модели сохранились требуемые свойства структуры объекта (глобус, модель кристаллической решетки) или его поведения (радиоуправляемая модель самолета, велотренажер). <продолжение Модели>
Аналоговое моделирование основано на замене исходного объекта объектом другой физической природы, обладающим аналогичным поведением.
Абстрактные (идеальные) модели — это абстрактные образы реальных или воображаемых объектов (математическая точка, математический маятник, идеальный газ, бесконечность). Абстрактное моделирование подразделяют на интуитивное, вербальное и знаковое. Об интуитивном моделировании говорят, когда не могут даже описать используемую модель, хотя она и существует, но берутся с ее помощью предсказывать или объяснять окружающий нас мир. Вербальное моделирование — это построение информационной модели в мысленной или разговорной форме. Знаковым называется моделирование, использующее в качестве моделей знаки или символы (словесное описание; схемы и чертежи; графики; карты и рисунки; тексты на различных языках, включая формальные; математические формул и теории и т.д.). Обязательным участником знакового моделирования является интерпретатор знаковой модели, чаще всего человек, но с интерпретацией может справляться и компьютер. Чертежи, тексты, формулы сами по себе не имеют никакого смысла без того, кто понимает их и использует в своей повседневной деятельности.
Важнейшим видом знакового моделирования является математическое моделирование. Разновидность математического моделирования - компьютерное моделирование (математическое моделирование с использованием средств ВТ). Компьютерная модель имеет две составляющие — программную и аппаратную. Программная составляющая так же является абстрактной знаковой моделью. Это лишь другая форма абстрактной модели, которая, однако, может интерпретироваться уже не только математиками и программистами, но и техническим устройством — процессором компьютера.
Технология компьютерного моделирования предполагает выполнение следующих действий.
Определение цели моделирования.
Разработка концептуальной модели.
Формализация модели.
Программная реализация модели.
Планирование модельных экспериментов.
Реализация плана эксперимента.
Анализ и интерпретация результатов моделирования
Компьютерное моделирование случайных величин. Имитационное моделирование. Метод Монте-Карло.
При имитационном моделировании используемая математическая модель воспроизводит алгоритм («логику») функционирования исследуемой системы во времени при различных сочетаниях значений параметров системы и внешней среды. Имитационная модель позволяет исследовать поведение различных систем с учетом влияния случайных факторов. Эти факторы в зависимости от их природы могут фигурировать в модели как случайные события, случайные величины (дискретные или непрерывные) или как случайные функции (процессы).
Методы генерации случайных чисел
В основе всех методов и приемов моделирования случайных факторов лежит использование случайных чисел, имеющих равномерное распределение на интервале [0; 1].
Если пользователю потребуется, чтобы случайное число x находилось в интервале (a; b), отличном от (0; 1), нужно воспользоваться формулой x = a + (b – a) · r, где r — случайное число из интервала (0; 1).
«Истинно» случайные числа формируются с помощью аналого-цифровых преобразователей на основе сигналов физических генераторов, использующих естественные источники случайных шумов (радиоактивный распад, шумы электронных и полупроводниковых устройств и т.п.).
Случайные числа, генерируемые аппаратно или программно на ЭВМ, называются псевдослучайными. Однако их статистические свойства совпадают со статистическими свойствами «истинно» случайных чисел. В состав практически всех современных систем программирования входят специальные функции генерации случайных чисел, которые обычно называют датчиками или генераторами случайных чисел.
Генерация произвольного случайного числа состоит из двух этапов:
- генерация нормализованного случайного числа (то есть равномерно распределенного от 0 до 1);
- преобразование нормализованных случайных чисел ri в случайные числа xi, которые распределены по необходимому пользователю закону распределения или в необходимом интервале.
Генераторы случайных чисел по способу получения чисел делятся на физические, табличные и алгоритмические.
СЧ должны быть равномерны, стохастичны (случайны) и независимы
Для моделирования случайного события А, вероятность которого равна Рс, достаточно сформировать одно число r, равномерно распределенное на интервале [0,1]. При попадании r в интервал [0, Рс] считают, что событие А наступило, в противном случае — нет.
Используя метод Монте-Карло, можно приближенно вычислять площади плоских фигур.
Модели динамических систем. Инструментальные программные средства для моделирования динамических систем. Модель популяции.
Модели динамических систем – модели систем, изменяющихся с течением времени. MathLab.
Модель популяции (популяционная динамика)
Популяционная динамика — один из разделов математического моделирования, имеющий приложения в биологии, экономике, демографии. В ней имеются несколько базовых моделей.
