Математика, алгебра, логика

Алгебра и пакет Mathematica 5

С давних времен человек мечтал о машине, которая могла бы выполнять вычисления. Однако что значит вычислять! Когда компьютеры только появились, они, в основном, были предназначены для численных расчетов. Затем они начали применяться для решения задач управления. И хотя в этих приложениях численные расчеты играют весьма важную роль, всегда были ученые, которые понимали, что результаты вычислений могут интерпретироваться не только как числовые значения физических величин. Еще Лейбниц мечтал построить машину для "вычисления истины".
Впрочем, в самом понятии "научные вычисления" всегда была двусмысленность: прежде чем на сцене появился компьютер, вычисления представляли смесь численного счета с тем, что многие называют "алгебраическими вычислениями", т.е. с операциями над математическими формулами.
Единственным примером чисто численных расчетов является, по-видимому, деятельность неординарных вычислителей, таких как Иноди. Несомненно, что авторы таблиц, в особенности логарифмических, выполняют огромный объем численных расчетов, однако этим расчетам предшествует разработка алгебраических формул и методов, необходимая для того, чтобы работа оказалась в пределах человеческих возможностей.

Введение

Глава 1. Исторический обзор и первое знакомство
С давних времен человек мечтал о машине, которая могла бы выполнять вычисления. Однако что значит вычислять! Когда компьютеры только появились, они, в основном, были предназначены для численных расчетов. Затем они начали применяться для решения задач управления. И хотя в этих приложениях численные расчеты играют весьма важную роль, всегда были ученые, которые понимали, что результаты вычислений могут интерпретироваться не только как числовые значения физических величин. Еще Лейбниц мечтал построить машину для "вычисления истины".

История компьютерных вычислений и возникновение компьютерной алгебры
Отличия систем компьютерной алгебры от традиционных систем программирования
Как начать
Что такое система Mathematica
Концепция системы Mathematica
Применение системы Mathematica
Кто использует систему Mathematica
Развитие системы Mathematica
Расширение системы Mathematica
Описание некоторых стандартных пакетов Mathematica
Новое в версии Mathematica 5

Глава 2. Первое знакомство — калькулятор
Большое белое окно слева- блокнот. Именно в него вводится информация, и именно в нем отображаются результаты. Окно в середине - заставка-приветствие и справка. Окно справа - панель для ввода математических символов греческих букв и т.п. После запуска системы Mathematica в блокнот можно вводить информацию.

Знакомство с системой Mathematica
Арифметические действия над числами
Функции
Блокнот и меню
Алгебраические преобразования
Построение графиков
Построение графиков функций одной переменной
Построение графиков функций двух переменных
Анализ
Дифференцирование
Интегрирование
Суммы
Разложение в ряд Тейлора
Вычисление пределов
Списки и линейная алгебра
Списки
Векторы
Матрицы
Уравнения
Экстремумы функций
Линейное программирование
Резюме

Глава 3. Числа, их представление и операции над ними
Что такое число? Однозначного ответа на этот вопрос нет. Например, комплексное число — это число или все-таки вектор? А действительное число — это число или сечение во множестве рациональных чисел? А если комплексные числа все-таки числа, то кватернионы — тоже числа или уже объекты другой природы? Ну а если даже кватернионы — все-таки числа, то разве не следует к числам причислить и октавы Кэли? Иногда очень удобно считать, что числа — это элементы любого кольца. Но тогда и матрицы (элементы кольца матриц) тоже ведь нужно считать числами! Впрочем, это совсем не глупо, как может показаться на первый взгляд: в кольце матриц размера 2x2, элементами которых являются вещественные числа, можно выделить подкольцо, которое на самом деле является полем, изоморфным полю комплексных чисел.

Что такое число
Представление вещественных чисел систематическими дробями: функция N.Разрядность и точность вещественных чисел: функции Precision и Accuracy
Разрядность и точность при выполнении операций над числами
Отбрасывание малых вещественных чисел: функция Chop
Целая и дробная части вещественного числа
Целая часть вещественного числа: функции Floor и IntegerPart
Дробная часть вещественного числа: функция Fractional Part
Приближение вещественных чисел рациональными: функция Rationalize
Преобразование в десятичную систему счисления
Преобразование из десятичной системы счисления в недесятичную
Число как последовательность (список) цифр
Экспоненциальное представление чисел: функция MantissaExponent
Модуль (абсолютная величина) числа: функция Abs
Знак числа: функция Sign
Числитель и знаменатель числа: функции Numerator и Denominator
Представление числа непрерывной дробью: функция ContinuedFraction
Преобразование непрерывной дроби в число: функция FromContinuedFraction
Мнимая единица
Вещественная часть комплексного числа: функция Re
Мнимая часть комплексного числа: функция Im
Аргумент комплексного числа: функция Arg
Сопряженное комплексное число: функция Conjugate
Резюме

Глава 4. Арифметика: разложение целых чисел на простые множители
В ряде задач очень важно знать, насколько быстро можно разложить целое число на простые множители. По этой причине давайте рассмотрим, какие числа функция FactorInteger может разложить на простые множители за приемлемое время. Конечно, мы не собираемся факторизовать все числа подряд (для этого не хватило бы и многотомного труда), а займемся только классическими последовательностями.

Факторизация целых чисел с помощью функции FactorInteger
Факторизация чисел Мерсенна
Факторизация чисел вида 2n+1
Факторизация чисел вида 2n-7
Факторизация чисел, десятичная запись которых состоит из n единиц
Факторизация чисел вида 10n+1
Факторизация чисел Фибоначчи
Факторизация дробей
Факторизация гауссовых чисел
Факторизация очень больших чисел
Факторизация факториалов
Функция FactorIntegerECM: попытка факторизации больших чисел Мерсенна
Резюме

Глава 5. Арифметика: простые числа
Что задача различать простые и составные числа, а последние разлагать на простые множители, принадлежит к важнейшим и полезнейшим задачам во всей арифметике и что она занимала ум как древних, так и современных математиков, настолько известно, что было бы излишним тратить на это много слов. Тем не менее следует признать, что все до сих пор предложенные методы или ограничиваются частными случаями, или настолько громоздки и трудоемки, что ... в основном едва ли могут быть применимы ... к большим числам ...; достоинство науки требует, чтобы прилежно усовершенствовались все вспомогательные средства, могущие помочь в решении этой знаменитой проблемы.

Тест на простоту
Функция PrimeQ
Множество простых чисел Primes и предикат х € принадлежащих Primes
Доказательство (или опровержение) простоты заданного числа
Функции PreviousPrime и NextPrime и случайные простые числа Наибольшее простое число, меньшее n, — PreviousPrime[n]
Наименьшее простое число, большее n, — NextPrime[n]
Случайное простое число в заданном интервале — Random [Prime, {n, m}]
Пифагоровы треугольники, у которых длины двух сторон выражаются простыми числами
Таблицы простых чисел
Функция Prime[n] — n-е простое число рn
Поиск отрезков натурального ряда, состоящих только из составных чисел
Близнецы
Простые числа, близкие к числам определенного вида
Число простых чисел, не превосходящих х (функция PrimePi[x])
Количество простых чисел на открытом слева отрезке (а, b]
Резюме

Глава 6. Арифметика: наибольший общий делитель и наименьшее общее кратное
Для нахождения наибольшего общего делителя чисел (целых, рациональных или гауссовых) в системе Mathematica предусмотрено две функции: GCD и ExtendedGCD.

Наибольший общий делитель
Наибольший общий делитель — функция GCD
Линейное представление наибольшего общего делителя — функция ExtendedGCD
Наименьшее общее кратное — функция LCM
Резюме

Глава 7. Модулярная арифметика: деление с остатком, вычеты, сравнения и китайская теорема об остатках
При выполнении операции деления с остатком получается частное и остаток. Для нахождения частного и остатка в системе Mathematica предусмотрены функции Quotient и Mod.

Деление с остатком
Частное при делении с остатком — функция Quotient
Остаток от деления — функция Mod
Возведение в степень в модулярной арифметике — функция PowerMod
Китайская теорема об остатках — функция ChineseRemainder
Корни в системе остаточных классов
Квадратный корень по модулю — функции SqrtMod и SqrtModList
Первообразные корни по модулю n
Критерии простоты чисел специального вида
Простые числа Мерсенна, тест Люка—Лемера
Простые числа вида k*2n +1
Резюме

Глава 8. Числовые функции
Если в полной системе вычетов по модулю nоставить только вычеты, взаимно простые с модулем, получим приведенную систему вычетов по модулю n. Мощность приведенной системы вычетов по модулю n как множества обозначается ?(n), а функция ?:n->?(n) называется функцией Эйлера. Найдем, для примера, приведенную систему вычетов по модулю 10.

Функция Эйлера — EulerPhi
Функция Кармайкла — CarmichaelLambda
Функция Мебиуса — MoebiusMu
Функции, связанные с делителями, — Divisors и DivisorSigma
Число делителей τ(n)
Сумма делителей σ(n)
Резюме

Глава 9. Мультимедиа: геометрия, графика, кино, звук
Компьютерная графика в своем историческом развитии повторяет путь аналитической геометрии. Когда-то давно', когда возникла аналитическая геометрия, т.е. во времена Пьера Ферма и Ренэ Декарта, она мыслилась в основном как аналитическая геометрия на плоскости (а зачастую даже как аналитическая геометрия в первом квадранте). Это был способ изучения плоских образов (кривых) с помощью метода координат на плоскости. Распространение методов аналитической геометрии на пространственные образы (линии и поверхности) было сделано столетием позже французским математиком Клеро (1713—1765). Облик, близкий традиционному, придал аналитической геометрии Леонард Эйлер в 1748 году, посвятив ей второй том "Введения в анализ". Однако еще более столетия курс аналитической геометрии делился на два раздела: аналитическая геометрия на плоскости и аналитическая геометрия в пространстве.

В этой главе...
Введение, или основные графические примитивы
Графические примитивы и их отображение на экране
Графические директивы
Аналитическая геометрия на плоскости, или 2D-графика
Графические примитивы
Вычерчивание графиков
Несколько графиков на одном чертеже — функция GraphicsArray
Графические примитивы и опции трехмерной графики
Вычерчивание графиков
Другие миры — другие измерения
Четвертое измерение — время. Движущиеся картинки — кино
Еще одно измерение — звук
Резюме

Глава 10. Алгебра и анализ
Одним из наиболее распространенных видов алгебраических преобразований является замена выражений, часто называемая также подстановкой, в результате выполнения которой какая-либо часть алгебраического выражения заменяется новым выражением. В системе Mathematica предусмотрено два способа подстановок. Первый способ выполняется с помощью функции Set.

Замена выражений в формулах
Многочлены
Поле рациональных дробей
Линейная алгебра
Пределы
Дифференцирование
Ряды
Исследование функций и построение графиков
Интегрирование
Векторный анализ
Поля направлений для дифференциальных уравнений и изоклины
Нахождение решений дифференциальных уравнений
Системы дифференциальных уравнений
Резюме

Глава 11. За гранью простого
Боюсь, я несколько превысил отведенный мне лимит времени, хотя и не успел полностью познакомить вас ни со всей Математикой, ни со всеми функциями системы Mathematica. Памятуя опыт Никола Бурбаки, я и не ставил перед собой такой задачи. Просто я хотел показать, что с помощью пятистрочечных программ, написанных на языке системы Mathematica, школьники, студенты, аспиранты, инженеры и научные сотрудники самых разных профилей могут успешно решать свои задачи. И если вы готовы идти дальше и применять систему Mathematica в своей работе, — я достиг цели, поставленной перед написанием этой книги. Жаль, конечно, что нет такой одной универсальной книги, в которой была бы изложена вся-вся Математика. Даже в этой тоненькой книжечке были затронуты вопросы, о которых пятитомная Математическая энциклопедия даже не упоминает. И уж тем более это справедливо для пятитомного (в семи книгах!) курса высшей математики, написанного В. И. Смирновым.

Новый вид науки
Теория универсальности, или насколько сложным может быть поведение простой динамической системы
Клеточные автоматы
Резюме
Статьи

Введение в экспертные системы

При подготовке материала автор старался прежде всего учесть интересы и пожелания читателей четырех основных категорий:
рядовых читателей, желающих познакомиться с новым классом информационных систем на достаточно высоком теоретическом и техническом уровне;
преподавателей и студентов, которым необходимо учебное пособие, охватывающее все основные темы исследования и проектирования экспертных систем, причем глубина изложения материала должна соответствовать программам старших курсов вузов и первого года обучения в аспирантуре;
инженеров-программистов, нуждающихся в практическом руководстве по экспертным системам, подкрепленном достаточно солидным теоретическим материалом;
научных работников и студентов, активно занимающихся научной работой, которых особенно интересует обзорный материал, касающийся новейших тенденций в разработке систем такого рода.
Это введение послужит методическим руководством для каждой из перечисленных категорий

Введение

1. Что такое экспертная система?
Экспертная система может полностью взять на себя функции, выполнение которых обычно требует привлечения опыта человека-специалиста, или играть роль ассистента для человека, принимающего решение. Другими словами, система (техническая или социальная), требующая принятия решения, может получить его непосредственно от программы или через промежуточное звено — человека, который общается с программой. Тот, кто принимает решение, может быть экспертом со своими собственными правами, и в этом случае программа может "оправдать" свое существование, повышая эффективность его работы.

2. Обзор исследований в области искусственного интеллекта
Что такое искусственный интеллект? Барр и Файгенбаум предложили следующее определение, которое никем не оспаривается почти два десятка лет [Barr and Feigenbaum, 1981]. "Искусственный интеллект (ИИ) — это область информатики, которая занимается разработкой интеллектуальных компьютерных систем, т.е. систем, обладающих возможностями, которые мы традиционно связываем с человеческим разумом, — понимание языка, обучение, способность рассуждать, решать проблемы и т.д."

3. Представление знаний
В этой главе описана одна из первых экспертных систем, MYCIN, при разработке которой была предпринята попытка отойти от традиции использования "обобщенного решателя проблем". Система построена на основе относительно несложного алгоритма поиска, значительно более простого, чем описанный в предыдущей главе алгоритм А. Возможности программы определяются не столько реализованным в ней алгоритмом поиска, сколько методикой представления знаний, специфических для той области, в которой предполагалось использовать систему, а именно — в лечении заболеваний крови.

4. Символические вычисления
Прежде чем приступить в обсуждению специализированных языков представления знаний, остановимся на более общей теме языков программирования задач искусственного интеллекта. В этой главе мы не задавались целью научить читателя пользоваться определенным языком, а стремились познакомить с некоторыми темами, касающимися представления и управления, которые имеют отношение к программной реализации экспертных систем. Интересно отметить, что широко распространившийся в современной практике создания программного обеспечения объектно-ориентированный подход к анализу и разработке должен привести к определенному сближению методик решения проблем, предполагающих использование идей искусственного интеллекта и не предполагающих такового. Кроме того, представление приложения как совокупности взаимодействующих относительно автономных модулей очень близко к подходу, реализуемому методами искусственного интеллекта.

5. Системы, основанные на знаниях
В области искусственного интеллекта и в современной психологии утверждение, что разумное поведение направляется правилами, превратилось уже в аксиому. Даже в "большом" мире люди склонны связывать уровень интеллектуальности со следованием правилам, и мы все чаще при объяснении разумности обращаем внимание на то, насколько при этом соблюдаются правила. Возьмем для примера манеру разговаривать на естественном языке. Мы все ведем себя так, как если бы обладали знанием всех правил того языка, на котором говорим, например английского, хотя, конечно, мы знаем далеко не все. (Любой, кто запишет эти правила, может рассчитывать на ослепительную карьеру в лингвистике.)

6. Ассоциативные сети и системы фреймов
Следуя Нильсону [Nilsson, 1982], я буду использовать термин структурированный объект по отношению к любой схеме представления, базовые блоки которой аналогичны узлам и дугам в теории графов или слотам и заполнителям структур записей. Я буду систематически сравнивать этот вид представления со схемами, производными от правил формальных грамматик или формализмов разнообразных логик. Представление с помощью структурированных объектов является весьма удобным средством для группирования информации более или менее естественным путем.

7. Объектно-ориентированное программирование
За последние 20 лет было разработано довольно много языков для представления знаний, причем большинство из них можно отнести к классу объектно-ориентированных. Как и в случае с использованием концепции фреймов, основная идея состоит в том, чтобы заключить данные и связанные с ними процедуры в некие структуры, объединенные механизмом наследования. Отличие от формализмов, описанных в предыдущей главе, состоит в том, что процедуры могут наследоваться (и комбинироваться) точно так же, как и данные, а объекты могут взаимодействовать друг с другом напрямую или посредством специальных протоколов обмена сообщениями.

8. Логическое программирование
Еще в конце 1970-х годов стала отчетливо просматриваться тенденция к использованию в исследованиях в области искусственного интеллекта "формальных" методов, т.е. основанных на аппарате математической логики. Эти методы противопоставлялись более интуитивным и менее формализованным эвристическим методам, скажем, таким, которые были использованы в системе MYCIN. Для того чтобы стало ясно, что все это значит, нужно познакомить вас с логическими языками, а затем показать, как соотносятся их свойства с теми методами рассуждений, которые должны поддерживать типовые экспертные системы.

9. Представление неопределенности знаний и данных
Во многих реальных приложениях приходится сталкиваться с ситуацией, когда автоматический решатель задач имеет дело с неточной информацией. В этой главе мы рассмотрим основные идеи, касающиеся количественной оценки неопределенности и методов формирования нечетких суждений. В главах 11-15 будет продемонстрировано, как такие методы используются на практике. В настоящей главе речь пойдет в основном о теоретических аспектах представления неопределенности и о том, почему в исследованиях по искусственному интеллекту такое большое внимание уделяется этим проблемам.

10. Приобретение знаний
Термин приобретение знаний носит обобщенный характер и совершенно нейтрален к способу передачи знаний. Например, передача может осуществляться с помощью специальной программы, которая в процессе обработки большого массива историй болезни устанавливает связь между симптомами и заболеваниями. А вот термин извлечение знаний (knowledge elicitation) относится именно к одному из способов передачи знаний — опросу экспертов в определенной проблемной области, который выполняется аналитиком или инженером по знаниям. Последний затем создает компьютерную программу, представляющую такие знания (или поручает это кому-нибудь другому, обеспечивая его всей необходимой информацией).

11. Эвристическая классификация (I)
Если уж технология экспертных систем должна иметь солидный теоретический базис, то необходимо представлять себе, почему эта технология оказывается работоспособной при решении одних задач и неработоспособной при решении других. С практической точки зрения ответы на поставленные вопросы помогут разработчикам экспертных систем принять правильное решение и таким образом избавят их от крушения надежд и разочарования, которыми часто сопровождается ошибочный выбор. В этой главе читатель найдет следующий материал.

12. Эвристическая классификация (II)
Мы начали обсуждение методов решения проблем с эвристической классификации по той причине, что этот метод наиболее понятный. В следующих главах будут рассмотрены другие, более сложные методы, и вы сможете сравнить их. Но в этой главе мы будем считать, что метод решения проблем выбран, а наша задача — проанализировать процесс выбора инструментальных средств для проектируемой экспертной системы и средств приобретения знаний.

13. Иерархическое построение и проверка гипотез
В данной главе будут рассмотрены три системы, реализующие комбинированный метод решения проблем, который получил в литературе наименование иерархического построения и проверки гипотез (hierarchical hypothesize and test). С методом эвристической классификации этот метод сходен в том, что в нем используется отображение множества абстрактных категорий данных на множество абстрактных категорий решений, но этот подход усложнен тем, что элементы решений могут комбинироваться и объединяться в составные гипотезы. Цель такого усложнения — построение гипотезы, которая могла бы объяснить все симптомы и признаки анализируемой ситуации.

14. Решение проблем конструирования (I)
Можно рассматривать задачу решения проблемы конструирования и в терминах ограничений — сформировать такое решение, которое удовлетворило бы некоторым общим требованиям к качеству и при этом не противоречило бы ни одному из специальных правил, отвергающих определенные элементы решения или их комбинации.

15. Решение проблем конструирования (II)
В предыдущей главе мы рассматривали экспертные системы для решения проблем конструирования, в которых по ходу процесса никогда не возникала необходимость отмены уже принятых решений. Однако такая стратегия подходит далеко не для всех задач конструирования, поскольку мы не всегда располагаем всеми необходимыми для этого знаниями о предметной области. В этой главе мы проанализируем применение двух стратегий — наименьшего принуждения (least commitment) и предложение и пересмотр (propose and revise). Завершит главу обзор некоторых инструментальных средств приобретения знаний, которые используются в системах решения проблем конструирования.

16. Средства формирования пояснений
Эту главу мы начнем с краткого обзора ранних работ, касающихся включения в экспертные системы специальных средств, формирующих для пользователя информацию о ходе рассуждений (в дальнейшем для краткости мы будем называть ее поясняющей информацией). Затем более детально будут рассмотрены средства формирования пояснений экспертной системы CENTAUR, о которой уже упоминалось в главе 13. И в заключение мы обсудим одно из последних исследований в этой области, выполненное в рамках проекта Explainable Expert Systems, в котором основное внимание было уделено обеспечению прозрачности экспертной системы с точки зрения инженеров по знаниям, т.е. была предпринята попытка рассмотреть в комплексе вопросы формирования поясняющей информации и извлечения знаний.

17. Инструментальные средства разработки экспертных систем
Как и в предыдущих главах, при необходимости проиллюстрировать те или иные методы программирования мы пользуемся языком CLIPS, хотя вы встретите и несколько фрагментов программ на других языках. Более сложные и специализированные инструментальные средства, в частности системы с доской объявлений и системы обработки правдоподобия, будут детально рассмотрены в главах 18 и 19. В этой же главе мы представим общие тенденции в разработке и использовании инструментальных средств для построения экспертных систем.

18. Системы с доской объявлений
В последние годы в разработке архитектуры экспертных систем появилось новое направление, которое получило название системы с доской объявлений (blackboard sys-tems)u. Системы с такой архитектурой могут эмулировать режим построения как прямой цепочки логического вывода, так и обратной, а также попеременно применять эти режимы в процессе работы. Кроме того, применение систем с доской объявлений побуждает инженеров по знаниям к иерархической организации и знаний относительно предметной области, и пространства частичных и полных решений. Таким образом, эта архитектура очень хорошо подходит для решения задач проектирования, для которых характерно большое, но факторизуемое многомерное пространство решений. Системы с подобной архитектурой уже успешно применяются для интерпретации данных (например, распознавания графических изображений и речи), анализа и синтеза многокомпонентных структур (например, структуры протеинов) и планирования.

19. Система отслеживания истинности предположений
В этой главе мы в общих чертах представим вычислительные методы, которые используются для отслеживания зависимостей между представлением в программе состояний, действий и предположений. Начнем мы с относительно простых систем, затем перейдем к более сложным. Там, где без этого можно обойтись, мы будем пренебрегать строгими математическими формулировками и заменять их менее формальным описанием того, что делается в системе, почему делается именно так и какую пользу из этого можно извлечь.

20. Формирование знаний на основе машинного обучения
За последние 10 лет в области исследования методов формирования знаний на основе машинного обучения (в дальнейшем для краткости мы будем употреблять термин машинное обучение — machine learning) наблюдается бурный прогресс. Но мы не будем в этой главе делать широкого, а следовательно, и поверхностного обзора имеющихся работ, а сконцентрируемся на тех методах, которые имеют прямое отношение к проблематике экспертных систем

21. Сети доверия
В этой главе мы рассмотрим два количественных метода реализации логических рассуждений при наличии неопределенности в структурированном пространстве гипотез, базирующихся на теории свидетельств Демпстера—Шефера [Gordon and Shortliffe, 1985] и Байесовском формализме [Pearl, 1986]. Каждый из этих подходов предполагает, что на множестве гипотез каким-то способом определена функция доверия (belieffunction), а затем по мере накопления новых свидетельств применяется специфический механизм обновления текущего множества допущений.

22. Рассуждения, основанные на прецедентах
Если прецедент — это модуль знаний, который может быть считан программой, то в чем его отличие от других способов представления знаний, множество которых мы уже рассмотрели в этой книге? Самый короткий ответ на этот вопрос — прецедент, как правило, реализуется в виде фрейма (см. главу 6), в котором структурированы информация о проблеме, решение и контекст. Так же, как фрейм или порождающее правило, описание прецедента может быть сопоставлено с данными или описанием цели. Но для извлечения описания прецедента из базы таких описаний используется совсем другой механизм, чем для извлечения фрейма или порождающего правила.

23. Гибридные системы
Системы, которые мы рассмотрим в этой главе, ознаменовали дальнейшее продвижение по этому пути — в них объединяются традиционные программы решения проблем и компоненты самообучения и критического анализа. Система ODYSSEUS [Wilkins, 1990] способна обучаться тому, как уточнять базу знаний. Для этого используются две разные методики: одна основана на анализе прецедентов, а вторая — на анализе пояснений. Обе методики являются сравнительно новыми, и читатель сможет вкратце ознакомиться с ними в данной главе. Далее будет описана программа, в которой логический вывод на основе прецедентов используется для обработки исключений из правил, а основным инструментом решения проблем являются порождающие правила.

24. Заключение
В этой главе мы еще раз вспомним темы, рассмотренные в данной книге, и порекомендуем, что нужно прочесть тем, кто пожелает еще глубже изучить их. Обзор организован таким образом, что в нем в сжатом виде будет суммирован материал, разбросанный по разным разделам. В ходе изложения тех или иных тем вам встретятся ссылки на предыдущие главы, но я старался не злоупотреблять ими. В этой главе представлены некоторые прогнозы дальнейших путей развития исследований в области искусственного интеллекта и, в частности, экспертных систем, которые могут послужить материалом для последующей очной или заочной дискуссии. Эти прогнозы представляют мое личное мнение, если только не оговорено обратное, и читатели вольны отнестись к ним с известной долей скептицизма.

ПРИЛОЖЕНИЕ. Программирование на языке CLIPS
Это Приложение организовано следующим образом. В разделе А.2 рассмотрены основные функции языка описания правил и процедурного языка. В разделе А.З представлены методы работы с объектами и показано, как использовать их в сочетании с правилами и процедурами. В разделе А.4 описан пример, демонстрирующий некоторые приемы программирования правил, а в разделе А.5 резюмируются характеристики этого программного продукта и предлагаются темы для более углубленного изучения.

Литература

Логические игры

Собственно, игры здесь

Все началось на дне рождения Алисы. Не Алисы из Страны Чудес, а моей знакомой девочки по имени Алиса. Каким образом в этой истории появилась другая Алиса, вы скоро поймете. Разумеется, на дне рождения были младший брат Алисы Тони, а также ее друзья Майкл, Лиллиан и еще несколько мальчиков и девочек. После того как было сыграно бессчетное число игр и показаны все фокусы, ребятам захотелось послушать какие-нибудь логические задачи-головоломки. Сборник из 88 задач на самые разные темы. И что характерно с правильными ответами.

Телекоммуникационные технологии

Интернет является сетью виртуальных сетей. В 1991 году у нас (тогда еще в СССР) о нем знали несколько десятков человек, которые только что освоили электронную почту (через RELCOM) и попробовали, что такое FidoNet. Первое сообщение по электронной почте было послано президентом США Биллом Клинтоном 2 марта 1993 года. Первая новелла Стивена Кинга была опубликована по каналам Интернет 19 сентября 1993 года (до появления печатной копии), к тому же году относится начало синхронной передачи радио-программ по сетям Интернет. В конце 1993 года заработала первая очередь оптоволоконной опорной сети Москвы, полностью профинансированная Джорджем Соросом. В 1994 году НАТО организовало первую конференцию по Интернет в России (в Голицыно под Москвой). С помощью DFN (Deutsche Forschung Naetze), а затем Дж. Сороса и RELARN круг любителей Интернет расширился до сотен и тысяч, а после включения программ Минвуза и Министерства науки РФ счет пошел на десятки тысяч. Это произошло прежде всего потому, что созрели условия - в различных учреждениях (сначала научных, а затем коммерческих и государственных) и у частных лиц оказались сотни тысяч персональных ЭВМ.

Введение
Наиболее употребимые сокращения
Преобразование, кодировка и передача информации
Причины циклов пакетов и осцилляции маршрутов
Отсутствие аутентификации
Узлы, вовлеченные в инцидент
Виртуальные локальные сети VLAN, Интранет
Сетевые драйверы
Вопросы по данному курсу
Литература
Общие правила безопасности
Сообщения управления МАС
IPX
Частные виртуальные сети
Структурированный текст
Поисковые роботы Файл robotstxt
Немодифицируемые заголовки
Широкая рассылка и отсекание ветвей
Каноническая модель кодирования
Сети с коммутацией пакетов, уровень опорной сети
Атрибут Idle-Timeout
Запрос получения метки
Соответствие CLP/PSC
Имена, зарезервированные слова и представления RPSL
ASN 2
О размере пакетов
Процедура initialization-instantiation
Операции клиента SNTP
Влияние шумов и помех
Представление электрических сигналов в цифровой форме
Цифровые каналы Tи Е1
Дельта-модуляция
Стандарт MPEG-7
Профайл дескриптора объекта
Сжатие данных с использованием преобразования Барроуза-Вилера
Обнаружение ошибок
Коррекция ошибок
Используемые стандарты

Основы современных компьютерных технологий

Эффективность функционирования информационной системы во многом зависит о г ее архитектуры. В настоящее время перспективной является архитектура клиент-сервер. В достаточно распространенном варианте она предполагает наличие компьютерной сети и распределенной базы данных, включающей БД корпоративную (БДК) и БД персональные (БДП). БДК размещается на компьютере-сервере, БДП размещаются на компьютерах сотрудников подразделений, являющихся клиентами корпоративной БД.
Сервером определенного ресурса в компьютерной сети называется компьютер (программа), управляющий этим ресурсом, клиентом - компьютер (программа), использующий этот ресурс. В качестве ресурса компьютерной сети могут выступать, к примеру, базы данных, файловые системы, службы печати, почтовые службы. Тип сервера определяется видом ресурса, которым он управляет. Например, если управляемым ресурсом является база данных, то соответствующий сервер называется сервером базы данных.
Достоинством организации информационной системы по архитектуре клиент-сервер является удачное сочетание централизованного хранения, обслуживания и коллективного доступа к общей корпоративной информации с индивидуальной работой над персональной информацией.

Базы данных и информационные системы
Безусловные операторы
Информационные процессы и технологии
Статистические пакеты

Современные технологии создания программного обеспечения

Накопленный к настоящему времени опыт создания систем ПО показывает, что это сложная и трудоемкая работа, требующая высокой квалификации участвующих в ней специалистов. Однако до настоящего времени создание таких систем нередко выполняется на интуитивном уровне с применением неформализованных методов, основанных на искусстве, практическом опыте, экспертных оценках и дорогостоящих экспериментальных проверках качества функционирования ПО. По данным Института программной инженерии (Software Engineering Institute, SEI) в последние годы до 80% всего эксплуатируемого ПО разрабатывалось вообще без использования какой-либо дисциплины проектирования, методом "code and fix" (кодирования и исправления ошибок).
Проблемы создания ПО следуют из его свойств. Еще в 1975 г. Фредерик Брукс, проанализировав свой уникальный по тем временам опыт руководства крупнейшим проектом разработки операционной системы OS/360, определил перечень неотъемлемых свойств ПО: сложность, согласованность, изменяемость и незримость.

Продолжение

Отклики mathematica5@mail.ru