Искусственный интеллект и экспертные системы

Architecture Net

Новая технология .NET, предложенная компанией Microsoft, отражает видение этой компанией приложений в эпоху Internet. Технология .NET обладает улучшенной функциональной совместимостью, в основе которой лежит использование открытых стандартов Internet. Кроме того, она повышает устойчивость классического пользовательского интерфейса операционной системы Windows — рабочего стола. Разработчикам программного обеспечения технология .NET предоставляет новую программную платформу и великолепные инструментальные средства разработки, в которых основную роль играет язык XML (extensible Markup Language — расширяемый язык разметки).
Microsoft .NET — платформа, построенная на верхнем слое операционной системы. Технология .NET явилась главным объектом инвестиций компании Microsoft. С момента начала работ над этой технологией и до момента ее публичного анонсирования прошло три года. Несомненно, на развитие технологии .NET оказали влияние другие технологические достижения, в частности расширяемый язык разметки XML, платформа Java™, a также модель компонентных объектов Microsoft (Component Object Model — COM).

Что такое Microsoft .NET?
Платформа Microsoft .NET предоставляет: устойчивую общеязыковую среду выполнения CLR (Common Language Runtime), которая входит в состав данной платформы; средства разработки приложений на любом из многих языков программирования, поддерживаемых платформой .NET; лежащую в основе открытой модели программирования огромную библиотеку классов .NET Framework. Эти классы содержат многократно используемый код. Они доступны в любом языке программирования, поддерживаемом платформой .NET; поддержку сетевой инфраструктуры, построенной на верхнем слое стандартов Internet, вследствие чего обеспечивается высокий уровень взаимодействия между приложениями; поддержку нового промышленного стандарта, а именно технологии Web-служб.

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

Программирование на управляемом C++
В каждой новой версии Visual C++ компания Microsoft расширяет возможности языка во многих направлениях. Visual C++.NET не является исключением, поддерживая множество новых возможностей, для использования которых введены новые ключевые слова и атрибуты. В частности, появилась поддержка разработки кода на управляемом C++ для платформы .NET. В этой главе представлены несколько примеров, которые помогут читателю познакомиться с основными классами .NET Framework и приступить к самостоятельному написанию кода на управляемом C++.

Объектно-ориентированное программирование на управляемом C++
В управляемом C++ поддерживается модель единичного наследования. Следовательно, класс может быть порожден не больше чем из одного базового класса. Такая модель проста и дает возможность избежать усложнений и неопределенностей, которые возникают при множественном наследовании в неуправляемом C++. Хотя класс в управляемом C++ может быть производным только от одного базового класса, однако он может быть наследником нескольких интерфейсов, — это мы обсудим в следующей главе. В данном разделе мы рассмотрим наследование в связи с примером резервирования гостиничного номера.

Управляемый C++ в .NET Framework
Язык C++ — мощный инструмент разработки программ, оказавший огромное влияние на развитие вычислительной науки. Управляемые (managed) расширения от Microsoft добавили в язык C++ целый новый мир — мир .NET. Для того чтобы полностью использовать возможности Visual C++ .NET, необходимо понимать, как он работает с .NET Framework. Мы начнем рассмотрение с базового класса Object (Объект) из пространства имен System. Затем рассмотрим коллекции, а также методы класса Object (Объект), которые следует перегрузить для использования возможностей, предоставляемых .NET Framework. Далее познакомимся с интерфейсами, позволяющими строго определить свойства реализуемых классов

Создание графических пользовательских интерфейсов
Это новая версия программы. Обратите внимание на то, что она значительно проще предыдущей, хотя и имеет гораздо более богатые функциональные возможности. Нет больше необходимости использовать переменные экземпляра для координат и текста строки приветствия (теперь эта информация хранится в управляющем элементе pTxtGreeting типа TextBox (Поле)). Не нужен больше метод OnPaint, так как управляющий элемент TextBox (Поле) знает, как нарисовать себя. Можно также избавиться от кисти.

Сборки и развертывание
Именно благодаря операции развертывания тяжелая работа программиста становится доступной пользователю. Сборки .NET делают развертывание намного более простым и намного более надежным, чем традиционное развертывание Windows. Частное развертывание сборки столь же просто, как копирование компонента сборки в тот же самый каталог, в котором расположена клиентская программа. А общедоступное развертывание сборки регистрирует компонент с уникальным именем (известным как строгое имя) в глобальном кэше сборок, благодаря чему сборка становится доступной для общего использования.

Классы каркаса .NET Framework
В этой главе мы сосредоточим наше внимание на классах, которые иллюстрируют ключевые концепции и модели, проявляющиеся повсюду в каркасе .NET Framework. Такой подход представляется нам более плодотворным, чем просто попытаться немного рассказать о каждом классе, который когда-либо мог бы понадобиться, без того, чтобы дать читателю общее представление о классах .NET. В других главах глубже рассматриваются иные части каркаса, такие как Windows Forms (Формы Windows), ASP.NET, безопасность ADO.NET, и сетевые службы (Web Services).

Программирование в ADO.NET
Классы каркаса, предназначенного для работы с базами данных, собраны в ADO.NET. Класс DataSet (Набор данных) позволяет работать с реляционными данными реляционным же способом, независимо от того, есть ли в текущий момент соединение с источником данных. Разъединенный (disconnected) доступ к данным становится все более значимым в многоярусном и Internet-ориентированном мире данных. При использовании такого типа доступа к данным необходимо установить соединение с базой данных только для изменения или получения ее содержимого.

ASP.NET и Web-формы
Технология ASP.NET, предназначенная для создания Web-приложении, является важной частью платформы .NET. По сравнению с очередной усовершенствованной версией ASP (Active Server Pages — Активные страницы сервера), эта новая технология представляет собой более унифицированную платформу, которая значительно упрощает реализацию сложных Web-приложений В данной главе мы ознакомимся с основами технологии ASP.NET, а также рассмотрим Web-формы, облегчающие создание интерактивных Web-страниц. В главе 11 "Web-службы" мы изучим построение Web-служб на основе технологии ASP.NET.

Web-службы
Распределение функций приложений и возможность использования данных за пределами предприятия, на котором они хранятся, — следующий шаг в развитии компонентной технологии. Количество служб, которые разработчики могут интегрировать в свои приложения, настолько велико, что не приходится даже мечтать о том, чтобы создать их все самостоятельно. Рассмотренный нами конкретный пример, — система бронирования Acme (Acme Reservation System), — представляет собой простую службу. Бюро путешествий Acme (Acme Travel Agency), в состав которого входит система бронирования билетов на авиарейсы и система бронирования мест в гостинице, предоставляет клиентам более широкий спектр услуг.

Web-узлы и Web-службы, работающие на основе ATL Server
Создавать Web-приложения и Web-службы можно несколькими способами Один из них — это использовать технологию ASP NET Такой подход поддерживается в разной степени большинством языков платформы NET Есть и другой подход, поддерживаемый только языком Visual C++ Он состоит в применении сервера ATL Server [ATL Server реализован с помощью неуправляемого C++ и поэтому не относится к основной предметной области NET Впрочем, для некоторых программистов, работающих на Visual C++ ATL является достаточно важной темой].

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

Трассировка и отладка в .NET
Cложные приложения не всегда удается эффективно отлаживать под управлением отладчика, чтобы узнать, что пошло не так, как надо Дублирование, а также написание условий, необходимых для отладки, становится зачастую сложной задачей В пространстве имен System: : Diagnostics (Система Диагностика) есть определенные классы, которые помогают оснастить ваше приложение инструментальными средствами

Смешивание управляемого и неуправляемого кода
Архитектура .NET поддерживает многочисленные языки программирования. В основном язык C++ выбирают из-за того, что в интерфейс 32-разрядных Windows-приложений (Win32 API), в программирование на основе модели компонентных объектов Microsoft (Component Object Model, COM) и в существующие программы были вложены большие средства. Таким образом, взаимодействие между управляемыми программами .NET общеязыковой среды выполнения CLR (Common Language Runtime) и неуправляемыми решениями и компонентами, написанными на C++, будет представлять интерес для многих программистов, во всяком случае, в обозримом будущем.

Visual Studio.NET
Хотя в .NET можно программировать, используя лишь компилятор командной строки, намного легче и приятнее использовать Visual Studio.NET. В этом приложении мы рассмотрим основы использования среды Visual Studio для редактирования, компиляции, запуска и отладки программ. Ознакомившись с ним, вы будете готовы использовать Visual Studio при знакомстве с остальными частями книги. В приложении рассмотрены основы, достаточные для того, чтобы вы смогли начать самостоятельно использовать Visual Studio. Дополнительная информация о возможностях Visual Studio излагается в главах книги по мере необходимости.

Искусственный интеллект и экспертные системы

Типичное изучение математики (как и любой формальной теории) в школе, в вузе сопровождается ощущением растерянности, недоумения. Определения и доказательства преподносят как настоящую реальность, но причины явлений никогда не объясняются. Казалось, что большую часть доказательств преподаватели получают с помощью магических манипуляций с кусочком мела у доски. Как можно было связать воедино все эти линии и не выпустить из поля зрения ни одну из них от самого начала доказательства до его чудесного конца? И над всем этим: "А для чего все это надо?".
Ответ приходит через несколько лет активной жизни. На самом деле все это ни для чего не надо, потому что предметы, которые вы изучаете, вносятся в школьные и вузовские программы достаточно произвольно. По правде говоря, эти знания служат лишь поводом для перехода к более серьезным вещам, таким как учиться понимать, учиться решать задачи, учиться познавать. Но любопытно, что эти "вещи" не признаются и не преподаются. Можно сказать, что существует определенный вид интеллектуального терроризма, когда некоторых учеников называют "нуль в математике", хотя их единственная вина состоит в том, что они не понимают то, о чем … никогда не говорится. Некоторым удается это избежать, потому что они раньше сумели познакомиться с неявными правилами этой игры. Есть и такие, кто учит все наизусть…

Предмет "Искусственный интеллект"
Существует область исследований, в которой первым желанием исследователей является стремление понять, как система обработки информации - будь то человек или машина - способна воспринимать, анализировать, передавать и обобщать то, чему ее обучают и с помощью этих данных исследовать конкретные ситуации и решать задачи. Данная область исследования – искусственный интеллект (artificial intelligence) – старший сын информатики. Предмет исследования ИИ – любая интеллектуальная деятельность человека, подчиняющая заранее неизвестным законам. Его можно также определить как "все то, что еще не сделано в информатике"

Введение в проблему искусственного интеллекта
ИИ - это научно-исследовательское направление создающие модели и соответствующие программные средства, позволяющие с помощью ЭВМ решать задачи творческого, не вычислительного характера, которые в процессе решения требуют обращения к семантике (проблеме смысла). Исследования в области ИИ проводятся в течение 30 лет.

Искусственный интеллект как эмпирическая проблема
Теория вычислительных систем - дисциплина эмпирическая. Можно было бы назвать ее экспериментальной наукой, но, подобно астрономии, экономике и геологии, некоторые из ее оригинальных форм испытаний и наблюдений невозможно втиснуть в узкий стереотип экспериментального метода. Тем не менее это эксперименты. Конструирование каждого нового компьютера - это эксперимент. Сам факт создания машины ставит вопрос перед природой; и мы получаем ответ на него, наблюдая за машиной в действии, анализируя ее всеми доступными способами.

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

Обзор исследований в области искусственного интеллекта
Другими словами, исследования в области искусственного интеллекта направлены на разработку программ, решающих такие задачи, с которыми сейчас лучше справляется человек, поскольку они требуют вовлечения таких функций человеческого мозга, как способность к обучению на основе восприятия, особой организации памяти и способности делать выводы на основе суждений



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

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

Станет искусственный интеллект естественным
В последнее время интерес к искусственному интеллекту резко растет — вместе с требованиями к информационным системам. Умнеет программное обеспечение, умнеет бытовая техника. Мы неуклонно движемся к новой информационной революции, сравнимой по масштабам с развитием Интернета, название которой — искусственный интеллект.

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

Разработка интеллектуальных геоинформационных систем
В настоящее время определился основной подход к решению задач семантического моделирования в ГИС. Этот подход заключается в выделении двух уровней моделирования: уровня концептуального моделирования предметной области (ПО) и уровня моделирования базы данных (знаний) ГИС. Концептуальная схема ПО есть множество типов, снабженное некоторой структурой. Структура задается множеством отношений и операций, определенных на множестве типов.

Природа и техносфера. Проблемы экологии

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

Природа и техносфера. Проблемы экологии
Землетрясение начинается с разрыва и перемещения горных пород в каком-нибудь месте в глубине Земли. Это место называется очагом землетрясения. Глубина его обычно бывает не больше 30 км, но в отдельных случаях доходит и до 700 км. Иногда очаг землетрясения может быть и у поверхности земли. Если землетрясение сильное, то в таких случаях мосты, дороги, дома и другие сооружения оказываются разорванными и разрушенными.

Центральная Азия и Россия - экологическая ситуации
Одним из важнейших компонентов Целей развития на пороге тысячелетия – эпохального документа современности, принятого Организацией Объединенных Наций в сентябре 2000 года и рассчитанного на период до 2015 года – является обеспечение экологической устойчивости. На карте мира трудно найти регион или страну, для которых указанная цель считалась бы уже решенной, а потому утратившей актуальность. Не являются исключением в этом отношении страны-участницы Информацион-ной сети в области экологии и устойчивого развития КАРНЕТ, поддерживаемой Программой Развития ООН. Особенности природно-климатических условий, размещения населения, географии и отраслевой структуры производительных сил стран Центральной Азии и сопредельных с регионом районов России таковы, что поддержанию равновесия в окружающей среде здесь должно уделяться повышенное внимание.

Экологическая ниша - совокупность факторов среды обитания
Оценивая обстановку, сегодня можно с определенной степенью уверенности говорить не об одном, а о четырех, сливающихся в единый разрушительный процесс, кризисах - экологическом, демографическом, технологическом и, наконец, нравственном. Как свидетельствует история, при совпадении нескольких таких кризисов исчезали цивилизации, до того казавшиеся их современникам вечными и несокрушимыми. Достаточно вспомнить хотя бы судьбу Древнего Египта, Древней Греции или Древнего Рима.

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