Машинный интеллект
4.1. Основные понятия
Под понятием " машинный интеллект " подразумевают совокупность аппаратных и программных средств ЭВМ, с помощью которых обеспечивается такое общение человека с машиной (интерфейс) которое по своему уровню приближается к общению между собой специалистов, решающих совместную задачу [37].
Машинный интеллект предполагает наличие средств, которые определяют восприимчивость ЭВМ к языкам программирования высокого уровня, близким к естественному языку выдачи заданий на решение задач, а также средств, позволяющих выполнить эти задания за счет знаний о предметной области, где решается данная задача.
Основой машинного интеллекта является так называемый структурный способ обработки информации. Его альтернатива — программный способ . В обоих способах используется и аппаратное оборудование, и программы выполнения заданий на нем. Но по отношению к конкретной работе машины эти способы принципиально различаются. Если выполнение данного задания не требует никаких программных указаний о промежуточных действиях, то такой способ будет структурным. В этом случае машина знает, как выполнять задание, поскольку в ее внутреннем математическом обеспечении заложена соответствующая информация, которая активизируется по имени полученного машиной задания. Другими словами, в состав базовых операций машины, не требующих программирования, входит операция по выполнению данного задания. Например, если в состав базовых операций входит получение скалярного произведения двух векторов, то чтобы найти его, пользователю достаточно лишь задать эти векторы и указать знак операции скалярного произведения. Если же такая операция (как самостоятельная) в машине отсутствует, то для получения требуемого результата необходимо ее реализовать в виде соответствующей программы из последовательности имеющихся базовых операций над компонентами векторов и промежуточными результатами вычислений. Это и будет программный способ выполнения задания.
Оба этих способа обработки информации можно реализовать на любой из ЭВМ, но степень развития ее машинного интеллекта зависит от соотношения между этими способами. Чем более сложные действия может выполнять машина без их детализации со стороны пользователя (в виде последовательностей программных указаний), т. е. чем больше знает машина, как делать (что делать — задает пользователь), тем более высоким является ее интеллект. Следовательно, пользователю на ней легче работать, и вычислительный процесс становится более эффективным.
Восприимчивость ЭВМ к языкам программирования означает степень понимания этих языков. Машина понимает язык тогда, когда она в состоянии непосредственно превращать записи на нем в конкретные действия. Эти программы интерпретируются и выполняются в едином пошаговом режиме. Тогда восприимчивость к языкам означает, насколько во внутреннем языке ЭВМ отражены выражения внешнего языка заданий. В частном случае в качестве внутреннего языка машины может быть целиком принят какой-либо конкретный язык программирования. Но тогда ограничивается диапазон эффективного использования машины. Она будет хорошо решать задачи лишь того класса, для которого предназначен данный язык. Кроме того, внутренний язык ЭВМ должен иметь развитые средства для программирования различных служебных (системных) процедур, не программируемых и даже не предусматриваемых пользователем. Поэтому более развитому машинному интеллекту соответствует такой внутренний язык, который не повторяет какой-либо из языков программирования высокого уровня, а содержит в качестве базовых средств часто употребляемые конструкции ряда типовых задач высокого уровня, охватывающих различные классы задач, и, кроме того, конструкции, необходимые для эффективного представления системных процедур.
Исходные программы в соответствии с современной технологией решения задач на машинах пишутся, как правило, на языках высокого уровня, а не на внутренних языках конкретных машин. Поэтому необходим перевод этих программ на внутренние языки машин, осуществляемый с помощью специальных программ — трансляторов . Но чем более развит внутренний язык в смысле содержания в нем конструкций языков высокого уровня и средств реализации трансляторов, тем проще процесс трансляции и тем ближе полученная в результате рабочая программа окажется к исходной. Особенно это проявляется в том случае, когда исходная программа написана на языке высокого уровня, выражения которого реализованы во внутреннем языке ЭВМ.
Вторая черта машинного интеллекта — способность выполнять набор операций с данными и знаниями, хранящимися в базах данных и базах знаний в памяти ЭВМ без специального программирования этих операций. Этими операциями являются процедуры поиска информации, необходимой для решения задачи, моделирование рассуждений с привлечением знаний, корректировка содержимого баз и т. п. Наличие таких встроенных операций позволяет говорить об ЭВМ не только как о вычислительных, но и как о рассуждающих машинах.
Уровень машинного интеллекта отражается и на том, как внутри ЭВМ организован процесс поиска решения задачи.
Организация вычислительного процесса основана на выполнении совокупности служебных процедур, входящих в состав операционной системы машины, без которой вообще невозможен вычислительный процесс. Как правило, эти процедуры не подлежат программированию со стороны пользователя. Это означает, что они представлены во внутреннем языке и по мере вызова эти стандартные программы извлекаются из памяти и выполняются. Если выполнение таких процедур будет происходить на специально предназначенном для них оборудовании, а не на универсальных обрабатывающих процессорах, то это будет соответствовать более высокой степени машинного интеллекта и обеспечит большую эффективность процесса обработки информации в ЭВМ.
Еще один путь повышения машинного интеллекта связан с возможностью непосредственного выполнения операций со сложно организованными данными (векторами, таблицами, списками и т. п.). Чем сложнее структура данных, тем более сложными будут операции, производимые над ними. Но они будут заменять собой большие участки программ, которые до этого должен был писать пользователь. Теперь же вместо того, чтобы выполнять эту работу, пользователю достаточно лишь указать имя соответствующей процедуры.
В том случае, когда структуры данных допускают параллельную однотипную обработку элементов, достигается резкое повышение производительности ЭВМ. Такая обработка меняет сам процесс, реализуемый в ЭВМ, и стимулирует появление новых типов ЭВМ, ориентированных на параллельные модели вычислений.
Машинный интеллект, развиваясь, постепенно приближает ЭВМ к настоящим системам искусственного интеллекта.
4.2. Интеллектуальные системы автоматизированного проектирования
Классические САПР используются в тех случаях, когда при проектировании изделий данного класса накоплен достаточный опыт. Интеллектуальные САПР необходимы проектировщикам тогда, когда отсутствуют достаточно проработанные методики проектирования или изделие принципиально новое и требует значительных затрат творческого труда.
Как и всякая другая система искусственного интеллекта, ИСАПР имеет в своем составе базу знаний, в которой хранится вся необходимая для ее работы информация о предметной области, в которой решается задача проектирования. В этой базе знаний собран и тот опыт, который накоплен проектировщиками, и экспертная информация о возможных путях поискового конструирования — она опирается на методы моделирования рассуждений, типичные для специалистов, которые работают в данной области.
Общая схема ИСАПР может быть такой, как она показана на рис. 4.1. Когда на вход системы поступает задание на проектирование, которое в ИСАПР может формулироваться на естественном профессиональном языке, оно с помощью естественно-языкового интерфейса и других диалоговых средств понимается системой, уточняется у пользователя и переводится в специальное внутреннее представление. После этого делается попытка свести процесс проектирования к стандартным процедурам, реализуемым в классических САПР. Если эта попытка оказывается безуспешной, то логический блок передает задачу на вход экспертной системы, ориентированной на решение задачи проектирования в данной предметной области. Взаимодействуя с базой знаний и САПР, экспертная система ищет решение задачи.
В рамках современных ИСАПР интегрируются различные процедуры, задачи, этапы и уровни проектирования, обеспечивается непрерывный сквозной цикл автоматизированного проектирования, начиная от этапа подготовки технического задания и выработки технического предложения и кончая созданием рабочего и технического проектов. Автоматизируются не только рутинные, но и эвристические и творческие задачи, в частности, процедуры поискового конструирования, структурного синтеза и оптимизации. ИСАПР помогает поддерживать и интенсифицировать творческую активность разработчиков, повышает качество и производительность труда проектировщиков различных категорий, помогая сохранять и тиражировать уникальный проектный (экспертный) опыт и строить интеллектуальный интерфейс между проектировщиком и системой. Человек начинает доверять результатам машинной обработки информации. В результате повышается качество проектируемых объектов, так как увеличивается число просматриваемых вариантов и глубина проработки каждого из них. Сокращаются и сроки проектирования, так как шире используются средства моделирования, ускоряются проектные расчеты и графические работы.
В процессе работы ИСАПР решаются все основные задачи технического проектирования.
- Составляется обоснованное техническое задание — это внешнее проектирование.
- Анализируется техническое задание — это внутреннее проектирование.
- Проводится концептуальный анализ: выбирается конструктивно-компоновочная схема, анализируется стоимость проекта.
- Проводятся структурный синтез и оптимизация.
- Ведется поисковое конструирование (изобретательство).
- Проект планируется.
- Конструкции перепроектируются и дорабатываются.
- Повышается эффективность и качество инженерного анализа благодаря планированию вычислений и обучению пользователя владению пакетом прикладных программ. Проводится имитационное моделирование, выбираются численные методы расчета; результаты контролируются.
- Проверяется соответствие отраслевым стандартам.
- Готовятся рабочие чертежи и документация.
Каждая из этих задач требует сложного программного и информационного обеспечения. Поэтому ИСАПР — это дорогостоящие и сложные системы, но без них вряд ли возможно создавать такие сложнейшие технические изделия, как современные самолеты или подводные лодки, атомные электростанции или космические корабли.
4.3. Экспертные системы в технологии как класс интеллектуальных систем
4.3.1. Эвристика
Когда человек профессионально выполняет какую-либо работу, он использует ряд приемов, облегчающих получение качественного результата. Если ребенок впервые пытается забить гвоздь, то можно быть уверенным, что первый опыт закончится неудачей. Либо молоток ударит мимо гвоздя, либо гвоздь согнется. И лишь постепенно, по мере накопления опыта сформируется навык выполнения этой, казалось бы, несложной операции. А профессионал-плотник забивает гвозди играючи, даже не глядя особенно на то, что делают его руки.
Говорят, что специалист овладел навыками своей профессии. Навык — это способность что-то хорошо делать, не контролируя этот процесс с помощью сознания. Но кроме навыков специалист овладевает и другими приемами работы. Например, тот же плотник знает, как соединить между собой бревна, чтобы сложить сруб, или как изготовить короб для двери. Эти знания он может сообщить другому человеку, научить его делать ту работу, которую он умеет делать сам. Именно такие приемы решения тех или иных задач, опирающиеся на человеческие знания, и называют эвристиками .
Шахматист, выбирающий очередной ход, использует определенные эвристики, которые он извлек из учебников шахматной игры, получил от своих учителей или накопил сам, играя в шахматы. Математик, ищущий путь решения сложной нестандартной задачи, также использует имеющиеся у него эвристики, отражающие его профессиональный опыт.
Между навыками и эвристиками нет строгой границы. Можно сказать, что навык — это еще не сформулированная на уровне словесного описания эвристика. Например, лишь в результате довольно кропотливого психологического эксперимента удалось описать правило для правильного забивания гвоздей. В этом правиле фиксируется и положение глаз (смотреть, оказывается, надо не на шляпку забиваемого гвоздя, а чуть дальше нее, и это "чуть дальше" связано с длиной ручки молотка), и положение руки, держащей молоток. Правило стало эвристикой. Но можно считать (и именно это происходит при профессиональном обучении), что навыки — это эвристики, которые стали автоматическими, вытесненными из сферы сознания. Иначе плотник, каждый раз забивая гвоздь, вспоминал бы эвристику этой операции.
Эвристика не есть точный метод, как, например, методы решения задач, предлагаемые математикой. Поэтому эвристики не всегда приводят к получению нужного результата. В них может содержаться какая-то доля неверной информации. Но именно эвристики содержат тот богатейший опыт человеческого умения, который специалисты в области искусственного интеллекта хотели бы передать роботам и другим интеллектуальным системам. Для того чтобы суметь это сделать, надо научиться извлекать навыки и эвристики из анализа процессов решения задач специалистами и формализовать их для представления в интеллектуальных системах. Потом эти знания используются для решения задач в экспертных системах.
4.3.2. Эвристический метод
С самого начала применения ЭВМ для решения задач стало ясно, что одними точными математическими методами не обойтись. Для многих задач, которые люди умеют решать (например, играть в шахматы или сочинять стихи), точных методов не существует. В этом случае остается лишь воспроизведение на ЭВМ тех правил и приемов, которыми пользуется человек при решении аналогичной задачи.
Эти специфические для человека правила и приемы называются эвристиками, (определение было дано выше. — Ред.) а методы решения задач, опирающиеся на них, — эвристическими методами .
Эвристические методы используются и тогда, когда точные методы не могут быть использованы из-за необходимости проведения громадных по объему вычислений — их либо невозможно выполнить на современных ЭВМ, либо время, затраченное на них, будет слишком велико.
Используя эвристические методы, надо помнить, что они не всегда приводят к результату и часто дают не точный, а приблизительный ответ на поставленный вопрос. Поэтому там, где это возможно, надо прибегать к точным методам решения.
Эвристические методы широко применяются в системах искусственного интеллекта, при управлении сложными системами, в игровых программах и т. п.