Государственное образовательное учреждение среднего профессионального образования Смоленский техникум электронных приборов Реферат на тему «Эвристическое программирование и экспертные системы» Выполнил: студент группы 041-ПО, Одинцов Р.С. Проверил: преподаватель Крупенёва А.М. Смоленск, 2007 г. Содержание Содержание 2 Введение 1 Чёрный ящик 6 2
Эвристическое программирование и эффективность эвристических методов 3 Экспертные системы 13 Заключение 17 Список акронимов 18 Список литературы 19 Воображение важнее знания. Альберт Эйнштейн Введение Эвристика (от греч. heurisko – нахожу) – это процесс поиска ответов. Относительно программирования и математического моделирования эвристические методы предполагают интеллектуальный
(творческий) анализ задачи с выявлением основных его особенностей (приводящих к сокращению перебора), причем без строгого доказательства. Вообще, программирование – это деятельность по созданию программ и сопровождающего материала; алгоритмизация как главная и составная часть программирования требует строгой формулировки лишь решения задачи, что позволяет в принципе решать задачи, даже не имея их математической модели, может быть достаточно, например, знать формат входных и выходных данных, далее эвристически,
«на глаз» определить корреляции, закономерности и, записав эвристический алгоритм, решить в некотором смысле задачу. Только так, например, можно смоделировать работу «чёрного ящика». Для построения эвристического алгоритма «чёрных» преобразований, тем не менее, могут применяться неэвристические методы, к таковым относятся, например, регрессионно-корреляционный анализ, построение нейросетевой модели и большое число методов аппроксимации. (О моделировании «чёрного ящика» так же пойдёт речь в части «Чёрный
ящик».) Но первая причина, кроме самой принципиальной возможности, для применения эвристических подходов к решению или моделированию есть эффективность оных, о чём будет сказано в части «Эвристическое программирование и эффективность эвристических методов». Нужно отметить, что чёткая математическая модель и вообще, реализация через точные математические методы не только не необходима, но часто и не нужна или невозможна по следующим причинам: невозможность достоверного получения информации об объекте моделирования; сложность или ресурсоёмкость
точного решения (яркий пример – задачи NP-класса); неизвестность точного решения; необходимость адаптации алгоритма к большому классу трудно предсказуемых (неизвестных на данный момент) вариаций задачи (таков, например, эвристический алгоритм детекции вирусных (вообще, вредоносных) программ); В результате исследования задачи, программист может прийти к выводу, что решение лучше реализовать эвристическим алгоритмом (что, как правило, будет означать работу по анализу условий задачи и, в дальнейшем,
возможно, как результат – оценки различных эвристических алгоритмов), либо применить точный метод (что часто предполагает лишь запись известного алгоритма на некотором ЯП в некоторой модели данных, не редко, с бóльшими или меньшими модификациями, специфичными для задачи, так, например, выглядит алгоритм Бентли-Седжвика (Bentley - Sedgwick, Eighth Annual ACM-SIAM
Symposium on Discrete Algorithms, 1998) являющаяся решением задачи Дейкстры о голландском флаге (троичное разбиение), он и многие другие алгоритмы подобного рода чаще всего входят в алгоритмы более высокого уровня в качестве их составной части, та же BeSe-сортировка активно используется при сжатии данных (хороший пример комплексного подалгоритма, использующего BeSe, – это преобразование Берроуза-Уилера (Burrows-
Wheeler Transformation, BWT), построении индексов, поиске по составным ключам и многих других составных алгоритмах). Возможна и совместная реализация обоих подходов, вообще, грань между эвристичным и точным не чётка со стороны первого, речь не идёт о том, что некоторый алгоритм нельзя отнести к классу эвристических или нет, само понятие эвристичности интуитивно в корне, поэтому, например, распознавание голоса – это на практике всегда эвристический алгоритм (точнее, их система), но он основан на точных методах: преобразование
Фурье, спектральный анализ, лингвистическое сравнение, статистические методы, нейросети. Эвристический алгоритм не обязательно не даёт глобально оптимального или точного решения хотя бы даже в одном случае из всех возможных, эвристический алгоритм отличается в первую очередь способом создания и концепцией своей работы. С другой стороны, нельзя строго логически доказать, что некоторый точный алгоритм лучше по, допустим, средней практической скорости некоторого другого, подобный анализ возможен
лишь для таких характеристик, как, например, асимптотическая вычислительная сложность, но не для столь многофакторной характеристики, как приведённая, так как последняя зависит от исполняющего оборудования, его архитектуры, реализации алгоритма, тех данных, которые реально будут обрабатываться – некоторые алгоритмы вообще невозможно использовать или реализовать в некоторых условиях (например, алгоритм факторизации (разложения числа на простые множители) Шора хоть и реализуем в любой фон-неймановской архитектуре,
но реально может работать только на квантовых компьютерах, так как использует 2n-мерные преобразования, требующие немыслимой для полупроводниковой базы мощности); таким образом, принимая решение об используемом алгоритме или изобретая свой, разработчик всегда чисто интуитивно (исходя хотя бы из собственного опыта и здравого смысла) производит выбор. Сам факт выбора не означает эмпиричность или же точность рассматриваемого алгоритма, но означает, что в разных ситуациях один и тот же алгоритм может принять существенно отличающееся
от «идеального» (реально неопределимого) поведения, более важно то, что чтобы создать полностью эмпирический алгоритм, потребуется создать искусственный интеллект. Экспертные системы, о которых речь пойдет в части «Экспертные системы» лишь применяют эмпирически построенные алгоритмы, т.е. класс метода определятся не совсем формально, так как любая базовая часть модели задачи строится всё же интуитивно-экспериментально (исключение составляют чисто теоретические задачи, хотя
можно считать, что таковых не существует), таким образом, эвристическое решение отличается лишь строгостью используемых теорий, т.е. можно сказать, что класс эвристических методов включает как особый подкласс точные методы, но так обычно не говорят, наоборот, выделяя эвристические методы из полного множества. При этом, когда разработчик создаёт некоторый новый алгоритм, он просто не может пользоваться полностью аксиоматизированным методом, например, доказательств, т.к. его в прикладном виде для программирования
на данный момент не существует – в общем случае, по крайней мере; чисто математическое доказательство оказывается, как правило, неприемлемым по сложности – как правило, оно на порядок сложнее осуществимо, чем сам алгоритм, так, например, алгоритм BWT описывается через интуитивно-понятные сущности на половине страницы, а его математическое доказательство (доказательство обратимости преобразования) занимает минимум несколько листов. В итоге, говоря об эвристическом программировании, мы говорим в первую очередь о задачи
оптимизации (приближённого, но правдоподобного решения) вычислительно понятного алгоритма, чаще всего это NP-задача, либо о создании эвристической модели основываясь лишь на нужных (известных) свойствах для решения. 1 Чёрный ящик Одним из интереснейших свойств математики является обобщение, в частности, мы не используем комплексные числа при счёте, тензоры или симплексы при геометрических построениях, но математически мы можешь мыслить любые математически-обоснованные сущности.
Лучше, конечно, когда они имеют какой-либо смысл, например, кибернетический. Так, «черный ящик» – это обобщение любого кибернетического объекта, представляющего интерес с информационной точки зрения, т.е. это информационно-активный, преобразующий или дающий информацию объект. Математическое описание (модель) «чёрного ящика» – это тензор входной информации и тензор выходной информации плюс некоторое отображение, производимое над ними, которое и составляет внутренности «чёрного
ящика», оно неизвестно. Начало понимания необходимости эвристического поиска решений можно брать с задачи реализации (симуляции) произвольного «чёрного ящика» – ни один точный алгоритм не может решить эту задачу в общем случае. Даже метод, неограниченный по памяти и вычислительно, способный запомнить все варианты «реакций» черного ящика как объекта без памяти или даже с памятью (состоянием), не сможет эмулировать его работу в случае, если «чёрный ящик» будет использовать, например, реальные случайные числа, или
просто будет рекуррентно определён через неизвестное начальное состояние (такие «случайные» свойства реккурент применяются при создании ГСЧ – генераторов псевдослучайных чисел, самыми простыми (короткими, рекурсивными лишь на шаг) являются конгрузтные ГСЧ, сейчас практически ставшие стандартом для RTL вследствие своей простоты и неплохим свойствам); здесь следует, конечно, разделять понятия неизвестности и практической невычислимости, первое относится к эвристическим методам, второе – нет, например, упомянутый
(точный) алгоритм Шора решает задачу взлома шифрованных сообщений несимметричного алгоритма RSA с, как раньше считалось, «невычислимыми» числами. Показательным примером «чёрного ящика» может служить человеческий мозг. Принципиально возможно создать модель человеческого мозга, точную до квантового (или более?) уровня – но лишь посредством прямого исследований его внутренностей, а это недопустимо для «чёрного ящика».
В случае «чёрного ящика» в виде человеческого мозга или, лучше, организма проблема заключается в том, что множество значений входного тензора бесконечно велико – хотя и ограничено количественно, соответственно неограниченно и множество значений выходного тензора. Многими точными алгоритмами преодолеваются различного вида бесконечности, например, алгоритм «решето Эратосфена» ищет простые числа и может делать это бесконечно долго, можно так же реализовать алгоритм,
не требующий в пределе бесконечное количество дополнительной памяти для этого (требующий дополнительную память малого и константного размера; а дополнительно – это помимо самого простого числа!), поэтому для поиска последовательных простых чисел эвристические методы непринципиальны. Получаем, что вследствие неограниченности вариаций сочетаний окружающих условий неограниченным (непредсказуемым) становится так же и многообразие реакций мозга на них: невозможно установить закономерности (точные),
по которым он будет действовать в тот, или иной момент: Если «для того, чтобы познать Бога, надо быть им самим» (Вольтер), то для того, чтобы смоделировать человека, оказывается нужен мощнейший эвристический алгоритм (искусственный интеллект, как уже говорилось). Познание человека, впрочем, небезрезультатно производит психология – наука о сознательной и подсознательной деятельности человека и высших животных. И, как доказательство приведённых суждений, психология оказывается
прежде всего гуманитарной наукой, основанной не на математике, но на таких понятиях, как наблюдение и эксперимент, при этом, например, эксперименты по исследованию высшей нервной деятельности довольно сложно себе представить, не говоря уже об их точности или, например, аксиоматичности. Тем не менее, можно представить неэвристический алгоритм, эмулирующий (повторяющий) некий «чёрный ящик». Такой алгоритм может представлять собой ассоциацию между двумя векторами, при длине обоих векторов
по n, алгоритм потребует n2 памяти. Если «чёрный ящик» имеет m состояний, то число нужно умножить ещё на m, получим mn2 памяти, т.о. алгоритм реализуем, если m – конечно. Налицо естественная ограниченность и математическая обоснованность. Теперь пусть «чёрный ящик» проверяет, является ли письмо спамом (навязываемой информацией рекламного характера) или нет. Когда человек читает, например, письмо, присланное ему по электронной почте, он
однозначно может определить, является ли письмо спамом или нет, так как обладает достаточной и даже много большей информацией. Программа же, решающая поставленную задачу, должна бы анализировать смысл письма – но, конечно же, всё ограничивается эвристическими методами. Почему нет точного метода? Хотя бы потому, что спам – неформулизуемое понятие, приглашение в ресторан может быть спамом, а может таковым не оказаться, причём информация, доказывающая то или иное предположение,
оказывается не просто ёмкой, а просто недоступной для программы. В результате, приходится реализовывать эвристический алгоритм, основанный, например, на сравнении слов в письмах, которые пользователи помечали как спам, с существующими в обрабатываемом сообщении, можно также сравнивать письмо с письмами, получаемыми пользователем обычно. Здесь типично происходит переход от семантической задачи к задаче статистической, синтаксической и
лингвистической. В данном случае отсутствует не только математическое обоснование, но даже сам процесс доказательства работоспособности данного алгоритма: его идея исходит из соображений здравого смысла, и, видимо, только тестирование покажет, хорош он (правдоподобен, эффективен) или нет. Теперь ещё раз представим «чёрный ящик», на этот раз на вход он принимает изображение (фотографию) и производит идентификацию объекта, сигнализируя о своём выборе соответствующим значением на выходе,
например, в закодированном виде. В данном случае функция, реализуемая «чёрным ящиком» и его параметры понятны, поэтому он уже «серый», тем не менее, ещё и не совсем «белый». В рамках отнесения задач к лишь эмпирически-разрешимым «серый ящик» логично считать частным случаем «черного», поэтому для него так же будут верны все следующие суждения. Рисунок 1 Ассоциации «черного ящика» Сначала о неэвристическом решении, оно есть – нейронные сети неплохо
справляются с задачей нечётких ассоциаций, выполняя нелинейную операцию, состоящую в многовложенных операциях взвешенных сумм и вычислений сигмоидов – S-образных функций, соответствующим в модели нейрона передаточным функциям, действующим в человеческом мозге (например, в роли такой функции может выступать гиперболический тангенс, такая функция помогает усиливать слабые сигналы, избегать перенасыщения и подавлять шум).
Рисунок 2 Гиперболический тангенс Т.е. данная задача в принципе выполнима с использованием математического аппарата нейронных сетей, но она требует больших затрат как по времени на обучение сети, так и по памяти для хранения возможно очень большого числа нейронов (фактически, сейчас компьютеры даже просто по числу элементарных элементов колоссально уступают человеческому мозгу, поэтому не нейронные сети не могут сейчас сравниться с человеческом мозгом). Возможно ли решить данную задачу эвристическими методами?
Может быть, да, может быть, нет, но на данный момент нет сколь-нибудь эффективных методов, реализующих это. Другое дело, что с помощью эвристических методов можно значительно улучшить нейросетевое решение, это может быть, во-первых, фильтрация изображения, далее: анализ форм (силуэтов, обход по контуру), ну и, например, отделение объекта на рисунке от фона – всё это реализуемо эвристически и улучшает конечный результат, т.к. похожая работа или её часть всё равно происходила бы в нейросети, но в случае эвристического
алгоритма действия всегда более целенаправленные и в то же время, проще вычислительно. Оценка эффективности эвристических методов очень важна, т.к. она-то и является критерием их применимости вообще, далее речь пойдёт именно о ней. 2 Эвристическое программирование и эффективность эвристических методов Пример удачного применения эвристических методов вместо точных связан с применением специализированных алгоритмов сжатия данных вместо общих. Например, алгоритм
JPEG позволяет сжимать изображение в 2-200 раз, причём при степенях сжатия около 10-20 потери для изображений фотографического качества практически незаметны, а для вычислительно более ёмкого алгоритма Wavelet даже степень сжатия в 100 раз часто не приводит к значительным искажениям. То же изображение будет сжато общим (универсальным) алгоритмом лишь в 2-3 раза. Такая разница возникает из-за того, что все эвристические алгоритмы сжатия решают более специфичную
задачу, чем общие, тем не менее, как следствие, это кроме всего прочего приводит к низкой эффективности или низкому качеству, если задача не соответствует спецификации алгоритма. Например, алгоритм JPEG очень плохо сжимает схематичные рисунки малого размера – происходит либо большая потеря качества, либо сжатия почти не происходит. Тем не менее, эвристические методы примечательны тем, что, будучи нацелены на решение специфичной задачи, обычно всё же в состоянии решать задачи и более
общего плана, что никак не относится к точным методам. В данном случае важным, конечно, остаётся факт потери части информации, но не все эмпирические алгоритмы приводят к неоптимальному решению или потери информации. Существует замечательный, связанный с математикой эмпирический алгоритм, называемый хеширование. Под хешированием понимается применение некоторой функции перераспределения, либо, более специфично
к программированию, организация ассоциационного отображения составных ключей посредством кодирования последних через некоторую математическую функцию (как правило, реккуренту). Хеширование, например, решает задачу поиска элемента в массиве, для чего через хеш-функцию от составного ключа, по которому производится поиск, получают хеш-значение, которое в дальнейшем используется для поиска ключа, причём уже в меньшей области допустимых вариантов.
Самое интересное, что хеш-функция вычисляется всегда очень быстро, так как обычно она весьма проста (например, часто это пропорционально взвешенная сумма значений компонент составного ключа, взятая по некоторому модулю, в принципе вычисление хеш-функции обычно требует O(n) времени, но т.к. n – длина составного ключа, как правило, варьируется в малых пределах, то можно сказать, что хеш-функция имеет константное время), а поиск далее настолько сильно сокращается, что использование
хеш-функций оказывается быстрее по асимптотической сложности, чем даже O(log n) (логарифмическое время выполнения), т.е. быстрее бинарного поиска, производимого путём половинного деления допустимых областей. Правда, итак существует алгоритм, обгоняющий бинарный поиск на нескольких или более первых делениях – это интерполирующий поиск (так же называемый естественным), который в хорошем случае (при более-менее равномерном распределении) приводит к
O(1) (константному времени выполнения), но хеш-поиск делает такой случай намного более вероятным, накладывая меньше ограничений. Алгоритмы JPEG, хеширования и, например, опознавания спама объединяет то, что они решают задачу, постулируя некоторые факты (свойства данной задачи), а не в общем виде. Это свойство всех эвристических методов, с одной стороны оно проявляется в виде более эффективных алгоритмов относительно точных альтернатив, с другой стороны это даёт принципиальную и практическую возможность
реализации алгоритмов, общее решение которые вообще неизвестно, как, например, распознавание речи. Здесь подтверждается закон программирования: чем больше общность алгоритма, тем меньше его эффективность. Таким образом, к эвристическим относятся все алгоритмы, эксплуатирующие любые недоказанные аксиоматичным путём свойства или особенности задачи (эвристики), т.е. использующие эмпирически построенную модель задачи вместо точной. Различают три вида таких моделей:
1.модель слепого поиска – этот способ решения так же известен как метод проб и ошибок; 2.лабиринтная модель – задача в этом случае сравнивается с поиском выхода из лабиринта; 3.структурно-семантическая модель – задача представляется как набор объектов, имеющих между собой семантические связи (отношения). Для сравнения модель решения задачи, получаемая путём построения непосредственного (неэвристического) алгоритма решения выглядит как поток действий, например, это может быть конечный
автомат. Многие задачи, имеющие математическое описание, можно решить полным перебором. К таковым относятся задачи все класса NP, т.е. задачи на поиск среди известного множества возможных вариантов некоторых оптимумов, притом, что проверка относительной оптимальности производится сравнительно просто. В виду ограничений вычислительных способностей ЭВМ, переборные методы практически не применимы, так задача коммивояжёра (задача поиска гамильтонова
цикла в орграфе) требует перебора n! вариантов, считается, что P ≠ NP, поэтому задачу коммивояжёра нельзя решить полиномиальным алгоритмом, тем не менее, существует метод, значительно сокращающий перебор – это метод семейства методов ветвей и границ – метод Литтла. Метод Литтла делит все возможные множества путей, высчитывает нижние границы минимальных путей в этих множествах (полиномиально), далее, используя данную информацию и применяясь рекурсивно, отбрасывает
те множества путей, которые имеют такую нижнюю границу, которая не позволит улучшить существующий результат (рекорд – текущий лучший найденный цикл). Т.о. эвристический алгоритм в данном случае выступает как оптимизация алгоритма полного перебора, в частности, осуществляет метод ветвей и границ. Это вполне обычная ситуация, т.к. перебором обычно решаются как раз те задачи, обычный императивный способ решения которых неизвестен. Очевидно, что эвристический метод в данном случае значительно эффективнее.
Эффективнее эвристические методы оказываются и в задачах, требующих адаптации или «интуитивного» выбора. Вообще, причина обоим фактам – использование в эвристических алгоритмах более рациональных (относительно задачи), высокоуровневых понятий/принципов, чем в точных императивных и детериминизированных моделях. Можно сказать, что эвристические методы более абстрактны по своей природе, в чём и заключается, отчасти, их врождённое преимущество и лишённость ограничений, присущих неэвристичным методам, оперирующим более
детальными и узкофункциональными элементами алгоритмов как выполнительными, так и структурными. Эвристические методы находят своё применения во всех сферах программирования, но что было бы вообще невозможно без них, так это экспертные системы (ЭС). 3 Экспертные системы Экспертные системы родились в результате провала идеи создания искусственного интеллекта (ИИ): механический, электронный, кибернетический и нейронный подходы пока не дали того, чего
от них ждали. К великому сожалению, а может быть, счастью, задача алгоритмического описания ИИ нерешаема традиционными и нетрадиционными подходами, существующими на сегодняшний день. Видимо потому, что создание ИИ есть задача не только и не столько алгоритмическая, сколько психологическая, философская, эпистемологическая/гносеологическая. Теоретизирование, исследования и практические попытки создания
ИИ привели к основанию фундамента ЭС, теперь ЭС уже можно признать свершившимся фактом. Одними из первых ЭС появились дедуктивные системы со статической памятью (необучаемые), ЭС следующего поколения оперируют уже базами знаний (БЗ), что несколько приближают их к человеческому уровню мышления. ЭС можно назвать узкоспециализированным ИИ, т.е. ЭС – это система, проявляющая в том или ином виде интеллектуальные способности.
Тем не менее, из-за ограниченности оных ЭС всегда существуют либо как составной компонент неинтеллектуальной системы, либо имеют «неинтеллектуальную» оболочку. Сам по себе интеллект и производные от него понятия – уже проблематичны для определения, тем не менее, интуитивно понятно, какие функции системы можно отнести к интеллектуальным, а какие можно обозначить лишь как достижение вычислительных алгоритмов обработки информации.
Так, к интеллектуальным, например, относятся задачи доказательства, распознавания, какого-либо семантического анализа, к неинтеллектуальным относятся любые вычислительные задачи, которыми так или иначе становятся все задачи, решаемые традиционными способами («неинтеллектуально»). Можно отметить, что, хотя ЭС и являются перспективным направлением, в настоящее время 99% ПО имеют практический нулевой уровень «интеллектуальности».
Как упоминалось, первые экспертные системы на протяжении всей своей «жизни» знали лишь то, что задал им эксперт. Качественно другой подход, применяющий базы знаний, дедкукцию/индукцию, более перспективен, чтобы получить представление о роли обучения в работе ЭС рассмотрим структуру и функционирование ЭС, использующих базу знаний и нет. Рисунок 3 Схема функционирования «статической» ЭС
Рисунок 4 Схема функционирования ЭС с базой знаний Базы знаний сами по себе ничего принципиально не меняют, действительно важным для ЭС оказывается способность к обучению, которое не возможно без механизмов классификационного, семантического хранения знаний. В качестве примера, что сама по себе БЗ не даёт интеллектуальности, рассмотрим очередной из проектов по созданию
ИИ – язык логического программирования Prolog, который оперирует предикатами как основными вычислительными единицами, а одновременно и как основным методом хранения информации. Подобный дуализм проявляется и в других семействах языков, например, частично он представлен в функциональных языках, основанных на теории исчислений Алонзо Чёрча (Alonzo Church), но не дуализмом, а скорее именно своим (логическим) способом описания решения
Prolog отличается от других языков. История языков программирования вообще очень интересна, например, до сих пор одним из популярнейших языков является Паскаль, созданный Виртом в 1972 году, хотя самим автором было предложена его улучшенная версия (Модула), она не оказалась востребованной, может быть, из-за отсутствия принципиальных отличий, что же касается Prolog’а: он не только не получил популярности, но, что более важно, не оправдал своего предназначения
– написать на Prolog’е ИИ не только не удалось, но, кажется, остаётся так же невозможно, как и на любом императивном языке. Можно сказать, что язык обладал БЗ, т.к. хранимые факты действительно оставались «осмысленными» и содержательными, но истинной декларативности достигнуто не было, и в итоге промышленная реализация Prolog’а всегда уподоблялась обычной императивной системе с лишь очень ограниченными возможностям, сверх
неё. Язык не только не даёт никаких возможностей к обучению системы, но и не обладает механизмом обобщения или подобных (тем не менее, Prolog облегчает реализацию алгоритмов типа логического вывода, так как они записываются более естественно). Т.о. Prolog относится строго к ЭС первого типа, хотя он и обладает своеобразной БЗ. Обучение, которого так не достаёт многим ЭС не может происходить на пустом месте,
Д. Ленат считает, что чтобы ЭС была способна к обучению, в неё нужно изначально заложить около миллиона сведений общего характера, т.е. для усвоения и возможности систематического применения знаний необходимо иметь их структуру, а не просто набор. Наверно, первое место по популярности занимают сейчас ЭС, называемые «игровой искусственный интеллект» (Game Artificial Intelligence, G.A.I.). На примере видеоигр мы наблюдаем экспоненциальный рост качеств: визуализации,
моделирования физики, но, что примечательно, не интеллектуальности компьютерных противников. Игровой ИИ целиком и полностью зависит от жанра игры, это может быть либо полуиндивидуальный ИИ, управляющий каждым юнитом (виртуальным персонажем без особо выраженных индивидуальных качеств) виртуального мира, либо «коллективный разум» целой расы, к ИИ игры относят даже логические алгоритмы, просто контролирующие её ход, хотя более уместный термин здесь – логика игры.
Ни в первом, ни во втором, ни в, тем более, третьем случае ИИ не ставит перед собой задачу быть максимально интеллектуальным (бывают исключения), практически всегда алгоритмы ИИ создаются в расчете прежде всего на правдоподобность и массовость (скорость), а не на обоснованность или точность (детализованность). Таким образом, рост (всё же) уровня игрового ИИ совпадает скорее со всё большими возможностями по делегации части процессорного времени на второстепенные
нужды вследствие аппаратной поддержки игровых алгоритмов массовой обработки информации (в основном графических, скоро, видимо, физических, и в гораздо меньшей степени звуковых алгоритмов), значительных перспектив в этой области можно ожидать при переходе к аппаратному расчету физических взаимодействий, составляющего сейчас значительную часть всех вычислений, производимых центральным процессорным блоком. Заключение Хотя ещё не существует такой науки как программирование, тем не менее, оно уже имеет свои
методы, в частности это эвристические методы. Эвристическое программирование – это более, чем просто творческая деятельность, это деятельность, продукт которой есть новая идея, рождённая всесторонним эпмирико-теоретическим анализом решаемой задачи, цель которой есть создание эффективного, рационального, интеллектуального и одновременно максимально простого решения. В конечном итоге эвристические методы позволили создавать целые системы, решающие интеллектуальные задачи – их назвали экспертными системами.
Экспертные системы в будущем должны будут абстрагироваться от специфичных задач и перейти на новый уровень, став универсальным средством, искусственным интеллектом, помогающем человечеству в освоении и познании мира; пронизанная информационными сетями, возможна будет новая цивилизация, в которой гипер- и киберсущности переплетались бы с реальностью и с человеческим сознанием каждого индивида в такой степени, что это означало бы революцию жизни, общества, человечества в целом.
Первый эволюционный этап, отделивший человека от просто высших животных – отступление от простой схемы «стимул – рефлекс», такое же ожидается и от экспертных систем, но чтобы создать такие системы, необходимо либо понять сущность человеческого мышления, самосознания, либо изобрести новую альтернативу с похожими свойствами, что. в общем-то эквивалентно по сложности. Некоторые считают, что искусственный интеллект невозможен – так же можно отрицать и существование других
форм жизни, кроме биологической, параллельных миров, – такие предположения обоснованны в основном стереотипами, принципиально же возможно создание ИИ уже сейчас, но первый ИИ может не появиться и в текущем тысячелетии, тем не менее, хомо стали сапиенс благодаря миллиардам лет эволюции, естественного отбора, пойдя по пути усложнения полимеров, в конечном итоге мы приобрели разум, искусственный же интеллект имеет право стать реальностью много быстрее, так как создаётся не
эволюционным (хотя есть и такие идея, например, Лармака – о биологически-подобной эволюции) путём, а целенаправленным, поддерживаемым большим опытом и знаниями, научным подходом, более чем оправдавшим себя во многих других областях, впрочем, не всех. Хочется верить, что будущее информационных технологий откроет новые перспективы для наук и образования, даст новые знания и методы изучения, позволит людям переложить ещё больше нетворческого труда на плечи техники.
Может быть, развитие интеллектуальности и таит в себе некоторые опасности, всё же есть большие предпосылки для перспективного её применения в мирных целях на благо человечества. Список акронимов 1.NP – non-polynomial, не полиномиальный (теория сложности алгоритмов) 2.RSA – по именам авторов: Rivest, Shamir и Alderman, алгоритм ассиметричного шифрования 3.RTL – run-time library, дословно это библиотека времени выполнения, набор основных функций некоторого стандарта (версии) сочетания
ЯП, сред его программирования и выполнения 4.JPEG – Joint Photographic Expert Group, независимая группа разработчиков, разработавшая одноимённый алгоритм сжатия изображений, ставший промышленным стандартом 5.БЗ – база знаний 6.ИИ – искусственный интеллект 7.ПО – программное обеспечение 8.ЭВМ – электронно-вычислительная машина 9.ЭС – экспертная система 10.ЯП – язык программирования Список литературы 1.Г. Долин.
Что такое ЭС Компьютер Пресс, 1992/2. 2.Д. Р. Малпасс. Реляционный язык Пролог и его применение. 3.К. Нейлор. Как построить свою экспертную систему М.: Энергоатомиздат, 1991. 4.Н. Д. Нильсон. Искусственный интеллект. Методы поиска решений М.: Мир, 1973. 5.В. О. Сафонов. Экспертные системы – интеллектуальные помощники специалистов
С Пб: Санкт-Петербургская организация общества “Знания” России, 1992. 6.К. Таунсенд, Д. Фохт. Проектирование и программная реализация экспертных систем на персональных ЭВМ М.: Финансы и статистика, 1990. 7.В. Н. Убейко. Экспертные системы М.: МАИ, 1992 8.Д. Уотермен. Руководство по экспертным системам М.: Мир, 1980 9.Д. Элти, М. Кумбс. Экспертные системы: концепции и примеры
М.: Финансы и статистика, 1987.