Автор: Тимофеев А.В.  

Теги: кибернетика   информатика  

ISBN: 5-7155-0313-2

Год: 1991

Текст
                    А. В. Тимофеев
Информатика
и компьютерный
интеллект
'/Л
137540


АДИЛЬ ВАСИЛЬЕВИЧ ТИМОФЕЕВ — профессор, доктор технических наук, автор 17 книг и 180 научных работ в области компьютерной информатики, робототехники и систем искусственного интеллекта. Родился в 1944 г., окончил в 1967 г. кафедру ЭВМ Московского высшего технического училища (ныне — МГТУ им. Н. Э. Баумана). В 1971 г. защитил кандидатскую диссертацию в Ленинградском университете, после чего работал там же старшим научным сотрудником лаборатории теоретической кибернетики математико-механиче- ского факультета. В 1982 г. защитил докторскую диссертацию и с 1984 г. работает профессором кафедры робо- тотехнических и электромеханических систем Ленинградского института авиационного приборостроения. Создал научную школу в области адаптивных робототехнических и интеллектуальных систем. А. В. Тимофеев — председатель секции робототехнических систем Ленинградского областного совета научных и инженерных обществ, член бюро секции при Центральном правлении Всесоюзного НТО Приборопро- ма им. акад. С. И. Вавилова, член секции Научного совета по комплексной проблеме «Кибернетика» при Президиуме АН СССР, член Межвузовской секции по проблемам управления движением и навигации Научного совета АН СССР.
А. В. Тимофеев Библиотечка Детской энциклопедии Редакционная коллегия: Я. В. Петрянов (главный редактор) Я. Л. Кнунянц А, Я. Сахаров Информатика и компьютерный интеллект Москва «Педагогика» 1991
ББК 32.81 Т41 Реце н зент член-корреспондент АН СССР, доктор технических наук, профессор Е. П. Попов Тимофеев А. В. Т41 Информатика и компьютерный интеллект. — М.: Педагогика, 1991. — 128 с: ил. — (Б-чка Детской энциклопедии «Ученые — школьнику»). ISBN 5-7155-0313-2 Книга доктора технических наук, профессора А. В. Тимофеева посвящена информатике и компьютерному интеллекту, создание которых привело к появлению систем, автоматизирующих физическую и интеллектуальную деятельность человека. Школьники узнают о развитии информатики, новых возможностях диалога между человеком и компьютером, о компьютерах пятого поколения. Для старшеклассников. 4306000000D802030000H06 Т - ' 98-91 ББК 32.81 005@1 )-91 ISBN 5-7155-0313-2 © А. В. Тимофеев, 1991 © Художник Ю. П. Мартыненко, 1991
К читателю Перед вами книга, в которой рассказывается о новом научном направлении — компьютерной информатике и системах искусственного интеллекта. Это молодое, быстро развивающееся направление открывает широчайшие возможности для автоматизации процессов обработки информации в различных сферах деятельности человека, включая и интеллектуальную. Главным инструментом автоматизации служат компьютеры вместе с соответствующим алгоритмическим и программным обеспечением. Подобно тому как изобретение двигателей и роботов открыло эру комплексной автоматизации физического труда, появление компьютеров и средств искусственного интеллекта сделало то же самое в отношении умственной деятельности человека. Поэтому современный этап научно-технического прогресса часто называют компьютерной революцией. Знакомство с информатикой и возможностями компьютерного интеллекта сегодня необходимо практически каждому человеку. Маршруты экскурсий в эту увлекательную область мы выбирали, исходя из истории информатики, внутренних связей ее разделов и развития в ней синтезирующего начала, связанного с интеллектуализацией компьютеров. При этом основное внимание уделялось обсуждению важнейших идей, методов и средств, обеспечивающих эффективное решение задач обработки информации и знаний с помощью компьютеров. Что же касается вопросов экономического, психологического и социального характера, с которыми неизбежно приходится сталкиваться по мере внедрения компьютеров, то из них освещены лишь те, которые наиболее тесно связаны с пониманием последствий информатизации общества. 3
Мы стремились к тому, чтобы содержание книги было понятно и полезно учащимся старших классов школ и профессионально-технических училищ, руководствуясь при этом известным принципом — излагать материал настолько просто, насколько это возможно. Что касается уровня подготовки читателя, то к нему не предъявляются слишком большие требования. Для понимания существа вопросов, излагаемых в книге, решающее значение имеют внимание и интерес читателя к проблематике компьютерной информатики и искусственного интеллекта. Информационные модели и алгоритмы решения задач Что такое информатика? Ответ на этот вопрос можно найти в Большой советской энциклопедии. В ее десятом томе термин «информатика» определяется как «научная дисциплина, изучающая структуру и общие свойства научной информации, а также закономерности ее создания, преобразования, передачи и использования в различных сферах человеческой деятельности». Там же отмечается, что информатика тесно связана с вычислительной техникой. Приведенное определение является слишком общим. Поэтому оно нуждается в уточнении. Особенно это касается термина «компьютерная информатика», который вошел в наш лексикон лишь в последнее время. Появление мощных компьютеров и их широкое использование для обработки информации привело к необходимости изменить определение понятия «информатика». Сегодня компьютерная информатика рассматривается как новое научное направление, связанное с автоматизированной обработкой информации. Оно охватывает представление данных и знаний в памяти
компьютера и их использование для автоматизации процессов программирования, проектирования, управления и многих других. Современные системы связи позволяют подключать компьютеры к сколь угодно удаленным электронным источникам информации. Примерами такой глобальной «безбумажной» связи могут служить космическая система связи через спутники и международная компьютерная сеть, соединяющая более 1000 научных центров в 20 странах мира. Интеграция компьютеров с новыми средствами связи значительно расширила возможности «безбумажной» информатики. В результате возникла новая информационная технология решения задач. Она оказывает влияние практически на все сферы жизни общества. Важную роль при этом играют современные компьютеры. Если 2—3 десятилетия назад громоздкие ЭВМ размещались в специальных вычислительных центрах и обслуживались только операторами-профессионалами, то сейчас компьютеры превратились в компактный, но весьма мощный инструмент, обеспечивающий специалистам широкий доступ к автоматизированным банкам данных и знаний. Диапазон эффективного применения компьютеров для автоматизированной обработки информации возрастает с каждым днем. В 1984 г. были сформулированы и уточнены научные проблемы современной теории информационных систем. По определению академика А. А. Самарского, «информационная система, как, впрочем, и любая другая система, жизнеспособна только тогда, когда она основана на глубинном знании информационного процесса, воплощенном в триаде: модель — алгоритм — программа». Структура системы компьютерной информатики включает элементы этой триады и устанавливает их связь с исследуемым объектом (см. рис. на с. 7). Проб- 6
Алгоритм обработки информации Рис. 1. Структура системы компьютерной информатики. лемы компьютерной информатики сводятся к разработке информационной модели объекта, алгоритма обработки информации и программы, реализующей этот алгоритм на языке компьютера. В 1989 г. разработан ряд концепций информатизации общества до 2005 г. Они направлены на ускоренное развитие средств компьютерной информатики и их внедрение в различные сферы деятельности человека. Важнейшими областями информатизации являются: комплексная автоматизация и роботизация производства; автоматизация научных исследований и проектирования; информатизация организационно-экономического управления; компьютеризация процессов обучения и подготовки кадров в школах, техникумах, профессионально-технических училищах и высших учебных заведениях; компьютеризация сферы услуг, здравоохранения и быта населения. Для успешного решения проблем информатизации предлагается создать мощный народнохозяйственный комплекс компьютерной информатики. В его задачи
входят разработка, производство и эксплуатация компьютеров и новых информационных технологий. Важная роль отводится созданию и внедрению систем искусственного интеллекта (интеллектуальные роботы, диалоговый интерфейс для свободного общения человека с компьютером на естественном языке и т. п.). В Москве, Ленинграде, Новосибирске и ряде других городов успешно функционируют кружки школьной информатики, компьютерные клубы и т. п. Они позволяют более глубоко и предметно изучить новый обязательный школьный курс «Основы информатики и вычислительной техники». В промышленно развитых странах компьютерная информатика включена во многие учебные программы на разных уровнях обучения: от школ до высших учебных заведений. Например, в США свыше 85% школ имеют компьютеры и в них преподаются основы информатики. На университетском уровне знание основ компьютерной информатики давно стало обязательным условием получения диплома или ученой степени. Мощным катализатором внедрения компьютерной информатики и ликвидации «компьютерной неграмотности» стали персональные компьютеры. Сначала казалось, что разработка таких компьютеров — это попытка перевести обычные электронные игры на более солидную основу, а именно на ЭВМ. Поэтому многие фирмы—производители компьютеров не придавали им серьезного значения. Однако вскоре выяснилось, что персональные компьютеры, ориентированные на людей, не имеющих специального образования в области информатики и навыков работы с компьютерами, раскупаются сотнями тысяч и спрос на них постоянно растет. Волна «персональной компьютеризации» захватила прежде всего страны Запада. Основными покупателями персональных компьютеров стали инженеры, уче- 8
ные, экономисты, менеджеры, архитекторы и врачи. К 1987 г. только в США было произведено более 30 млн. персональных компьютеров. Их доступность вызвала колоссальный интерес к компьютерной информатике представителей множества профессий. По мере усложнения задач компьютеры совершенствовались и превратились в профессиональные компьютеры. Они предназначены для ускорения решения задач обработки информации в различных областях деятельности, требующих высокого профессионализма. Сегодня многие специалисты имеют на своих рабочих столах компьютеры, которые по своим возможностям не уступают большим ЭВМ 60—70-х гг. Интерес к современным компьютерам стимулируется тем, что они резко повышают производительность в процессе решения задач. Например, применение профессиональных компьютеров при автоматизации проектирования больших интегральных схем (БИС), на базе которых строятся компьютеры разных типов, позволило сократить сроки их разработки с нескольких лет до нескольких месяцев. В нашей стране важность персональных компьютеров была осознана с большим опозданием. Для ликвидации сложившегося отставания в 1985 г. был создан Межотраслевой научно-технический комплекс (МНТК) «Персональные ЭВМ». Этот комплекс призван сконцентрировать имеющиеся в стране силы и средства и быстро развернуть массовое производство персональных ЭВМ на уровне мировых стандартов. Потребность в персональных компьютерах в нашей стране составляет десятки миллионов. Компьютерная информатика стала основой новой информационной технологии решения разнообразных задач обработки информации. На смену традиционным «бумажным» способам представления и обработки информации пришли новые, «безбумажные». В связи с 9
этим в научной и популярной литературе стали часто употребляться новые термины: «безбумажная информа- тика» и «безбумажная технология решения задач». Может создаться впечатление, что «безбумажность» является главным признаком информатики. Но это впечатление ошибочно. Оно основывается на отождествлении новой информационной технологии с простым использованием компьютеров. Конечно, современные компьютеры с их большой памятью и колоссальным быстродействием позволяют решать многие задачи, связанные с обработкой информации. Однако качество решения в первую очередь определяется теми алгоритмами обработки информации, которые в них закладываются человеком. Поэтому разработка эффективных алгоритмов обработки информации является одной из важнейших теоретических проблем информатики. Компьютеры служат лишь инструментом, на базе которого реализуются эти алгоритмы. При этом носителем информации служит не бумага, а магнитная лента или гибкие диски. Что же касается качества решения задач интеллектуального характера, то оно в такой же степени зависит от технических средств хранения и обработки информации, как, скажем, качество художественного произведения зависит от качества бумаги. Сегодня компьютеры планируют, проектируют, управляют, вычисляют, консультируют и обучают. Это достигается в основном благодаря их большой памяти и быстродействию. Но память и быстродействие компьютеров все-таки ограниченны. В то же время существуют задачи обработки информации, сложность которых чрезвычайно высока. Бели решать эти задачи методом перебора вариантов, делая ставку только на мощь современных компьютеров, то возникают непреодолимые трудности, например при разработке шахматных программ, основанных на полном переборе вариантов. 10
Кроме того, имеются алгоритмически не разрешимые задачи. Отсюда следует, что, как бы ни был совершенен компьютер, существует предел сложности задач, которые могут быть на нем решены за приемлемое время. В связи с этим огромное значение приобретает общая методология решения задач с помощью компьютера, позволяющая разрабатывать эффективные методы формализации задач и алгоритмы их решения. По существу, она является теоретической основой компьютерной информатики. Решение задач обработки информации сводится к поиску некоторого алгоритма, гарантирующего получение требуемого результата. Для автоматизации этого процесса нужно прежде всего формализовать условия задачи и разработать методы поиска решений. В результате получим формализованную информационную модель задачи и алгоритм поиска ее решения, которые можно программно реализовать на компьютере. В процессе решения задач обработки информации возникают трудности. Без их преодоления невозможно найти решение. Однако трудности бывают разные. В зависимости от их характера задачи обработки информации можно разделить на четыре класса. К I классу отнесем строго определенные и четко поставленные задачи. Если для них существует и известен разрешающий алгоритм, то будем называть эти задачи детерминированными (вычислительные задачи, связанные с решением линейных алгебраических или дифференциальных уравнений). Методы и алгоритмы решения таких задач хорошо разработаны и известны. Отличительная черта задач II класса — неопределенность, элементы которой могут встречаться как в условиях задач, так и в процессе их решения. Поэтому 11
необходима адаптация алгоритмов к факторам неопределенности. Будем называть такие задачи недетерминированными или задачами с неполной информацией (задачи автоматического управления в условиях, когда ряд характеристик объекта управления и окружающей его среды заранее неизвестен). К III классу относятся задачи, формулируемые в символьной форме на каком-либо языке. Используемый при этом язык базируется на сложившейся системе понятий в рассматриваемой области. Решение таких задач требует формализованного представления понятий и обработки знаний. Будем называть эти задачи интеллектуальными (распознавание видеоинформации или речи, планирование поведения и принятие решений на понятийном уровне). Наконец, к IV классу можно отнести разнообразные задачи, связанные с имитацией и моделированием творческой деятельности человека. Условия и методы их решения, как правило, трудно формализуемы. Алгоритмы их решения носят эвристический характер. Задачи этого класса будем называть творческими или эвристическими (сочинение стихов или музыки, игра на музыкальных инструментах, игра в шахматы, рисование и т. п.). Описанная классификация задач обработки информации представлена на рис. на с. 14. Рассмотрим теперь особенности формализации условий задач в зависимости от того, к какому классу они относятся. Основным средством формализации задач, решаемых на компьютере, является информационная модель. Она представляет собой формализованное описание исходных данных и условий задачи. Модель должна быть адекватной решаемой задаче, нужно учитывать те свойства, условия, характеристики и закономерности, которые необходимы для решения данной задачи. Бели модель неадекватна, то соответствующее описание (и по- 13
Рис. 2. Классификация задач обработки информации. лучаемое на его основе решение) не достоверно или не приемлемо. Адекватность информационной модели решаемой задачи играет ключевую роль в компьютерной информатике. Она позволяет, например, определить с требуемой точностью состояние моделируемого объекта и прогнозировать его поведение под действием различных факторов. Поэтому моделирование задач и объектов стало мощным методом научного познания задолго до появления компьютеров. В механике и физике метод математического моделирования давно используется для описания физических задач и объектов и формализации физических законов (законы Ньютона, уравнения Лагран- жа и Максвелла, принципы термодинамики и уравнения квантовой физики). Метод математического моделирования широко используется и в других естественных науках, а также в технике. Многие выдающиеся достижения научно-технического прогресса основываются на этом методе. 14
Рис. 3. Классификация информационных моделей. Алгоритмы и программы обработки информации Классический математический анализ позволил построить сравнительно простые модели детерминированных задач. Новая информационная технология решения задач с помощью компьютеров расширила класс моделей. Они стали своеобразными информационными имитаторами реальных процессов и объектов. Поэтому моделирование на базе компьютеров часто называют имитационным моделированием. С помощью компьютеров удается достаточно точно описать поведение многих объектов в реальных условиях, моделировать поведение объектов в ускоренном масштабе времени. Кроме того, появилась возможность варьировать в широких пределах исходные данные и условия недетерминированных задач. Это позволяет изучать свойства моделируемых объектов в существенно нестационарных и частично неопределенных условиях. Соответствующие информационные модели будем называть адаптивными. По мере решения задач и накопления информации модели уточняются и корректируются, адаптируясь к факторам неопределенности. 16
В последнее время принципы имитационного моделирования находят применение в интеллектуальных и творческих задачах. При этом используются методы искусственного интеллекта, позволяющие формализовать необходимые понятия и знания. Строятся интеллектуальные и творческие модели, информационной основой которых служат формализованные версии естественного языка, средства поиска логического вывода, а также разного рода эвристики. Таким образом, мы убедились, что классы задач определяют особенности моделей, необходимых для их решения. Классификация моделей представлена на рис. на с. 16. Она охватывает интеллектуальные, творческие, жесткие и адаптивные модели. Детерминированные и адаптивные алгоритмы. После того как задача поставлена и формализована, возникает необходимость в поиске эффективных алгоритмов ее решения. Поэтому необходима разработка алгоритмического обеспечения, которое представляет собой совокупность алгоритмов обработки информации, обеспечивающих решение определенного класса задач. Выбор алгоритма зависит от характера решаемой задачи. Рассмотрим особенности алгоритмов решения детерминированных и недетерминированных задач. Формализация детерминированных задач приводит к жестким моделям, а недетерминированных — к адаптивным. Главной особенностью жестких моделей является их полная определенность. Поэтому алгоритмы решения детерминированных задач носят жесткий характер. Они допускают непосредственную программную реализацию на компьютере. Будем называть такие алгоритмы жесткими. Уточним смысл понятия «алгоритм». 17
Алгоритмом называется конечный набор правил, обеспечивающий решение любой задачи из некоторого заданного класса задач. Каждый алгоритм характеризуется тремя основными свойствами: детерминированностью, результативностью и массовостью. Детерминированность означает, что правила, образующие алгоритм, должны быть строго определенными, однозначными и непротиворечивыми. Этим обеспечивается его независимость от исполнителя, будь то человек или компьютер. Результативность — это свойство алгоритма обеспечивать решение задачи за конечное число шагов. В противном случае считается, что алгоритм неприменим для решения данной задачи. Результативный алгоритм характеризуется конечностью времени его выполнения. Это время равно числу шагов, приводящих к решению задачи. Массовость — это свойство алгоритма обеспечивать решение не одной конкретной задачи, а целого множества задач. Данная трактовка понятия «алгоритм» не претендует на математическую строгость. Однако она объясняет его содержательный смысл и интуитивно понятна каждому. Термин «алгоритм» роднит информатику и математику. Первоначально он зародился в математике. В эпоху средневековья алгоритмом называли правила выполнения арифметических действий над арабскими цифрами. Происхождение термина «алгоритм» связано с именем выдающегося математика древности Мухаммеда бен Мусы аль-Хорезми, который в IX в. предложил первые арифметические алгоритмы. В дальнейшем, по мере развития математики и информатики, это понятие многократно уточнялось и обобщалось. Общая схема определения термина «алгоритм» была предложена советским математиком академиком А. Н. Колмогоровым. Она позволила, в частности, доказать 18
эквивалентность ранее данных определений. В рамках этой схемы возможны различные уточнения и конструктивные определения понятия «алгоритм» с учетом особенности решаемых классов задач. Одно из таких уточнений, играющих важную роль в компьютерной информатике, получило название машины Тьюринга. Схема такой машины, служащей для обработки информации, была предложена английским математиком А. Тьюрингом в конце 30-х гг. Она почти на 20 лет опередила фактическое появление компьютеров. Что же представляет собой машина Тьюринга и каков алгоритм ее работы? Состоит она из трех систем: запоминающей, управляющей и исполнительной. Запоминающая система — это своеобразный склад информации. Бе можно представить как бесконечную ленту, на которой записывается закодированная информация, составленная из символов некоторого фиксированного алфавита. Часть ленты отводится для записи и хранения таблицы команд. Управляющая система считывает эти команды в том порядке, который предписывает заданный алгоритм обработки информации. Исполнительная система реализует выполнение как отдельных команд, так и алгоритма в целом. Работа машины Тьюринга сводится к изменению ее состояний в зависимости от того, каково состояние машины и какая информация подана на ее вход. Один и тот же алгоритм может быть реализован различными способами. Каждому алгоритму можно поставить в соответствие его имитатор, который выполняет те же операции, что и данный алгоритм. Рассмотрим некоторый алгоритм, определяющий работу машины Тьюринга с некоторыми фиксированными алфавитом символов и таблицей команд. В качестве .имитатора возьмем другую машину Тьюринга, таблица команд которой получена из таблицы команд 19
первой машины посредством ее кодирования в символах алфавита первой. Тогда при одной и той же исходной информации результаты ее обработки через конечное число шагов совпадут между собой (с точностью до кодирования). При этом процесс кодирования алгоритма, определяющий последовательность команд первой машины Тьюринга, в символах языка второй машины (имитатора), по существу, представляет собой процесс программирования. Таким образом, мы убедились, что для каждого алгоритма существует реализующий его имитатор. Этот факт имеет важное значение в компьютерной информатике, поскольку из существования имитатора следует возможность моделирования на компьютере любого алгоритма обработки информации. Для этого достаточно запрограммировать алгоритм в определенной системе команд. Легко убедиться, что модели Тьюринга обладают признаками детерминированности, результативности и массовости. Это делает их вполне определенными и достаточно жесткими. Однако для решения задач с неполной информацией зачастую нужны более гибкие алгоритмы. Их можно получить путем расширения понятия «алгоритм» за счет отказа от требования детерминированности. В этом случае алгоритмам можно придать адаптивный характер. Они обеспечивают решение задач за конечное время в заданном классе неопределенности. Будем называть такие алгоритмы адаптивными. Они отличаются большой гибкостью, способностью автоматически приспосабливаться (адаптироваться) к изменяющимся или не полностью определенным условиям задачи. В отличие от жестких алгоритмов они не обладают признаком детерминированности. 20
Алгоритмы решения интеллектуальных и творческих задач. Для этого необходимы модели и алгоритмы, представленные в терминах некоторого языка. В качестве такого языка могут использоваться алгоритмические языки. Они позволяют представить в компьютере информационные модели и алгоритмы решения задач разных типов. В этом проявляется универсальность этих языков. Структура алгоритмических языков Факова, что в них четко разграничены данные (то, над чем совершаются операции) и операторы (то, что определяет тип и последовательность операций). Каждый оператор преобразует множество входных данных во множество выходных. Его функции фиксируются в описании оператора. Одни операторы преобразуют информацию, другие указывают порядок выполнения операторов первого типа. Особенность этих операторов заключается в том, что на их выходе формируются промежуточные данные, подаваемые на вход других операторов. Операторы второго типа отличаются тем, что их выходами являются номера других операторов, которые подлежат исполнению. При этом номер оператора совпадает с его порядковым номером в записи на алгоритмическом языке. Выполнение операторов первого типа идет по порядку их номеров до тех пор, пока не встретится оператор второго типа. Последний может нарушить этот порядок. Например, он может передать управление оператору, номер которого совпадает с выходным номером. Такой переход называется условным. Функция оператора, инициирующего условный переход, заключается в проверке выполнения некоторого условия по входным данным. Если это условие выполнено, то данный оператор не влияет на порядок выполнения алгоритма. В противном случае реализуется условный переход. Модели и алгоритмы решения интеллектуальных задач на алгоритмическом языке будем называть 21
интеллектуальными. Они всегда могут быть реализованы на компьютере. Для этого нужно предусмотреть средства, имитирующие соответствующие нетрадиционные операторы (экспертные процедуры, поиск логического вывода и т. п.). Однако творческие возможности компьютера весьма ограниченны. Для придания ему способности решать задачи творческого характера необходимы соответствующие модели и алгоритмы, называемые творческими. Творческие модели служат для моделирования на компьютере отдельных творческих процессов. Процедуры, лежащие в основе этих процессов, как правило, неизвестны. Поэтому обычно используются эвристические процедуры обработки информации, имитирующие творческую деятельность человека. Они могут, например, имитировать игру гроссмейстера в шахматы. В этом случае качество игры компьютера целиком определяется тем алгоритмом обработки информации и анализа ситуаций, который в него заложен. «Творческий потенциал» компьютера сильно зависит от интеллекта человека — разработчика алгоритма. Классификация алгоритмов и реализующих их программ предоставлена на рис. на с. 23. Среди элементов творческой деятельности, которые трудно поддаются моделированию на компьютере, можно выделить следующие: постановка и формализация творческих задач, генерация идей и гипотез в процессе решения, интуитивный синтез сюжетов и сценариев, формирование зрительных и музыкальных образов и т. п. Сложность имитации этих элементов творчества привела к тому, что некоторые оптимистические прогнозы специалистов в области компьютерной информатики не оправдались, например перевод художественных произведений, сочинение стихов и музыки на уровне мастеров этого дела. 22
Алгоритмы и программы обработки информации Рис. 4. Классификация алгоритмов и программ обработки информации. Трудности на этом пути связаны главным образом с примитивностью творческих моделей и алгоритмов, их неадекватностью творческим процессам. Тем не менее имеются и определенные достижения. К ним можно отнести компьютерный перевод технических и научных текстов, сочинение вариаций по заданной мелодии, синтез простейших сюжетов для сказок. Эти первые успехи впечатляют и обнадеживают. Представление данных и программирование компьютеров Формы представления и кодирования данных. Компьютеры имеют дело с информацией. Они реализуют различные алгоритмы обработки информации. Это позволяет автоматизировать процесс решения задач. Чтобы лучше понять, как это происходит, нужно прежде всего уточнить, что подразумевается под словом «информация». 23
Не вдаваясь в тонкости определения этого понятия, будем исходить из того, что информация — это сведения об условиях задачи и методах ее решения. Условия задачи будем называть данными, а методы решения — знаниями. Эти разновидности информации могут быть зафиксированы с помощью букв, знаков, цифр, картинок и т. п. или закодированы в мозге или компьютере. Носитель информации — физическая среда, в которой она фиксируется. В роли носителя могут выступать бумага, фотопленка, клетки мозга, перфокарты, перфоленты, магнитные ленты и диски или ячейки памяти компьютера. Современная техника предлагает все новые и новые разновидности носителей информации. Для кодирования информации в них используются электрические, магнитные и оптические свойства материалов. Разрабатываются носители, в которых информация фиксируется на уровне отдельных молекул. Важным требованием, предъявляемым к любому носителю информации, является возможность считывания информации. Сведения, написанные в книгах, может читать человек. Информацию, закодированную на машинных носителях, может «читать» (точнее, декодировать) компьютер. При этом сведения, физически зафиксированные на любом носителе информации, представляют собой набор символов. В книгах — это буквы, цифры и другие знаки, на фотографии — набор точек разного цвета или степени яркости. Эти сведения об объектах реального мира и его закономерностях можно зафиксировать в виде последовательности символов. Компьютеры хорошо приспособлены именно для обработки символьных данных, их преобразования из одной формы в другую, выполнения арифметических и логических операций и т. п. Поэтому в наш лексикон, связанный с компьютерной информатикой, прочно вошли выражения типа «обработка слов», «база данных», 25
«анализ предложений», «логический вывод» и т. п. Мы знаем, что для представления разнообразной информации нужно не так уж много символов. Например, в миллионах книг и статей на русском языке используется весьма ограниченный набор различных символов. Он включает 33 буквы алфавита, 10 цифр и несколько десятков знаков. Набор этих символов позволяет зафиксировать колоссальный объем информации. Более того, все то, что написано с использованием русского алфавита, можно перевести на любой другой язык без потери информации. Набор символов, используемых для представления и обработки информации в компьютере, минимален. Он включает всего два символа — 0 и 1. Тем не менее с их помощью можно зафиксировать любые данные и знания. Это легко понять, если вспомнить принцип кодирования и передачи информации с помощью азбуки Морзе. Телеграфист, используя только два символа этой азбуки — точки и тире, может передать практически любой текст. Этот принцип лежит в основе использования в компьютере бинарной логики, алфавит которой состоит всего из двух знаков. Для определения количества информации служит специальная единица, получившая название «бит». Этот термин происходит от сокращения английского термина binary digit — двоичная единица. Один бит кодируется в компьютере с помощью напряжения, принимающего значения 0 В и 5 В. Этим значениям напряжения соответствует два значения бинарного символа: 0 и 1. Обычно информация хранится в машинных кодах, которые имеют длину в один или несколько байтов. Одному байту соответствует 8 бит, слову — 16 бит, или 2 байта. Информационная емкость памяти компьютеров измеряется кило- и мегабайтами. Один килобайт (Кбайт) содержит 210 = 1024 байт, а 26
один мегабайт (Мбайт)=220 = 1048576 байт. Приставки «кило» и «мега» при определении единиц измерения обычно означают 1000 и 1 000 000. Однако при определении Кбайт и Мбайт они лишь приблизительно соответствуют этому традиционному пониманию. Важное значение имеет экономность кодирования последовательностей символов в компьютере. Можно ли закодировать последовательность символов без потери информации так, чтобы ее код имел наименьшее количество бит? Ответ на этот вопрос дает теория оптимального кодирования и передачи информации по каналам связи, одним из основоположников которой является американский ученый К. Шеннон. В 1948 г. он разработал статистический подход к измерению количества информации, суть которого заключается в том, что обрабатываемая информация рассматривается как источник символов с заданными вероятностями их появления. Бели, например, компьютер обрабатывает тексты, то в роли символов выступают буквы из алфавита используемого языка (русского, английского, французского и т. п.). Можно определить вероятности (частоты) появления этих букв и подсчитать энтропию (меру неопределенности), которую несет в себе обработка одного символа. По этим данным определяется оптимальный способ кодирования. Например, при оптимальном кодировании английского текста потребовалось бы 14 бит на слово или 2,5 бита на символ. шения любой задачи нужно прежде всего ее сформулировать. Для реализации любого алгоритма на компьютере необходимо его представить в какой-либо форме. И как для задачи важна ее формулировка, так и для алгоритма чрезвычайно важна форма его записи. Она должна быть по возможности наглядной, но главное — 27
однозначно понятной исполнителю, будь то человек или компьютер. Этим требованиям удовлетворяет словесно-формульная форма записи алгоритмов. Она допускает некоторый произвол в используемых словах и обозначениях. Проиллюстрируем это на примере алгоритма определения максимального числа. Пусть задано п (п>2) чисел: с2, с2, ..., с. Требуется найти число с, равное наибольшему из них. Алгоритм решения этой задачи можно записать в виде: 1. к: = 1. 2. с:=ск. . Если с,>ск, то перейти к 6. . с: = ск. . Если к<п, то перейти к 3. Здесь символом : = обозначено часто используемое выражение «положить равным». Согласно данному алгоритму п. 1, 2 и 7 выполняются однократно, а остальные образуют цикл, выполняющийся п—1 раз и охваченный для наглядности скобкой. Для графического представления структуры алгоритмов часто используются блок-схемы. Эта форма записи представляет собой унифицированный набор геометрических блоков (прямоугольники, ромбы и т. п.), соединенных стрелками. В блоке записывается текст или формула, выражающие то, что нужно сделать на данном шаге выполнения алгоритма. Стрелки указывают последовательность перехода от одного блока к другому. Построим блок-схему рассмотренного выше алгоритма определения максимального числа. Она представлена на рис. на с. 29. Ее преимущество — нагляд- 28
Рис. 5. Блок-схема алгоритма определения максимального числа. ность представления всех фрагментов алгоритма и логических связей между ними. Процесс широкого внедрения компьютеров в различные сферы деятельности человека иногда называют информацией общества. Главной составной частью этого процесса является компьютерная информатика, т. е. все то, что связано с разработкой моделей, алгоритмов и программ, необходимых для решения задач обработки информации на компьютерах. Мы познакомились с двумя важнейшими элементами «триады» компьютерной информатики — информационными моделями и алгоритмами решения задач. 29
Теперь охарактеризуем третий элемент триады — программы, реализующие на компьютере модели и алгоритмы обработки информации. Схема взаимодействия этих элементов в процессе решения задач изображена на рис. на с. 29. Что же касается логической связи между ними, то ее можно наглядно представить формулой модель V алгоритм >* программа (*) Здесь символ V означает дизъюнкцию (логическую операцию «или»), а символ *. — импликацию (логическую операцию «следует»). Эта формула выражает сущность компьютерной информатики. Она хорошо согласуется с концепцией книги Н. Вирта с необычным (по форме) названием — «Алгоритмы -f- Структуры данных = Программы». Формуле (*) можно дать физическое толкование. Из физики мы знаем, что энергия означает способность совершать работу. Аналогично ПРОГРАММА, реализующая МОДЕЛЬ и АЛГОРИТМ, означает способность компьютера решить задачу. Чем больше накоплено энергии, тем больше потенциальных возможностей выполнить работу. По аналогии можно сказать, что чем больше информации о задаче заключено в МОДЕЛИ и АЛГОРИТМЕ, тем больше возможностей у компьютера решить задачу, руководствуясь соответствующей ПРОГРАММОЙ. И наоборот, если энергия недостаточна, то работа невыполнима. Аналогично, если информация неполна, то задача может оказаться неразрешимой, каким бы совершенным ни был компьютер. ПРОГРАММА относительно информации, заключенной в МОДЕЛИ и АЛГОРИТМЕ, выступает в роли «силы», прикладываемой к компьютеру. При ее отработке совершается «работа», обеспечивающая решение задачи. Эту «работу» можно количественно оценить, если известны «сила» и «отрезок пути», на котором она совершается. Соответственно можно оценить эффектив- 30
ность решения задачи, зная сложность ПРОГРАММЫ и время ее обработки на данном компьютере. Языки гтогоаммипоь^ни Мы рассмотрели простейшие формы записи алгоритмов, ориентированные на использование компьютеров. Однако для реализации алгоритма нужно записать его в виде программы для компьютера на понятном ему языке. В качестве такого языка можно использовать внутренний язык компьютера, связанный с его системой команд. В начале, когда появились первые ЭВМ, программы писались на этом языке. Но вскоре выяснилось, что такой способ записи алгоритмов неудобен: трудоемкость и громоздкость программ, сложность их верификации, т. е. отыскания ошибок. Поэтому возникла потребность в таких языках программирования, которые максимально приближены к естественному человеческому языку и общепринятой математической символике. В этом случае приходится разрабатывать специальные средства перевода (трансляции) программы на внутренний язык компьютера. Однако эти затраты окупаются за счет значительного облегчения процесса программирования алгоритмов. Развитие языков программирования шло по двум направлениям: машинно-ориентированные языки и машинно-независимые языки. Программа алгоритма на машинно-ориентированном языке по виду напоминает программу на внутреннем языке компьютера. Однако в ней для удобства программиста используется символьная форма записи. Это придает программе наглядность и облегчает отыскание и устранение ошибок. Программист, использующий этот я?ык, должен иметь ясное представление об устройстве компьютера, его системе команд, способах представления данных и команд, их адресации и т. п. Такой язык называют ассемблером или автокодом. При записи алгоритма на автоко- 31
де программист имеет возможность наиболее полно учитывать особенности компьютера. Вследствие этого программа после трансляции получается достаточно простой и быстродействующей. Алгоритмические языки высокого уровня, никак не связанные с особенностями конкретного компьютера, называются машинно-независимыми. Сегодня в мире имеется несколько сотен таких языков. Часть из них стандартизирована и используется в качестве универсальных языков программирования. К ним, в частности, относятся БЕЙСИК, ФОРТРАН, АЛГОЛ, PL/I и ПАСКАЛЬ. Одним из первых был создан алгоритмический язык ФОРТРАН. Его название происходит от английского FORTRAN-FORmula TRANslation (перевод формул). Этот язык высокого уровня особенно удобен для решения задач вычислительного характера. Широко применяется в мире язык АЛГОЛ, название которого происходит от английского ALGOL-ALGO- rithmic Language (алгоритмический язык). Чаще всего этот язык используется для моделирования вычислительных алгоритмов. Большой популярностью пользуется алгоритмический язык БЕЙСИК, разработанный в 1965 г. Его название произошло от английского В ASIC-Beginner's All-purpase Simbolic Instruction Code (многоцелевой язык символических инструкций для начинающих). Особенно часто язык высокого уровня используется в режиме диалога человека и компьютера. На его основе разработаны средства автоматизации программирования движений роботов. Все большее распространение получают языки PL/I, ПАСКАЛЬ и другие универсальные языки. Трансляторы с этих языков имеются практически во всех современных компьютерах. Поэтому достаточно изучить какой-либо один из этих языков, составить на нем про- 32
грамму и ввести в компьютер, имеющий собственный транслятор с этого языка. Итак, любой алгоритм есть последовательность предписаний, выполнив которые можно перейти за конечное число шагов от условий задачи к ее решению. Уровень алгоритмического языка зависит от степени детализации предписаний. Чем больше детализация, тем ниже уровень языка. С этой точки зрения рассмотренные выше внутренние языки компьютеров и машинно- ориентированные языки следует отнести к языкам самого низкого уровня. Они требуют полной детализации процесса обработки информации в системе команд компьютера. Поскольку современные компьютеры имеют более 100 различных команд, легко понять, насколько сложно программирование даже на ассемблере. Машинно-независимые алгоритмические языки не требуют чрезмерной детализации. Поэтому они относятся к языкам высокого уровня. Можно использовать общепринятые математические символы и некоторые слова из нашего разговорного языка (это значительно упрощает процесс программирования), собирать сложные программы из простых программных модулей. Такой процесс называют модульным программированием. Однако при использовании языков высокого уровня приходится идти и на определенные издержки. Они связаны с необходимостью разработки специальных трансляторов для перевода программы с алгоритмического языка на внутренний язык компьютера. После трансляции получается программа, которая, как правило, хуже программы, составленной опытным программистом непосредственно на внутреннем языке. Кроме того, трансляция приводит к непроизводительным затратам машинного времени. Программы на алгоритмическом языке пишутся гораздо быстрее и легче. Они получаются компактными 33
и содержат меньше ошибок. Тем не менее ошибки возможны. Принято различать семантические и синтаксические ошибки. Семантические (смысловые) ошибки связаны с нарушением логической взаимосвязи различных частей алгоритма или с некорректным использованием данных (например, не допустимо деление на нуль). Синтаксические ошибки порождаются отступлением от жестких правил написания программы на алгоритмическом языке. Они выявляются транслятором, который в процессе перевода программы с алгоритмического языка на внутренний язык компьютера выдает информацию о характере ошибки и ее месте (адресе) в программе. ¦"¦ ~~~~ . Первоначально компьютеры предназначались для автоматического решения чисто вычислительных задач по заданным алгоритмам. Поэтому за ними укоренилось название «электронные вычислительные машины» (ЭВМ). В действительности же компьютеры (ЭВМ) оказались универсальным инструментом обработки информации различного характера и происхождения. Благодаря способности автоматически выполнять алгоритмы преобразования символьных данных компьютеры сегодня используются для решения любых (а не только вычислительных) задач, связанных с обработкой информации. К новым задачам компьютерной информатики относятся анализ и редактирование текстов, чтение и формирование чертежей, доказательство теорем и т. п. Основная функция компьютера — решение задач обработки информации. После того как построена информационная модель задачи, выбран алгоритм ее решения и реализован в виде программы, записанной на том или ином языке программирования, возникает не- 34
обходимость ввести программу и данные в компьютер. Для этого служат различные устройства ввода и носители информации. Программа и исходные данные могут быть набиты на перфокартах, записаны на магнитных лентах или дисках или введены с помощью клавиатуры. Но компьютер воспринимает и обрабатывает только информацию, представленную в двоичных символах. Как ввести в память компьютера другие символы? Как ввести буквы или слова из набора английских слов, используемых в алгоритмическом языке? Делается это следующим образом. Сначала всем используемым символам ставятся соответствующие им двоичные коды. Например, каждой букве может соответствовать свой восьмиразрядный двоичный код. Таким образом, каждой букве отводится 2 байт. Это позволяет однозначно закодировать 28=256 символов. Когда вы нажимаете клавишу клавиатуры с изображением нужной буквы, электронные схемы вырабатывают электрические сигналы, соответствующие коду буквы. Эти сигналы запоминаются в определенной ячейке памяти компьютера. Таким образом вводятся весь текст программы и исходные данные. Для их перевода на внутренний язык компьютера нужно воспользоваться транслятором. С этой целью с помощью специальной команды вызывается транслятор с того языка, на котором написана программа. В результате исходная программа преобразуется в рабочую программу, представляющую собой последовательность машинных команд. Одновременно транслятор выявляет синтаксические ошибки в программе. После их устранения вводятся необходимые для решения задачи данные. Теперь компьютер готов исполнить программу, что он и делает. Важно отметить, что существуют разные способы перевода программы с алгоритмического языка на 35
внутренний язык компьютера: ввод полного текста программы в память компьютера, ее трансляции и последующей отработки (компиляция), пооперационный ввод программы, ее трансляции, выявление и устранение ошибок; если все правильно, то соответствующий оператор транслируется, а затем выполняется (интерпретация). «Анатомия» и «физиология» персональных компьютеров Все компьютеры удивительно похожи друг на друга с точки зрения своего устройства и принципа действия. Исходя из аналогии с человеком, будем под «анатомией» компьютера подразумевать его устройство, а под «физиологией» — принцип действия и особенности функционирования. Напомним, что компьютер — это универсальная программируемая машина для автоматической обработки информации. Каждый компьютер обладает следующими основными чертами: универсальностью (способен решать не какую-то одну, а множество задач обработки информации); программируемостью (может реализовать в виде ПРОГРАММ, т. е. на понятном компьютере языке, любые МОДЕЛИ и АЛГОРИТМЫ обработки информации); автоматизмом (после включения и запуска решает задачу самостоятельно, без вмешательства человека). Информация, которую компьютер перерабатывает, может выражаться словами, изображениями или звуками. Однако предварительно эта информация с помощью специальных устройств должна быть закодирована в цифровой форме, т. е. в виде чисел или двоичных символов. Поскольку в современных компьютерах 36
процессы кодирования и обработки информации автоматизированы, человеку-пользователю совсем не обязательно знать, как это происходит. Взаимодействие между компьютером и пользователем осуществляется посредством команд. Эти команды представляют собой обычные слова, с помощью которых мы сообщаем компьютеру, что именно ему нужно сделать. Для этого пользователь печатает соответствующие команды на клавиатуре компьютера, как на пишущей машинке. Компьютер же сообщает человеку информацию о ходе и результате выполнения команд в виде изображения на экране дисплея или в форме распечатки на обычной бумаге. Первый персональный компьютер появился на рынке в 1975 г. Сегодня в мире используется более 40 млн. персональных компьютеров. Их характеристики совершенствуются, а объем производства все время увеличивается. Что же представляет собой персональный компьютер? Как он устроен, как программируется и как работает? Ответы на эти вопросы позволят нам понять функциональные возможности и причины популярности персональных компьютеров. Персональный компьютер — это портативная микро- ЭВМ в настольном исполнении. Однако не всегда микроЭВМ является персональным компьютером. Дело в том, что микроЭВМ обычно используются для решения сравнительно узкого круга задач. Например, это может быть управление роботом или оптимальное регулирование подачи топлива в автомобильный двигатель. В принципе персональные компьютеры также могут решать эти и многие другие задачи. Однако они отличаются тем, что представляют в распоряжение пользователя самые разнообразные возможности. Персональный компьютер характеризуется следую- 37
щими признаками: способностью хранить информацию в объеме 64 Кбайт — 1 Мбайт (т. е. не менее 10 тыс. слов); способностью исполнять программы, записанные по крайней мере на одном из алгоритмических языков высокого уровня (БЕЙСИК, ФОРТРАН, ПАСКАЛЬ и т. п.); наличием периферийной (внешней) памяти на магнитной ленте или магнитных дисках; наличием собственной операционной системы, облегчающей взаимодействие с человеком в режиме диалога; быстрой реакцией на запросы или команды человека; высокой надежностью и сравнительно низкой стоимостью (порядка 5—10 тыс. долл.); ориентацией на решение широкого класса задач обработки информации; доступностью для пользователей, не являющихся программистами-профессионалами. Перечисленные признаки позволяют создавать на базе персональных компьютеров автоматизированные рабочие места для разных пользователей. Поэтому они завоевали большую популярность как среди школьников и студентов, так и среди ученых, инженеров, врачей, архитекторов, менеджеров и т. п. Благодаря новейшим достижениям технологии характеристики персональных компьютеров постоянно улучшаются. Сегодня объем внутренней памяти составляет 1 Мбайт и более, а внешней — до 50 Мбайт. В состав компьютера включаются высококачественные печатные устройства (принтеры), графопостроители и т. п. Познакомимся теперь более подробно с устройством персонального компьютера. Главный элемент персонального компьютера, его центральный процессор (ЦП) управляет работой остальных элементов и выполняет все арифметические и логические операции, связанные с обработкой информации, хранящейся в ячейках (регистрах) внутренней памяти. В качестве ЦП используется микропроцессор, представляющий свой набор интегральных микросхем, ко- 38
торые обычно реализуются на кристалле кремния. Интегральные схемы монтируются на пластмассовую печатную плату, на которую нанесены проводники для передачи сигналов от источника питания и между схемами. Плата устанавливается в корпусе компьютера в отведенное для нее гнездо с помощью специальных разъемов. Ввод и вывод информации осуществляются по каналам (шинам) данных через специальное устройство, включающее последовательный и параллельный интерфейс. Для ввода информации в ЦП служат внешнее запоминающее устройство, связанное через управляющее устройство (контролер) с накопителем информации на дисках, или клавиатура дисплея. Результаты вычислений и обработки данных выводятся на монитор дисплея. В качестве монитора используется устройство визуализации информации на электронно-лучевой трубке либо обычный телевизионный приемник. Результаты могут выдаваться и в виде распечатки на бумаге. Для этого служит отдельное печатающее устройство, называемое принтером. Связь персонального компьютера с другими компьютерами осуществляется через модемы. Они служат для модуляции и демодуляции электрических сигналов, необходимой для их передачи по телефонной линии связи. Устройство персонального компьютера схематично представлено на рис. на с. 40. Паспортные данные персонального компьютера. Они определяют его индивидуальные свойства: разрядность, тактовую частоту, объем памяти. Рассмотрим подробнее основные технические параметры и конструктивные особенности персональных компьютеров. Разрядность определяет «размер» информационного слова в микропроцессоре и «ширину» сигнальной шины 39
Дисплей Монитор Запоминающее устройство ПЗУ :зупв ЗУ И Устройство связи Модем Им-К-|и|и'И<- щшшшшлшшшш Арифметико- -логическое устройств " >н нал .1 и и и, Рис. 6. Устройство персонального компьютера. для передачи данных внутри компьютера. Бели у первых персональных компьютеров использовались 8-разрядные микропроцессоры, то у современных — 16- и 32-разрядные. По мере снижения цен на микропроцессоры персональные компьютеры будут строиться на основе 32-разрядных процессоров. Тактовая частота, определяющая «ритм» работы компьютера, задается тактовым генератором. Обычно она составляет 1—10 МГц A МГц означает миллион тактов в секунду). 40
Общая тенденция к увеличению разрядности и тактовой частоты объясняется следующим: чем больше разрядность, тем меньше тактов требуется на выполнение любой операции, а с ростом частоты уменьшается время одного такта. Основная память персонального компьютера реализована на постоянном запоминающем устройстве (ПЗУ), запоминающем устройстве с произвольной выборкой информации (ЗУПВ) и запоминающем устройстве изображений (ЗУИ). В ПЗУ хранится информация, записанная на предприятии — изготовителе компьютера. Она должна быть неизменной в течение длительного времени, в том числе и при отключенном питании. Обычно в ПЗУ хранятся только основные системные и прикладные программы. Они обеспечивают «запуск» компьютера после включения питания, преобразуют сигналы клавиш в соответствующие коды и инициируют вывод на монитор или распечатку на бумагу массивов данных, называемых файлами. Отличительной чертой ЗУПВ является то, что информацию можно ввести в него и считать сколь угодно часто. Это могут быть как данные, так и программы, поступающие из накопителя на магнитных дисках. ЗУПВ называют также оперативным запоминающим устройством (ОЗУ). Кристалл ЗУПВ представляет собой матрицу однотипных ячеек памяти, в которой умещается от 16 Кбит до 256 Кбит. Выбирая персональный компьютер, пользователь обычно руководствуется следующим правилом: объем ЗУПВ должен позволить записать по меньшей мере самую большую прикладную программу из числа программ, необходимых для решения задач. Поэтому на современных пакетах прикладных программ обычно указывается минимальный объем памяти, требуемый для их размещения. В ЗУИ хранятся коды изображений, подлежащих обработке в процессе решения задач. 41
Периферийная память обычно реализуется на гибких или твердых магнитных дисках. Гибкие диски имеют стандартный диаметр 3,5, 5,25 или 8 дюймов. Они покрыты с одной или обеих сторон магнитным материалом. На диске записывается и хранится необходимая информация. Запись осуществляется с помощью специальной головки на концентрические дорожки, причем записи 0 и 1 соответствуют разные направления намагниченности материала. Дорожки обычно имеют от 8 до 26 секторов, в каждом из которых может храниться от 128 до 512 байтов информации. Объем памяти на гибких дисках составляет 125—1200 Кбайт. В современных персональных компьютерах применяются также так называемые винчестерские диски. Они представляют собой алюминиевую пластинку с магнитным покрытием, жестко связанную с механизмом накопителя. Объем памяти таких твердых дисков составляет 5—80 Мбайт, а время записи и считывания информации меньше, чем при использовании гибких дисков. Однако стоимость твердых дисков в 5—10 раз выше, чем стоимость гибких дисков. В последнее время появились также лазерные видеодиски. Эти диски при небольших размерах (диаметр от 50 до 300 мм) имеют огромный объем памяти — от 50 до 4000 Мбайт. Достоинство гибких и жестких дисков — информация на них сохраняется и тогда, когда компьютер отключен. Накопители на дисках являются запоминающими устройствами прямого доступа. Это значит, что системная программа может записывать или считывать информацию в любое место диска. В отличие от накопителей на дисках другие внешние устройства (клавиатура, монитор, принтер и модени) относятся к устройствам последовательного доступа, т. е. они работают по принципу последовательной записи и считывания информации. 43
Результаты работы персонального компьютера выводятся на монитор, принтер или графопостроитель. Устройство и параметры этих периферийных устройств могут значительно отличаться у разных компьютеров. Опишем кратко их основные параметры и функциональные возможности. Монитор — это «лицо» персонального компьютера. Оно может быть монохроматическим (черно-белым) или цветным. Выражение лица меняется в зависимости от того, какая информация выводится — алфавитно-цифровая или графическая. Каждый компьютер имеет свои «черты лица», приметы: формат, разрешающая способность, число уровней яркости, количество цветов изображения. Информация о знаках, подлежащих выводу на алфавитно-цифровой монитор, хранится в виде кодов в специальном ЗУПВ, генераторе знаков. Четкость текста определяется числом точек (и соответствующих им кодов), формирующих каждый знак. На экране стандартного монитора число строк равно 24, а число знаков в каждой строке — 80. Результаты решения задачи во многих случаях желательно представить в виде печатного документа. Для этого нужны «руки». Их роль выполняют принтеры разных типов (матричные, лазерные, термографические и др.)- Их основные параметры: скорость печати и качество печати. Скорость печати у разных принтеров колеблется от 12 до 300 знаков в секунду. Качество печати также может изменяться в широких пределах — от посредственной (черновая печать) до отличной (типографическая печать). Принтеры подключаются к компьютеру с помощью параллельного интерфейса и специального контролера, реализующего определенный порядок (протокол) обмена информацией. 44
Наиболее часто используются матричные принтеры. В них печатающая головка представляет собой матрицу из 5—18 игл с диаметром 0,2—0,3 мм. По команде компьютера иглы ударяют по красящей ленте, формируя на бумаге требуемый знак. Качество знаков определяется в основном форматом каждого знака. Обычно изображения отдельных знаков представляют собой матрицы, содержащие 5X7, 7X9 или 9X9 точек. Печатающая головка перемещается в горизонтальном направлении, а бумага — в вертикальном. Знаки могут печататься как при прямом, так и при обратном ходе. Это позволяет достигать высокой скорости печати — до 200 знаков в секунду. Матричные принтеры компактны, дешевы, быстродействующи и обеспечивают приемлемое качество печати на обычной бумаге. Кроме того, они позволяют с помощью управляющих программ создавать произвольные шрифты и любые графические (в том числе цветные) изображения. Информация о графических изображениях (чертежи, графики и т. п.) хранится в ЗУПВ в форме кодов минимальных элементов изображения, называемых пикселами. Черно-белое изображение форматом 128 X Х48 пикселов занимает около 1 Кбайта растровой памяти. Каждый элемент изображения — это точка на экране монитора. Она формируется из одной, двух или четырех ячеек памяти, в которых кодируется яркость или цвет точки на экране. Объем видеопамяти прямо пропорционален разрешающей способности монитора. Большинство современных персональных компьютеров имеют дисплеи с цветным монитором. Управление цветами осуществляется с помощью 5 стандартных сигналов — красного (red), зеленого (green), синего (blue) и синхронизации по горизонтали и вертикали. Поэтому устройства называются RGB-мониторами. Они подключаются с помощью специальной платы — адаптера. 46
Эта плата содержит растровую память, схемы управления электронно-лучевой трубкой и микросхему ПЗУ, в которой записываются образы знаковых матриц. Замена микросхемы позволяет изменить начертания букв, цифр и других знаков, выводимых на монитор. Для улучшения качества печати применяются принтеры со сменными шрифтоносителями, работающие по принципу пишущей машинки. Широкое применение имеют принтеры с лепестковыми шрифтоносителями. Их печатающая головка — вращающийся диск с 96 или более радиально расходящимися лепестками («ромашка»), на каждом из которых имеется литера буквы или знака. Когда головка перемещается над бу-. магой, диск поворачивается под воздействием управляющих сигналов от компьютера и молоточек ударяет по соответствующему лепестку, прижимая его к красящей ленте. В последнее время появились лазерные принтеры. Управляемый лазерный луч сканирует по поверхности барабана, с которого на бумагу переносится краситель. Лазерные принтеры обеспечивают отличное типографическое качество печати с разрешающей способностью около 12 точек/мм со скоростью до 300 знаков в секунду. Однако они сравнительно дороги. Для расширения функциональных возможностей персональных компьютеров к ним подключаются дополнительные устройства — электронная «мышь», графические планшеты, графопостроители и т. п. «Мышь», или «колобок», — это небольшой ручной манипулятор, скользящий по поверхности. Текущие координаты определяют координаты курсора — светящейся метки на мониторе. Перемещая «мышь» по рабочему столу, можно легко указать или передвинуть нужные знаки на экране дисплея. Графические планшеты, или диджистайзеры, служат для ввода в компьютер карт или чертежей. На них 47
накладывается лист бумаги с изображением, которое нужно ввести и закодировать в памяти компьютера. Затем устанавливают специальный указатель в концы отрезков прямых чертежа и нажатием кнопки автоматически вводят их координаты в память, формируя в ней соответствующую структуру графических данных. Графопостроители, или плотеры, — дополнительные «руки» компьютера. Они служат для вывода из компьютера и распечатки на бумаге чертежей, графиков и других изображений. Такие изображения называются твердыми копиями графической информации, выводимой из компьютера. Персональный компьютер имеет и «уши», позволяющие ему воспринимать с помощью модемов информацию, поступающую по телефонной линии связи. Передача сигналов осуществляется через модем и интерфейс в соответствии со специальными протоколами. В зависимости от типа интерфейса применяют стандартные протоколы обмена последовательного или параллельного типа (например, протоколы RS-232C или Gentro- nix). Интерфейсы и модемы обеспечивают также возможность непосредственного соединения персональных компьютеров с компьютерами, роботами, станками и другими автоматизированными системами. Операционная система — дирижер операций. Интегральные схемы и другие электронные компоненты, а также внешние устройства составляют «аппаратное обеспечение» персонального компьютера (от англ. hardware — хардвэр — жесткая оснастка). Компьютер способен решать различные задачи, если оснащен соответствующими программами. Совокупность таких программ называют программным обеспечением (от англ. software — софтвэр — мягкая оснастка). Ядро программного обеспечения — операционная 49
система (ОС). Она наиболее тесно взаимодействует с аппаратной частью компьютера: организовывает процесс решения задачи и управляет последовательностью операций. ОС выполняет роль «автоматического посредника» между человеком-пользователем и компьютером. С одной стороны, она воспринимает и интерпретирует задачу, вводимую человеком с помощью клавиатуры дисплея, а с другой, загружает в оперативную память те прикладные программы, которые необходимы для ее решения. Благодаря этому оказывается возможным решать многие задачи, алгоритмы решения которых обычно хранятся в виде прикладных программ в периферийной памяти на магнитных дисках. Хранилищем данных и программ является файловая система (ФС), состоящая из файлов, участков памяти на дисках, где хранится необходимая для решения задачи информация. Каждый файл имеет свое имя, зарегистрированное в ФС. Организуют работу с ФС специальные команды ОС, обеспечивающие чтение файлов, их загрузку, удаление, переименование и т. п. В развитых ОС (например, MS — DOS и UNIX) понятие «файл» трактуется шире. Под файлом подразумевается любой источник или потребитель информации в компьютере (например, дисплей, принтер, канал связи и т. п.). Это упрощает обмен информацией с внешними устройствами. Центральный процессор персонального компьютера способен воспринимать лишь ограниченную систему команд, каждая из которых должна быть представлена в виде двоичного кода. К примеру, если поступил код команды «переписать файл (массив данных) с адресом 1» из основной памяти во внутренний регистр памяти микропроцессора, то он сразу же исполняется. Однако программирование в «машинных кодах» весьма утомительно и часто приводит к 50
ошибкам. Поэтому прибегают к различным по уровню абстракции языкам программирования — от ассемблера (автокода) до алгоритмических языков высокого уровня. Алгоритмические языки и ОС освобождают пользователя от необходимости программировать в «машинных кодах» (системе команд) микропроцессора и знать все анатомические особенности его аппаратной части. Например, если требуется загрузить прикладную программу с идентификатором (именем) А в основную память с магнитного диска, достаточно обратиться к ОС и задать лишь эту операцию. При включении компьютера программа первичной загрузки заносится в основную память и справочник файлов, в котором содержатся данные о о размещении всех прикладных программ на диске. Затем ОС находит на диске интерпретатор языка (например, БЕЙСИКА) и, выяснив, достаточно ли места в основной памяти, загружает его. При этом пользователь получает на мониторе уведомление о готовности интерпретатора. Далее автоматически вырабатывается инструкция ОС на загрузку прикладной программы А, после чего она готова к исполнению этой программы под управлением интерпретатора. Полученный в результате выполнения программы А новый файл может передаваться обратно в дисковую память. Принцип и последовательность действия ОС при выполнении данного задания представлены на рис. на с. 52. Для трансляции (перевода) программ с языка высокого уровня в «машинный код» используются интерпретаторы или компиляторы. Интерпретатор — это программа, которая транслирует друг за другом все команды интерпретируемой программы в «машинный код», после чего они немедленно обрабатываются. При использовании же программ-компиляторов сначала транслируются все команды программы, записанной 51
Память иа лисках Основная память ОС ФС Интерпретатор Прикладная программа А Прикладная программа В Первичный загрузчик Интерпретатор Прикладная программа А Рис. 7. Принцип действия операционной системы при загрузке прикладной программы. Функция ОС 1. Загрузка ОС. 2. Загрузка ФС. 3. ОС выводит на монитор сообщение о готовности. 4. ОС читает ФС и находит интерпретатор. 5. ОС загружает интерпретатор. 6. ОС загружает прикладную программу А. 7. Интерпретатор декодирует программу А. 8. ОС выводит на монитор сообщение о том, что задание выполнено. на языке высокого уровня, а затем они выполняются. Преимущество интерпретатора заключается в том, что он позволяет проконтролировать результат выполнения каждой команды. ОС управляет обменом информацией с дисплеем, принтером, накопителем на дисках, а также с такими внешними устройствами, как графопостроитель, мани- 52
пулятор типа «мышь» и т. п. Для этого используются специальные программы — драйверы, ориентированные на работу с этими устройствами. Драйверы стандартных устройств обычно хранятся в ПЗУ, а драйверы дополнительного оборудования — в ФС. Загрузка необходимых прикладных программ и драйверов в основную (оперативную) память компьютера осуществляется ОС. Для этого используется командный язык ОС. Задавая команды этого языка, пользователь может инициировать необходимые действия — обращение к ФС, размеру дисков и т. п. Тем самым в основной памяти формируется операционная среда, необходимая для решения данной задачи. Таким образом, ОС выполняет функции своеобразного «дирижера», обеспечивающего согласованную работу всех программ в процессе решения задач. паке -- - - днями. Способности персонального компьютера к решению задач обработки информации заключены в его программном обеспечении, т. е. в совокупности системных и прикладных программ. Системные программы входят в состав ОС. Они в значительной степени инвариантны к решаемой задаче, т. е практически не зависят от особенностей задачи. Прикладные же программы, наоборот, специализированы. Они учитывают особенности конкретных задач и реализуют алгоритмы их решения. Набор таких программ, обеспечивающий решение определенного класса задач, называется пакетом прикладных программ (ППП). ППП разрабатываются алгоритмистами и программистами-профессионалами. Сегодня программное обеспечение персональных компьютеров содержит сотни ППП и тысячи прикладных программ различного назначения. Международный фонд таких программ все время пополняется новыми ППП. 53
Если вас интересуют новейшие достижения в области программного обеспечения, читайте советско-американский журнал «В мире персональных компьютеров». Он выходит на русском языке, посвящен проблемам развития и применения персональных компьютеров в различных сферах деятельности человека. Выпускаются также ежемесячные каталоги прикладных программ. В них содержатся тысячи наименований программных продуктов для персональных компьютеров, появляющихся на международном рынке. ППП сильно различаются по сложности, типу и назначению. Многие из них узкоспециализированы, т. е. ориентированы на решение конкретных задач. Примерами могут служить ППП для проектирования печатных плат для компьютеров или • ППП для расчета систем управления роботов. Существуют и более универсальные ППП. Они предназначены для решения широкого класса задач. Примером может служить ППП для обработки текстов, позволяющий автоматизировать процесс составления и редактирования любых типов документов. Они обладают поразительными возможностями и существенно облегчают работу с текстами. Число пользователей этих ППП исчисляется сотнями тысяч. Другой пример — так называемые электронные таблицы. «Электронные таблицы» представляют собой компьютерный бланк, отображаемый на экране дисплея в виде таблицы с десятками столбцов и сотнями строк. Такую таблицу можно перемещать на экране по вертикали и горизонтали, просматривая различные ее участки. Каждый элемент таблицы, лежащий в пересечении ее столбцов и строк, поддерживается соответствующей записью в памяти компьютера. Пользователь строит на экране рабочий бланк необходимого формата, записывая в него соответствующий знак, число или формулу. Результаты обработки с помощью 54
ППП отображаются на экране также в виде таблицы, но уже преобразованной. Базы данных и ппогоаммы уппяпчония. Они составляют особый класс ППП и служат для хранения больших объемов однотипной информации и прикладных программ. Программы управления ими производят их упорядочение по определенным признакам, выборку и обработку данных по определенным правилам и т. п. Организация баз данных и технология работы с ними — одна из важнейших проблем информатики персональных компьютеров. Она имеет два аспекта: структуризацию данных и управление ими в процессе решения задач. Первый аспект связан с разработкой программных модулей данных и знаний, обеспечивающих их эффективное представление (структуризацию) данных и прикладных программ в памяти компьютера независимо от его аппаратных особенностей. Сегодня наибольшее распространение получили так называемые реляционные и табличные базы данных. Реляционные базы данных были предложены в 1970 г. Э. Ф. Коддом. В них структуризация данных осуществляется с помощью конечных отношений (реляций), задаваемых на подмножествах (доменах) первичных данных. В дальнейшем эти абстрактные отношения были дополнены элементами «смысловой интерпретации» данных. Более универсальны и удобны табличные базы данных. Они популярны среди пользователей персональных компьютеров, поскольку табличное представление данных широко используется во многих прикладных задачах обработки информации. В основе табличных баз данных лежит понятие таблицы. Посредством таблиц можно представить информацию о широком классе за- 55
дач и объектов, их характеристиках, свойствах и отношениях между ними. На этих данных можно задавать определенные операции, обеспечивающие решение разнообразных задач. Кроме того, организация и использование баз данных связаны с целенаправленной обработкой информации. По меткому замечанию Э. Ф. Кодда, «...структуры данных без способов и правил манипулирования ими похожи на анатомию без физиологии». Поэтому базы данных должны быть дополнены ППП управления, которые часто называют системами управления. Эти ППП представляют собой комплекс языковых и программных средств, обеспечивающих манипулирование данными в абстрактных терминах (понятиях, признаках и т. п.), не связанных с конкретными особенностями памяти компьютера. Адаптация персонального компьютера к конкретной предметной области производится путем организации соответствующей базы данных и настройки системы управления. Варьируя исходные данные и прикладные программы и расширяя ППП управления ими, можно быстро перестраивать компьютер с решения одних классов задач на другие. Операционные оболочки. Решая сложную задачу на персональном компьютере, мы сталкиваемся с проблемой: какой ППП или какую базу данных выбрать? В действительности не так просто найти прикладное программное обеспечение, адекватное данной задаче. Трудность связана с тем, что обычно мы решаем не одну задачу, а совокупность взаимосвязанных задач. Условия задачи могут изменяться в процессе решения. Поэтому нам сложно угадать, какие программные средства необходимы для решения. При одних условиях могут потребоваться «электронные таблицы», при других — базы данных. 56
Таким образом, комплексный характер задач и недетерминированность программных средств их решения порождают ряд трудностей. Они могут поставить неопытного пользователя в тупик. Существует ли выход из этого положения? Да. Все зависит от способности персонального компьютера организовывать процесс решения задач. Для этого необходимы гибкие программные средства, которые легко настроить на задачу или заменить на другие. К ним относятся так называемые операционные оболочки @0). В отличие от ППП и баз данных с их жесткой внутренней организацией 00 являются программным средством, организуемым пользователем в процессе решения задач. Причины возникновения этих новых средств и их бурного развития тесно связаны с самим феноменом «персональной компьютеризации». Появление персональных компьютеров породило колоссальный бум в области производства и совершенствования программного обеспечения. Особенно быстро развивается прикладное обеспечение, расширяя сферу применений компьютеров и круг пользователей. При этом системное программное обеспечение, включая ОС, просто не успевает «отследить» новые тенденции и требования. Объективно оно начинает тормозить развитие компьютерной информатики: системные средства более громоздки и консервативны, чем прикладные. Например, многооконный режим работы с дисплеем, представляющий дополнительные возможности пользователю, требует коренной перестройки ОС. А это сопряжено с большими затратами. Проблему решают 00. Они расширяют возможности ОС и по своей гибкости занимают промежуточное положение между ОС и ППП. Операционные оболочки выполняют следующие функции: организацию многооконного интерфейса с пользователем и управление задачами; включение но- 57
вых ППП и организацию их «стыковки» и взаимодействия с существующим программным обеспечением и т. п. Рассмотрим принципы реализации этих функций на примере ряда 00. Начнем с организации многооконного интерфейса. Многооконный интерфейс обеспечивает пользователю возможность получения на экране дисплея сразу нескольких мониторов, окон. Каждое такое окно характеризуется своим форматом, цветом и т. п. Эти характеристики пользователь может задавать по своему усмотрению с помощью соответствующих команд из меню. Таким образом, он может порождать на экране дисплея различные окна в любом месте и количестве, отображая в них необходимую информацию. Идея многооконного интерфейса оказалась настолько плодотворной, что сегодня многие разработки новых персональных компьютеров предусматривают его в программном обеспечении. Первые работы по организации многооконного интерфейса были выполнены в начале 70-х гг. американской фирмой Ксерокс (XEROX). Важную роль в популяризации этого интерфейса сыграли компьютеры «Макинтош» и «Лиза» американской фирмы Эппл (APPLE), разработавшей первые персональные компьютеры. В процессе работы компьютеров этого типа экран дисплея приобретает вид письменного стола, на котором хаотически разбросаны листы бумаги, калькуляторы, мусорная корзинка и т. п. Изображения отдельных предметов на экране называются пиктограммами. Обычно они иллюстрируют смысл команд, предусмотренных в меню. Например, команда вычислений изображается калькулятором, а команда уничтожения файла — мусорной корзиной. Для управления окнами обычно используется манипулятор типа «мышь». В этом случае курсор также представляется на экране в виде пиктограммы. 58
Каждое окно есть средство выполнения определенных операций, связанных с решением задачи. Из многих окон на экране только одно активное, остальные пассивны. Управление активным окном осуществляется в режиме диалога с пользователем. После выполнения операций, связанных с этим окном, активизируется другое окно и т. д. Гибкость 00 проявляется в том, что заранее не известно, какие программы будут запущены в окнах. Выбор программ и окон осуществляется пользователем. Если нужно подключить новую программу, пользователь вводит команду «включить программу». При этом компьютер просит ввести следующую информацию: имя программы; имя файла, в котором хранится программа; объем памяти, требуемый для работы программы; использует ли программа прямой доступ к памяти экрана, клавиатуры или к процессору. Вся эта информация заносится в специальный файл и используется по мере необходимости. Активизировав программой окно, пользователь может в любой момент прервать его работу и запустить другую программу. После этого он может вернуться к первой программе, продолжив ее работу с прерванного места. Для увеличения производительности предусматривается определенная регламентация диалога со стороны операционной оболочки. Кто же может работать на персональном компьютере? Трудно ли этому научиться? Ответ на эти вопросы дает сама жизнь. Сегодня на персональных компьютерах работают «все кому не лень» — от школьников младших классов до программистов-профессионалов. Причем, как показывает практика, дети обучаются работе на персональном компьютере гораздо быстрее, чем некоторые взрослые. Их привлекает «дружественное расположение» компьютера, и, играя с ним, они легко обучаются. Однако настоящий опыт эффективной работы с компьютером приходит со 59
временем по мере решения все новых и новых задач. Что же касается исходных знаний, необходимых для обучения работе на персональном компьютере, то требования к ним минимальны. Всю информацию можно извлечь из самого компьютера. Дело в том, что современные персональные компьютеры снабжаются специальными обучающими программами, записанными на дискетках. Вставив такую дискетку в компьютер, мы получаем «живой учебник». Пользуясь им, можно самостоятельно изучить все возможности компьютера и его программного обеспечения. «Чтобы научиться плавать, нужно прыгнуть в воду» — гласит народная пословица. Точно так же, чтобы освоить персональный компьютер, нужно на нем поработать. Тронутый вниманием, компьютер вас отблагодарит. Он поможет вам решить многие задачи и проверить новые идеи, связанные с обработкой информации. Компьютерные «вирусы» и «болезни» Современные компьютеры надежны. Среднее время их безотказной работы исчисляется тысячами или десятками тысяч часов. Однако при определенных условиях компьютеры могут «заболеть» или выйти из строя. Это в полной мере относится и к персональным компьютерам. Каковы же причины «болезней» компьютеров? Как их можно обнаружить и как «лечить»? В последнее время все чаще появляются сообщения о компьютерных «вирусах». Некоторые люди наивно полагают, что этот «вирус» физически уничтожает компьютер, его диски и дискетки. Но это, конечно, не так. На самом деле компьютерный «вирус» разрушает программное обеспечение компьютера, парализуя его работу. Что же такое компьютерный «вирус»? Как он проникает в компьютер? Каков принцип действия и «жизненный цикл вируса»? 60
«Вирус» — это довольно сложная и изощренная программа. Попав в компьютер, он может самостоятельно «размножаться». «Вирус» прикрепляется к рабочим программам, копирует и переносит себя на диски и дискетки. При этом он нарушает нормальное функционирование компьютера. Рассмотрим «жизненный цикл» и принцип действия «вируса». Все неприятности начинаются с того, что «вирус» встраивается в какую-либо программу, загружаемую в компьютер. После запуска этой программы автоматически запускается механизм действия «вируса». Обычно он проявляет себя не сразу. Этому предшествует «инкубационный период», который может продолжаться от нескольких дней до нескольких месяцев. Чем длительнее этот период, тем сложнее пользователю установить, когда и откуда «вирус» попал в персональный компьютер. Первоисточником инфекции является человек, разработавший компьютерный «вирус». Разрушительное действие «вируса» проявляется после завершения «инкубационного периода». За это время он поражает память компьютера, записывая свои копии в подходящие для этого программы. Каждый «вирус» совместим лишь с программами определенного типа. Диагностика «болезней» и методы «лечения» персональных компьютеров от «вирусной инфекции» зависят от типа и особенностей «вирусов». Сегодня различают следующие типы «вирусов»: операционные, заражающие операционную систему; прикладные, заражающие прикладные или системные программы; компиляторные, заражающие объектную библиотеку компилятора; драйверные, заражающие драйверы локальной сети. Операционные «вирусы» внедряются в системную часть жесткого диска (винчестера) или дискетки. При этом они прикрепляются к одному из файлов и автоматически «размножаются» при его загрузке^ Приклад- 61
ные «вирусы» внедряются в какую-либо прикладную или системную программу, которая становится его «носителем». Компиляторные «вирусы» заражают библиотеку компилятора, откуда они внедряются в любую компилируемую программу. Наконец, драйверные «вирусы» переносятся по локальной сети. Они особенно опасны, так как могут заразить другие компьютеры. «Психические расстройства», порождаемые «вирусами» разных типов, проявляются в стирании файлов, модификации программ, уничтожении данных, сбоях во время печати результатов и т. п. Они могут возникнуть сразу (в заранее запрограммированный момент запуска вируса) или развиваться постепенно. Для обнаружения и уничтожения компьютерных «вирусов» служат специальные «лекарства». Среди них важную роль играют детекторы «вирусов», представляющие собой программы, распознающие и убивающие «вирусы». Созданный в США Институт безопасности компьютеров разработал гамму таких детекторов, уничтожающих «вирусы» разных типов. Эти детекторы ориентированы на пользователей персональных компьютеров типа IBM PC. Эпидемию, порожденную компьютерными «вирусами», иногда сравнивают с охватившей мир эпидемией СПИДа. Эта новая опасная болезнь, как* известно, поражает прежде всего тех, кто ведет беспорядочный образ жизни. Чтобы избежать заражения персонального компьютера «вирусом», нужно быть щепетильным в выборе программных средств. Безрассудное копирование чужого программного обеспечения, не регламентированное авторским правом и коммерческими гарантиями, может привести к заражению вашего компьютера со всеми вытекающими отсюда последствиями. 62
Индустрия компьютерной информатики ности. К ней относится как производство самих компьютеров и периферийных устройств, так и создание необходимого программного обеспечения, включая его сопровождение и другие услуги. Абсолютным лидером компьютеростроения за рубежом является фирма IBM. Первый персональный компьютер появился в середине 70-х гг. в США. Его сконструировал С. Джобе. Проучившись один семестр в колледже, он забросил учебу и занялся разработкой компьютерных видеоигр в компании Atari. Вскоре у него появилась счастливая идея создать простой и удобный для пользователя настольный компьютер. Вместе с С. Возняком они собрали в гараже первую модель персонального компьютера и затем открыли собственную фирму Apple Computer, Jnc. С 1976 г. фирма начала выпускать компьютер Apple-I. Он стал пионером индустрии персональных компьютеров, получившей бурное развитие во всем мире. Вскоре С. Возняк сконструировал усовершенствованную модель Арр1е-П. Она вобрала в себя новейшие достижения микропроцессорной техники. Успех молодой фирмы был ошеломляющим. Ее девиз — «Каждому по компьютеру» — быстро воплощался в жизнь. Объем сбыта персональных компьютеров в 1983 г. превысил 1 млрд. долларов, а прирост к 1984 г. составил 75%. Но вместе с успехом пришли и волнения. На рынке персональных компьютеров возникла острая конкуренция. Крупнейшая в мире компьютерная компания IBM разработала в 1981 г. собственную модель персональ- 63
ного компьютера. Она положила начало целому семейству таких компьютеров. В 1983 г. фирма IBM стала признанным лидером, захватив 85% мирового рынка персональных компьютеров. Вскоре появились сотни фирм, выпускающих похожие или IBM-совместимые компьютеры. Но и фирма Apple не стояла на месте. Ответом конкурентам стал новый компьютер Liza. В нем впервые С. Джобе использовал манипулятор типа «мышь». Этот манипулятор, перемещаемый рукой по столу, обеспечивает движение метки на экране дисплея. Когда метку наводят на какой-либо символ, представляющий определенную функцию компьютера, и нажимают на «мыши» клавишу, компьютер сразу же выполняет соответствующую функцию. Применение этой «находки» в персональном компьютере Liza привело к его резкому удорожанию. Продажная цена поднялась до 10 000 долларов, в то время как Apple-П стоил 2500 долларов. Вследствие этого прирост продаж в 1985 г. стал отрицательным. Преуспевающая фирма стояла перед лицом экономического краха. Тогда бригада молодых энтузиастов взялась за разработку нового конкурентоспособного персонального компьютера. Этот, по определению С. Джобса, «самый умопомрачительный компьютер» был сконструирован через 3 года. Он получил название Macintosh. Удобный и дружественный к пользователю компьютер обратил на себя внимание. Старт этой модели в 1984 г. оказался весьма эффективным и впечатляющим. Благодаря своим мощным графическим возможностям, использованию «мыши» и новейших лазерных принтеров Macintosh стал базой для небольших или персональных «настольных издательств». Энтузиазм его молодых разработчиков позволил фирме выжить в жестокой конкурентной борьбе с могущественной корпорацией 64
IBM. В этом же году фирма начала выпускать новейшую модель Apple-IIGS. Она полностью совместима с другими моделями фирмы и программным обеспечением. Отличительными чертами этой модели являются цветной дисплей с 64 градациями яркости, 15-ка- нальная звуковая система, способная повторять слова, появляющиеся на экране дисплея, и высокая производительность. Интересно отметить, что основатель фирмы Apple С. Джобе покинул ее. В 1987 г. он организовал новую фирму NeTX и объявил, что ее главной задачей является создание нового 32-разрядного компьютера для школ. В основу проекта положены «три кита»: 32-разрядный микропроцессор Motorolla 68030, операционная система UNIX и принципиально новая дружественная графическая оболочка. Генеалогическое —~- :~: ^«^« IBM PC. В 1981 г. американская фирма IBM объявила о серийном выпуске новой продукции — персональных компьютеров семейства IBM PC. «Мозгом» этих компьютеров стал микропроцессор Jntel 8088, оперативное запоминающее устройство емкостью 64 Кбай- та (с возможностью наращивания до 544 Кбайт) и два накопителя на магнитных дисках емкостью 160 Кбайт каждый. В качестве средства для визуализации информации использовался дисплей с монохроматическим монитором с высокой разрешающей способностью. Компьютер работал под управлением операционной системы MS/DOS. В 1983 г. фирма разработала новую модель — IBM XT. Аббревиатура XT происходит от английского extended, что означает в переводе на русский язык ¦расширенный». Главной особенностью этой модели стал накопитель на жестком магнитном диске типа «винчестер» емкостью 10 Мбайт и расширенная оператив- 65
Рис. 8. Генеалогическое дерево персональных компьютеров фирмы IBM PC. В нем отражена история развития этого семейства с ее непредсказуемыми взлетами и падениями в условиях острой конкурентной борьбы за рынок сбыта. ная память емкостью 256 Кбайт, размещенная на основной плате. Затем были разработаны еще две модели — IBM PC JR и IBM Rortabl PC. Они обладали рядом недостатков, и их производство вскоре прекратилось. В 1984 г. фирма объявила о выпуске еще одной модели — IBM AT. Она была построена на базе нового 16-разрядного микропроцессора Jntel 80286. Бе запоминающее устройство с расширяемой памятью включало быстродействующий накопитель на жестком магнитном диске типа «винчестер» емкостью 10 Мбайт и накопитель на гибком магнитном диске емкостью 1,2 Мбайта. Гарантийный срок работы этих персональных компьютеров был увеличен с традиционных 90 дней до 12 месяцев. 66
Несмотря на ряд неудач, фирма IBM стала одним из крупнейших в мире производителей персональных компьютеров. Общий парк компьютеров этой фирмы сегодня превышает 5 млн. Кроме того, в мире используется более 25 млн. аналогичных компьютеров. Их называют IBM-совместимыми (имея в виду не только программную, но и аппаратную совместимость, т. е. возможность простого подключения к центральной шине дополнительных плат). На них могут располагаться дополнительные процессоры и запоминающие устройства, контроллеры дисководов, интерфейсы, модемы и многое другое. Благодаря этоу у пользователей появилась возможность постоянно совершенствовать компьютер, заменяя платы на более эффективные. После длительного перерыва фирма IBM в 1987 г. разработала и начала серийный выпуск нового семейства персональных компьютеров PS/2 (Personal System). Оно включает пять моделей с номерами 25, 30, 50, 60, 80. Сегодня в разных областях применяется более миллиона таких компьютеров. Отличительные черты этого семейства (по сравнению с предыдущими сериями IBM PC XT и IBM PC AT) — новый формат гибкого диска C,5 дюйма), новый графический стандарт монитора G40X480 точек, 256 градаций цвета), 16-разрядная микроканальная шина. Центральное место в семействе персональных компьютеров занимает модель 50. Она имеет отличный дизайн, размещается на рабочем столе пользователя (габариты — 420X357X140 мм, масса — 10,4 кг) и может обеспечить многие его потребности. Используемый в ней микропроцессор Jntel 80286 может поддерживать оперативную память емкостью до 1 Мбайта на фирменной плате, расширяемую до 7 Мбайт (в будущем — до 16 Мбайт). Источник питания имеет мощ- 67
ность 94 Вт. Последовательный и параллельный интерфейс позволяет подключать манипулятор типа «мышь», принтер, магнитофон и другие устройства. Для увеличения производительности компьютера в модели 50 предусмотрено 8 каналов прямого доступа. Они позволяют дисководам и другим устройствам непосредственно обращаться к запоминающему устройству, минуя запросы к центральному процессору. Новая шина обеспечивает возможность подключения к компьютеру 16 устройств, в том числе и системного микропроцессора. В качестве операционной системы можно использовать OS/2 или DOS 3.30. Модель 50 программно совместима с другими компьютерами типа IBM PC. Поэтому в ней можно использовать ранее разработанные системы управления базами данных и электронными таблицами, компиляторы наиболее популярных языков программирования, обучающие и развлекательные программы, графические редакторы и т. д. Благодаря этому значительно расширяется область возможных применений модели 50. Компьютеры и информатика в сфере образования Персональные компьютеры в школе. Вопрос о необходимости использования компьютерной информатики для обучения в школах долгое время был предметом острых дискуссий. Пессимисты утверждали, что компьютер вместе с вложенным в него программным обеспечением подобен задаче с известным решением: достаточно нажать кнопку — и ответ готов. Они предостерегали, что компьютеризация породит леность ума и беспомощность школьников перед лицом реальных задач. Оптимисты предсказывали, что обучение с по- 68
мощью компьютеров активизирует школьников, мобилизует и разовьет их способности, стимулирует любознательность и интерес к новой технике и информационной технологии. По словам академика А. П. Ершова, «компьютер может стать дружественным и могучим помощником ребенку в развитии его интеллекта». Опыт использования компьютеров в школах всего мира подтвердил правильность оптимистических прогнозов. Символичен в этом отношении доклад американского профессора С. Пайперта на тему «Детство по-новому: компьютеризация как эксперимент в психологии развития», сделанный в 1980 г. на Международном конгрессе в Японии. Одно из важнейших положений доклада заключается в том, что компьютер становится таким же привычным инструментом в руках школьника, как карандаш или авторучка, но только гораздо более эффективным. Компьютеризация при обучении создает невиданную ранее информационную обстановку, которая стимулирует интерес и пытливость ребенка. Вследствие этого он очень быстро овладевает алфавитом, языком программирования и навыками алгоритмического мышления. Это облегчает понимание и решение многих задач интеллектуального характера. В школе компьютер становится электронным посредником между учителем и учеником. Он позволяет организовать процесс обучения по индивидуальной программе. Ученик, обучающийся за пультом компьютера, может сам выбирать наиболее удобную для него скорость подачи и усвоения материала. В этом проявляется главное преимущество компьютера в процессе обучения: он работает с каждым учеником в отдельности. Поэтому в школах все шире используются персональные компьютеры. Индивидуализация обучения улучшает качество подготовки. Это достигается за счет живой обратной связи, которая устанавливается в процессе диалога 69
школьника с персональным компьютером. В зависимости от характера ответов ученика на контрольные вопросы компьютер может предложить наводящие вопросы, подсказать или замедлить темп обучения, если же школьник устанет, может предложить ему в качестве развлечения компьютерную игру. Современные персональные компьютеры снабжаются магнитофонами и синтезаторами речи. Поэтому они могут, в принципе, заменить учителя, обучающего школьника родному или иностранному языку. Например, они могут проводить диктанты, передавая через наушники каждому ученику различные тексты. При этом учащийся «пишет» свой диктант на экране дисплея, пользуясь клавиатурой пишушей машинки. Он может также по мере необходимости исправлять ошибки или вносить поправки. Когда диктант закончен, компьютер тут же его проверит и высветит на экране все ошибки, их анализ и общую оценку, которую заслужил учащийся. Бели оценка неудовлетворительная, компьютер может индивидуально поработать с учеником и добиться от него полного усвоения материала. Сегодня споры о целесообразности школьной информатики потеряли смысл. Во всех развитых странах мира компьютеры уже реально используются в школах, техникумах и профессионально-технических училищах. Повсеместно учащиеся относятся к компьютеру с глубоким интересом. В этой заинтересованности — залог новых успехов в компьютеризации школ. Важную роль во внедрении компьютеров в советские школы сыграл академик А. П. Ершов. Он разработал новую педагогическую концепцию развития школьной информатики. Приведем основные тезисы этой концепции, изложенные в докладе «Будущее автоматизации» в 1983 г. на заключительном заседании Международной конференции ИФАК—ИФИП «Обучение для будущего» : 70
«1. Мы должны брать ЭВМ в единстве его качеств как объекта и средства управления. Ребенок должен привыкнуть к ЭВМ как к своему пожизненному партнеру, помогающему в решении возникающих перед ним задач. В то же время ребенок должен воспринимать ЭВМ не как источник решения, а прежде всего как средство его достижения. 2. В связи с этим мы считаем, что ЭВМ в школе — это не система программированных курсов, а прежде всего открытая операционная обстановка, в которой ребенок прокладывает траекторию своей активности. 3. Компьютеризация школы — это длительный процесс. Поэтому в течение нескольких десятков лет должна действовать своеобразная система, которая, с одной стороны, сохраняет существующие формы организации учебного процесса (класс, урок, предмет) а с другой — полностью опирается на растущее присутствие ЭВМ в школе. 4. В этот переходный период наиболее приемлемой формой организации учебного процесса с помощью ЭВМ является вычислительный кабинет — отдельное помещение (или несколько) в школе, в котором установлено порядка двадцати персональных ЭВМ, объединенных в локальную сеть». На основе этой концепции разработано интегрированное программное обеспечение, включающее язык начального обучения РОБИК (для школьников 7—11 лет), учебно-производственный язык РАПИРА (для школьников 12—16 лет) и пакет программ машинной графики для визуальной связи между учащимися и компьютером. Оно ориентировано на советский персональный компьютер АГАТ или его аналоги. Эксперимент по внедрению разработанной концепции начался в 1984 г. в школах Новосибирска. Сегодня разработано несколько подходов к ускоренному развитию школьной информатики и ее увязке с 71
профессиональной ориентацией школьников. Большой опыт в этом отношении накоплен в школах Москвы, Ленинграда, Киева и других городов СССР. Компьютеры применяются не только в школе, но и на вступительных экзаменах в вузы. Например, при экзаменах по математике они контролируют правильность ответов rio каждой из задач, содержащихся в билетах, и печатают таблицу результатов с указанием рекомендуемой оценки. Исходя из этих рекомендаций, экзаменатор ставит окончательную оценку. В ряде вузов СССР широко используется типовое программное обеспечение «Абитуриент». С его помощью до начала экзаменов осуществляется оперативная обработка данных о ходе поступления заявлений по специальностям и о составе абитуриентов. В процессе экзаменов приемная комиссия может в любой момент получить полную информацию о количестве сданных экзаменов и оценках каждого абитуриента. После завершения всех экзаменов компьютер анализирует результаты и выдает документацию для зачисления. Учебные классы роботов и средств автоматизации. В семействе современных средств автоматизации особое место занимают учебные роботы. Они отличаются повышенной надежностью и безопасностью в эксплуатации, а также малыми габаритами и низкой стоимостью. При этом учебные роботы конструктивно подобны своим промышленным собратьям. Это позволяет имитировать в классе многие технологические операции. Системы управления учебных роботов обычно строятся на базе персональных компьютеров. На их основе можно программно реализовать весьма сложные алгоритмы обработки сенсорной информации, программирования движений исполнительных механизмов и адаптивного управления двигателями. Это особенно важно для углубленной подготовки учащихся, специализи- 72
рующихся в области робототехники. В настоящее время в промышленно развитых странах мира выпускается несколько десятков разновидностей учебных роботов. Среди них наиболее совершенными являются мини-роботы, выпускаемые рядом фирм Японии, США, Англии и Италии. В СССР также разработан ряд моделей учебных роботов. В Болгарии разработана серия учебных роботов и станков, управляемых персональным компьютером ПРАВБЦ. На их основе созданы комплексные учебные кабинеты. Учебные роботы могут использоваться и для профессиональной подготовки. Так, итальянская фирма Электроника ВЕНЕТА, специализирующаяся на учебном оборудовании, разработала широкую номенклатуру станков и роботов для учебных целей. Примером может служить учебный робототехнический комплекс этой формы, включающий в себя робот, токарный и сверлильный станок, управляемые микрокомпьютерами. В СССР обучение робототехнике ведется в основном в профессионально-технических училищах (ПТУ), готовящих операторов и наладчиков промышленных роботов, и в технических вузах, выпускающих инженеров- разработчиков робототехнических систем. В ряде ведущих университетов также предусмотрена подготовка специалистов в области математического обеспечения и информатики роботов. Что же касается школ, то в них знакомство с робототехникой осуществляется обычно в рамках мероприятий по профессиональной ориентации учащихся (кружки, лекции, практические занятия и т. п.). Эту работу организуют и ведут преподаватели вузов, заинтересованных в наборе наиболее увлеченных и подготовленных школьников. Масштабы профессиональной ориентации в области информатики и робототехники расширяются. Так, в Ленинграде разворачивается работа по созданию политехнических классов и школ по типу хорошо себя заре- 73
комендовавших физико-математических школ. Они ориентированы на специальности, связанные с разработкой новой техники и технологии. Аналогичная работа ведется в ПТУ и техникумах с целью отбора одаренной молодежи для углубленной специализации в области информатики и робототехники в вузах. В советских вузах разработаны экспериментальные образцы адаптивных роботов с элементами искусственного интеллекта, которые находят применение в учебном процессе. Однако учебный процесс и лабораторный практикум в ПТУ и вузах базируются главным образом на серийно выпускаемом автоматизированном оборудовании. Так, в ленинградском ПТУ № 83 создан учебный комплекс, где процесс обучения совмещен с выпуском продукции. Здесь готовят рабочих нового типа — операторов и наладчиков станков и манипуляторов с программным управлением. Эта новая профессия введена в 1982 г. в «Единый тарифно-квалификационный справочник работ и профессий рабочих». Она ориентирована прежде всего на эксплуатацию и наладку промышленных роботов и робототехнических комплексов. Важное значение при подготовке инженерных кадров по робототехнике имеют системы автоматизированного проектирования (САПР). Одна из таких САПР, ориентированная в основном на автоматизированные расчеты рациональных кинематических схем, синтеза и анализа систем программного управления роботов, разработана в отделе робототехники Института автоматизации им. М. Пупина в СФРЮ. В Ленинградском институте авиационного приборостроения создана учебно-исследовательская САПР систем программного и адаптивного управления роботов. Итак, в связи с начавшимся в нашей стране переходом ко всеобщему профессиональному образованию основы информатики и робототехники становятся одним из обязательных предметов в учебно-производственных комбинатах при средних шко- 74
Подготовка специалистов в области автоматизации. Ведущее место в системе кадрового обеспечения средств автоматизации принадлежит вузам. Именно здесь должна завершаться сквозная подготовка рабочей молодежи и научной смены для решения сложных задач комплексной автоматизации. Подготовка специалистов по автоматизации в вузах тесно связана с научно-исследовательской работой. В ней активное участие принимают и студенты. Это позволяет им приобщиться к сложным задачам автоматизации и внести свой вклад в их решение. В последние годы в порядке эксперимента апробируется новая форма обучения студентов — целевая интенсивная подготовка инженеров-исследователей. Она охватывает ряд наиболее дефицитных и наукоемких специальностей. Подготовка студентов осуществляется по прямым договорам с заинтересованными предприятиями с целью сокращения сроков адаптации молодых специалистов к будущим местам их работы. В рамках этих договоров предприятия предоставляют вузам современное технологическое оборудование и новейшие компьютеры, обеспечивают условия для проведения сквозной производственной практики, направляют своих ведущих специалистов для чтения лекций. Наиболее квалифицированные преподаватели работают с небольшими группами D—6 человек). Это стимулирует научно-изобретательскую деятельность студентов. Компьютерная информатика используется на всех этапах обучения, начиная с I курса. Гибкий учебный план может частично корректироваться по согласованию с предприятиями-заказчиками. Это позволяет быстро учитывать новейшие достижения в области автоматизации в учебном процессе. Курсы лекций по информатике и искусственному интеллекту 75
включены в учебные планы и программы ряда высших учебных заведений в нашей стране и за рубежом. Широкое внедрение современных средств информатики, автоматизации и робототехники в учебный процесс ведет к поистине революцинным изменениям в системе среднего и высшего образования. Интенсификация и индивидуализация обучения с помощью персональных компьютеров, учебных роботов, САПР и систем искусственного интеллекта — характерные черты этого процесса. Только на этом пути можно удовлетворить всевозрастающий спрос на новые специальности и создать гармонию между человеком и автоматизированным трудом. Компьютерная информатика и проектирование Диалог между конструктором и компьютером. Прежде всего возникает вопрос: нужно ли вообще привлекать компьютеры для проектирования новых изделий или технологий? Ответ на этот вопрос не так очевиден, как это может показаться на первый взгляд. Дело в том, что задача проектирования не может быть успешно решена, если к ней не будет привлечен квалифицированный конструктор: процесс создания проекта нового изделия в значительной степени опирается на творческие способности и знания конструктора. Однако ни один компьютер сегодня этими способностями и знаниями не обладает. Кроме того, неразумно загружать творчески мыслящего конструктора огромной, однообразной работой вычислительного характера, не требующей ни интуиции, ни глубоких знаний. Именно эту рутинную часть процесса проектирования целесообразно возложить на компьютер. Методы «безбумажной» информатики позволяют также передать компьютеру такие функции, 76
как составление расчетной, конструкторской и технологической документации, поиск необходимой информации в справочниках и стандартах и т. п. Как оптимальным образом распределить функции между человеком и компьютером? Как организовать их эффективное взаимодействие в процессе проектирования? Ключом к решению этих проблем могут служить слова одного из основоположников кибернетики — Н. Винера: «Отдайте же человеку — человеческое, а вычислительной машине — машинное». Однако рекомендация Н. Винера носит весьма общий характер и нуждается в уточнении. При распределении функций между человеком и компьютером необходимо учитывать характерные особенности и преимущества каждого. У человека — это интуиция, знания, опыт, изобретательность, способность принимать нетривиальные решения; у компьютера — колоссальное быстродействие, большой объем памяти, высокая надежность и неутомимость. Цель компьютеризации процесса проектирования заключается в том, чтобы оказать конструктору помощь, повысить производительность и качество его труда, сделать условия его работы более комфортными. Этого можно достичь, организовав диалог между конструктором и компьютером. Необходимость в диалоговом режиме диктуется также тем фактом, что в настоящее время не существует полностью формализованной теории проектирования. Поскольку трудно рассчитывать на ее появление в ближайшем будущем, процесс проектирования естественно организовать именно как диалог человека с компьютером. Человеко-машинный комплекс, обеспечивающий рациональное распределение функций между конструктором и компьютером с целью максимальной автоматизации процедур проектирования, называется системой 78
автоматизированного проектирования (САПР). Роль конструктора в САПР не сводится только к вводу в компьютер проектного задания и получению от него готового проектного решения. Он выступает как активный творческий участник на всех этапах процесса проектирования. Это обеспечивает САПР необходимую гибкость и адаптивность. Использование компьютеров придало деятельности проектировщика своеобразную эмоциональную окраску: задачи автоматизированного синтеза и анализа новых изделий стали источником творческого подъема и вдохновения. Это обстоятельство не следует считать второстепенным. Оно тем более важно, что в рамках САПР требования к квалифицикации и творческим способностям конструктора существенно возросли. Что же касается традиционных форм «ручного» проектирования, связанных с чрезвычайно трудоемкими, монотонными расчетами и использованием стандартов и справочников, то они постепенно уступают место компьютерному проектированию. Режим диалога предъявляет серьезные требования к проектировщику как оператору компьютера и современных средств ввода и вывода информации — дисплеев, графопостроителей и т. п. Их широкое использование в САПР позволяет еще больше повысить качество и производительность труда. САПР предоставляет разработчику уникальную возможность исследовать свойства или поведение проектируемого объекта в условиях, которые нецелесообразно или невозможно воспроизвести на практике (например, моделирование аварийных режимов и ситуаций), а также моделирование разного рода возмущений и помех с целью оценки их влияния на поведение и характеристики объекта. Наконец, использование САПР позволяет получать оптимальные проектные решения. Диалоговое проектирование представляет собой 79
сложный интерактивный процесс преобразований проектного задания в проектное решение, включающее все необходимое для создания проекта. Поскольку этот процесс частично реализуется на компьютере, необходимо прежде всего сформулировать проектное задание и алгоритмизировать проектные процедуры и решения. Такая формализация требует особой тщательности в описании класса решаемых задач проектирования и необходимых проектных процедур и решений. Однако слишком жесткая алгоритмизация процесса проектирования может сделать его неэффективным. Поэтому здесь нужен разумный компромисс, согласно которому конструктор вмешивается в этот процесс там и тогда, где и когда нужно принять ответственное решение. Тем самым процесс проектирования несколько «рас- формализовывается» и становится гибким. /Л CZ. тт. _ _ ш\,— .— „ ~. .._.„ цели проектирования и круг решаемых задач определяются заказчиком. Он формулирует также требования, которым должен удовлетворять проектируемый объект в процессе его эксплуатации. Исходя из этого формируется проектное задание. Этот этап называют внешним проектированием. На втором этапе осуществляется внутреннее проектирование, непосредственная разработка проектного задания. Для его осуществления необходимы алгоритмические модели элементов и систем, из которых формируется проектное решение. Процесс проектирования заключается, во-первых, в синтезе вариантов проектируемой системы и, во-вторых, в анализе свойств каждого из них с целью выбора приемлемого или наилучшего варианта. В свою очередь процесс синтеза содержит два этапа: структурный синтез, т. е. формирование структуры системы, и параметрический синтез, т. е. выбор параметров этой структуры. 80
Поскольку задача структурного синтеза плохо формализуется, ее решение целесообразно оставить за человеком. Именно здесь могут оказаться полезными опыт и интуиция конструктора. Однако это вовсе не означает, что компьютер на этом этапе, требующем активного творчества, бесполезен. На самом деле он может здесь быть прекрасным помощником, подсказывая, какие модули содержатся в его базе знаний и какими свойствами они обладают. Кроме того, по мере развития теории проектирования и средств искусственного интеллекта компьютер в ближайшем будущем сможет самостоятельно решать задачи оптимального структурного синтеза. Задача параметрического синтеза более проста. Обычно она допускает формализацию в виде расчетных соотношений для обоснованного выбора параметров всех алгоритмических модулей, входящих в структуру системы. Поэтому априорный выбор параметров можно поручить компьютеру. В случае необходимости проектировщик может варьировать эти параметры в заданных пределах. К сожалению, очень трудно заранее установить алгоритмическую разрешимость задачи проектирования. Трудности связаны с неблагоприятным влиянием н'а систему неизбежных на практике возмущений и неконтролируемых помех. Поэтому приходится, задавшись определенным классом возмущений и помех, анализировать их влияние на поведение системы путем имитационного моделирования на компьютере. Сложность описанного подхода к диалоговому проектированию заключается в том, что обычно конструктору неясно, какую именно систему следует анализировать. Ведь эта система только проектируется, и, следовательно, ее полное описание он как раз и пытается отыскать. Возникает диалектическое противоречие. С одной 81
стороны, конструктор анализирует с помощью компьютера поведение проектируемой системы, с другой — именно описание этой системы он должен отыскать. Этот парадокс диалогового проектирования носит принципиальный характер. Бго можно объяснить следующим образом. Создать хорошую систему можно только, когда мы точно знаем ее описание. Оно формируется в процессе проектирования. Но даже если оно найдено, а сама система реализована, многие ее свойства остаются неясными. Например, как поведет себя система в реальных условиях эксплуатации. Дело в том, что невозможно на стадии проектирования учесть все особенности этих условий. Описанное противоречие полезно. Оно играет роль своеобразной пружины, подталкивающей процесс проектирования. Как только противоречие исчезло, «толкать» больше нечего и, следовательно, требуемое проектное решение получено. Важную роль при этом имеет имитационное моделирование возможных возмущений и неопределенностей и оценка их влияния на свойства проектируемой системы. По существу, компьютерный анализ выступает здесь как главное средство разрешения противоречия, возникающего в процессе проектирования. Базы знаний и данных проектирования. Для организации диалогового проектирования необходимо лингвистическое обеспечение. Оно включает иерархию взаимосвязанных языков, используемых в САПР на различных этапах проектирования. Рассмотрим особенность этих языков и сформулируем требования, которым они должны удовлетворять. Язык верхнего уровня САПР — это язык заданий. Он служит для формулировки и ввода в компьютер проектного задания. Основное требование — макси- 82
мальная близость к естественному языку. Это означает, что состав операторов и синтаксис языка заданий должны, по возможности, совпадать со словарным запасом и синтаксисом языка проектировщика. Кроме того, язык заданий должен определять порядок ввода проектного задания и быть открытым в отношении словарного состава. Язык заданий, используемый на верхнем уровне САПР, обеспечивает интеллектуальный интерфейс между проектировщиком и компьютером. Он облегчает внедрение таких САПР и обеспечивает быстрое освоение их пользователями. В некоторых случаях на верхнем уровне целесообразно использовать также языки символьной записи и системы преобразований алгоритмических моделей. Они (например, РЕДЬЮС или ФОРМАК) позволяют формировать и развивать базу знаний. Они придают САПР интеллектуальный характер. Язык среднего уровня САПР — алгоритмический язык. Он используется для записи в базу знаний и данных алгоритмических моделей и программных модулей. Эффективное средство анализа поведения системы, описанной на алгоритмическом языке, — имитационное моделирование. Поэтому языки среднего уровня можно назвать языками моделирования. В качестве таких языков могут использоваться обычные алгоритмические языки (например, ФОРТРАН, ПАСКАЛЬ или СИ). Их главное достоинство заключается в том, что они хорошо приспособлены для моделирования различных проектных процедур. Кроме того, для них разработаны трансляторы, позволяющие перевести проектное решение на язык его реализации. Необходимые сведения о языках, используемых в САПР, хранятся в лингвистическом процессоре, сложном программно-аппаратном комплексе, обеспечиваю- 83
щем лингвистическую (языковую) поддержку диалогового проектирования. Один из важнейших компонентов САПР — алгоритмическое и программное обеспечение, комплекс взаимосвязанных алгоритмов и программ, необходимых для автоматизации процесса проектирования. Это своеобразный посредник между лингвистическим обеспечением и аппаратной частью САПР, состоящей из компьютеров, графопостроителей, принтеров и другого необходимого оборудования. Алгоритмическое и программное обеспечение можно сравнить с невидимой частью айсберга, в то время как лингвистическое обеспечение — это доступная взору его вершина. Эта невидимая часть огромна. В развитых САПР она содержит сотни алгоритмов, описывающих функционирование различных элементов и подсистем, и тысячи команд, составленных квалифицированными системными и прикладными программистами. Все эти алгоритмы и программы скрыты от непосвященного взора и хранятся в базах знаний и данных. База знаний — важнейший компонент интеллекта компьютера. Она имеет большую емкость памяти и специальные средства обработки хранимых в ней знаний. В базе знаний САПР сведения об элементах и подсистемах записываются в форме алгоритмических моделей. Используются символьные языки систем типа ФОР- МАК или РБДЬЮС. Наличие базы знаний позволяет человеку вести проектирование на языке заданий, по существу на проблемно-ориентированном естественном языке. В базе данных хранятся программные модули и данные. К базе данных можно отнести и системные модули операционной системы компьютера и диалогового монитора САПР. Диалоговый монитор включает в себя лингвистический процессор, интерпретатор языка заданий и пла- 84
нировщик. Интерпретатор распознает операторы этого языка и организует последовательный вызов на обработку необходимых программных модулей. Планировщик, непрерывно обращаясь к базе знаний и данных, автоматически выбирает и компонует программные модули в соответствии с проектным заданием в рабочую программу проектирования. Базы знаний и данных совместно с лингвистическим процессором и диалоговым монитором образуют интеллектуальный интерфейс САПР. По существу, он обеспечивает лингвистическую и информационную поддержку САПР. Организация базы знаний и диалогового проектирования представляет собой очень сложную задачу. Роль баз знаний и данных в САПР особенно велика, поскольку именно в базах знаний и данных содержится «генофонд» проектируемых систем. Путем «мутации» из хранимых «генетических кодов» в процессе проектирования можно получить системы с наперед заданными или принципиально новыми свойствами. Отсюда ясна опасность порчи «генофонда» и необходимость защиты его от недозволенного вмешательства и компьютерных «вирусов». Совершенство интеллектуального интерфейса САПР целиком определяется творческим потенциалом и естественным интеллектом его разработчиков. Но когда он создан, компьютер приобретает черты интеллектуального партнера проектировщика. Общение с таким партнером приятно и полезно. Интеллектуальные терминалы и машинная графика. Обычно оборудование САПР состоит из следующих компонент. Во-первых, это вычислительные средства, включающие один или несколько компьютеров. Чаще всего используются 16- и 32-разрядные мини- или микрокомпьютеры, включая и персональные компьютеры. В 85
случае необходимости они могут подключаться к мощным компьютерам или вычислительным сетям. Во-вторых, это современные средства хранения больших объемов информации (магнитные диски, магнитные ленты и т. п.). В-третьих, это средства ввода графической и символьной информации на базе графических и алфавитно- цифровых дисплеев. В-четвертых, это графические средства вывода графической информации и программного продукта. Рассмотрим более подробно два последних типа оборудования САПР. Они непосредственно используются на рабочем месте проектировщика для визуализации и реализации диалога. Начнем со средств визуализации. К ним относятся устройства динамической и пассивной графики. Динамическая графика реализуется с помощью алфавитно-цифровых и графических дисплеев. Они формируют изображение текста, таблиц, графиков, чертежей или объектов, которое может быть быстро изменено в любой момент времени. Основной функцией алфавитно-цифровых дисплеев является ввод текста. Графические дисплеи позволяют выводить изображение проектируемого объекта, чертежи его элементов или графиков, характеризующих их работу. Генерация изображений осуществляется графическим процессором, который декодирует и исполняет команды, поступающие из компьютера. Средства пассивной графики формируют изображение, которое не может быть изменено. К ним относятся графопостроители различных типов (планшетные, рулонные, барабанные и т. п.). Они используются для получения графических документов высокого качества (в том числе и цветных). Помимо чертежей и графиков устройства пассивной графики позволяют получать «твердые» копии изображения, которое проектировщик видит на экране дисплея. 87
Описанные средства машинной графики особенно удобны для геометрического моделирования систем и их элементов. Необходимость в этом возникает, например, при проектировании исполнительных механизмов робота, при исследовании его поведения в среде с препятствиями или при моделировании различных вариантов компоновок робототехнических комплексов. Цель геометрического моделирования заключается в машинном представлении и визуализации формы и размеров проектируемого объекта. Для этого нужно прежде всего построить геометрическую модель объекта. Двумерные модели обычно используются для формирования и изменения чертежей. Трехмерные модели позволяют формировать каркасные, поверхностные или объемные модели объекта проектирования. Диалог между проектировщиком и компьютером — это обмен информацией. Мы рассмотрели средства машинной графики, используемые при передаче информации от компьютера к проектировщику. Вся эта информация (рисунки, чертежи, объемные изображения) отражает состояние компьютера на определенном этапе проектирования. Она предназначена для того, чтобы проектировщик мог проанализировать ситуацию и принять то или иное решение. Однако не менее важен и обратный процесс — передача информации от проектировщика к компьютеру. Для этого служат устройства ввода, позволяющие проектировщику выражать свои намерения. К ним относятся световое перо, алфавитно-цифровая или функциональная клавиатура и устройства прямого или косвенного целеуказания. С помощью этих устройств проектировщик воздействует либо на процедуры проектирования (путем выбора соответствующей команды из представленного на экране меню), либо на данные (путем ввода алфавитно-цифровой информации или координат графических элементов на экране). 88
Алфавитно-цифровая клавиатура позволяет вводить информацию с помощью клавиш. Она идентична клавиатуре пишущих машинок. Функциональная клавиатура представляет собой набор клавиш, каждой из которых соответствует определенная функция. При нажатии клавиши ее номер передается в компьютер для исполнения соответствующей функции. Иногда клавиши, функциями которых можно воспользоваться в данный момент, подсвечиваются. К устройствам прямого целеуказания относятся световое перо (с фотоэлементом, реагирующим на освещенность), курсор в виде креста на экране и средства указания пальцем. Действие этих устройств сводится к вводу в компьютер координат выбранной на экране точки. Устройства косвенного целеуказания также служат для задания координат. Однако они задаются не на экране (хотя координаты вводимой точки обычно отображаются на экране в виде светового символа). К этому классу устройств относятся графические планшеты и манипуляторы типа «электронная мышь». Роль описанных устройств ввода сводится к формированию сигналов, которые прерывают работу компьютера для передачи данных. Вид данных зависит от устройства ввода. В случае алфавитно-цифровой клавиатуры это последовательность букв или цифр, в случае функциональной клавиатуры — номер клавиши, в случае целеуказывающих устройств — координаты вводимой точки. В режиме интенсивного диалога может нарушиться нормальная работа компьютера. Главная причина — высокая частота прерываний при вводе данных. Чтобы оградить компьютер от неблагоприятных воздействий устройств ввода, дисплей снабжается собственным процессором с соответствующим программным обеспечением. Такой дисплей со встроенным лингвистиче- 89
ским процессором называют интеллектуальным терминалом. Он берет на себя функции по управлению вводом данных и высвобождает компьютер для решения основных задач диалогового проектирования. Интеллект человека, компьютера и робота Что ;«< ~ В привычных понятиях «мышление» и «интеллект» таится много загадочного и неизвестного. Попытки точно сформулировать эти понятия обычно ставят нас в тупик. Даже профессионалы, занимающиеся изучением мозга и моделированием процессов мышления, затрудняются «четко определить, что такое интеллект. В качестве примера приведем вариант определения, предложенный известным американским специалистом в области искусственного интеллекта М. Минским: «Никто не возьмет на себя смелость объяснить другим людям значение слова, которое они и без того хорошо понимают. Так что будем его употреблять в том смысле, в котором оно обычно употребляется: интеллект — это способность решать трудные задачи, скажем, такого типа, как построить ракету или систему дальней связи». Далее он уточняет: «Важной особенностью того, что мы называем интеллектом, является способность решать в широком масштабе новые, нетрадиционные задачи... На мой взгляд, следует выделить несколько компонент, участвующих в этом процессе- подцели — разбивка трудной задачи на совокупность более простых подзадач. Подобъекты — описание объектов через их части и связи между ними. Причинная символика — объяснение и понимание того, как изменяются объекты. Память — накопление опыта решения сходных задач. Экономность мышления — эффектив- 90
ное распределение имеющихся (ограниченных) ресурсов. Планирование — мысленная организация работы в общих чертах еще до начала ее выполнения. Самосознание — обеспечение благоприятных условий для того, кто решает задачу». Приведенное определение характеризует интеллект рядом признаков. Однако оно далеко не бесспорно. Мыслящий читатель может с ним не согласиться и предложить свое определение. Но это не так просто сделать. Трудность (и одновременно парадокс) заключается в том, что мы всю жизнь используем свой интеллект, почти ничего не зная о нем. «Носителем» интеллекта является наш мозг. Он представляет собой одну из самых сложных живых систем во Вселенной, которая еще не познана. Наука только начинает проникать в тайны мозга, и мышления. Философские аспекты проблемы мышления все еще вызывают острые дискуссии. Представители материалистического подхода исходят из того, что мышление является физическим процессом, происходящим в мозге. Противоположный подход, называемый дуалистическим, основывается на тезисе, что мышление, в принципе, не сводится к физическим функциям мозга. Промежуточную позицию занимают ученые, которые признают важную роль мозга в умственной деятельности, но считают, что принципы работы мозга отличаются от тех, которые сформулированы в современной нейро- биологии. Они полагают, что интеллектуальные функции мозга принципиально отличаются от уже изученных физических функций мозга. Однако* убедительных научных данных, подтверждающих эту гипотезу, пока нет. Поэтому мы будем придерживаться материалистической точки зрения на процесс мышления и возможность его моделирования на компьютере. За последние десятилетия изучение структуры и дея- 92
тельности мозга развивалось ускоренными темпами. Большие успехи имеются, например, в понимании такой функции мозга, как память. Новые методы нейрофизиологии позволяют сегодня не только выяснить, насколько хорошо мы запоминаем информацию, но и изучить специфические изменения в работе клеток мозга, участвующих в процессе запоминания. Однако многие функции мозга, которые мы связываем с интеллектом, все еще остаются тайной. Примером могут служить такие интеллектуальные операции, которые лежат в основе научных открытий, изобретательской деятельности, сочинения стихов или музыки. Что же нам известно об устройстве мозга? Как работает мозг, решая те или иные задачи? Современный ответ на эти вопросы читатель может найти в специальной научной литературе. Поэтому мы ограничимся кратким описанием важнейших функций мозга. Для определенности рассмотрим интеллектуальный процесс, которым вы заняты в данный момент. Этот процесс — чтение. Бго можно разложить на ряд взаимосвязанных операций: восприятие и распознавание знаков на странице, соединение этих знаков в слова, осознание смысла слов и предложений, переворачивание прочитанной страницы и т. п. Концентрируя внимание на книге, вы более или менее отвлекаетесь от сенсорной информации, поступающей в мозг по другим каналам. Например, вы можете не слышать шума проходящих за окном машин или тиканья часов. В то же время мозг выполняет ряд операций, связанных с внутренней регуляцией вашего организма (контроль дыхания, поддержание определенного кровяного давления и температуры тела и т. п.). Анализируя деятельность мозга в различных ситуациях, можно выделить следующие основные его функ- 93
ции: ощущение, движение, внутренняя регуляция и адаптация. Сочетание этих функций обусловливает «разумность» поведения и управления организмом. Ощущения порождаются сенсорными сигналами, поступающими от пяти органов чувств, с помощью которых мы воспринимаем внешний мир. Это органы зрения, слуха, вкуса, осязания и обоняния. Бсть еще «внутреннее» чувство равновесия. Бго «носителем» является вестибулярный аппарат. Это чувство обеспечивает нам контроль движения и ориентации в пространстве. Мозг перерабатывает поступающую сенсорную информацию и управляет движением тела, осуществляя одновременно регулирование работы внутренних органов. Движения подразделяются на произвольные (управляемые), которыми можно управлять по желанию, и непроизвольные (рефлекторные), которые такому управлению не поддаются. Произвольными являются движения конечностей, корпуса, шеи, глаз, лица, губ и языка, управляемые мозгом. Непроизвольными — внутренних органов (легкие, желудок, сердце и т. п.), регулируемые рефлекторно. Они осуществляются бессознательно, и вы практически не можете на них влиять. Например, вы никогда не задумываетесь над регулированием температуры тела — это происходит автоматически. Бели же возникает необходимость защиты организма от переохлаждения или перегрева, то вы прибегаете к управляемым движениям — выполняете физические упражнения, переодеваетесь и т. п. Окружающая нас среда все время изменяется. Поэтому приходится приспосабливаться (адаптироваться), чтобы выжить или сохранить работоспособность. Эти функции также берет на себя наш мозг. Он вспоминает, как мы вели себя в аналогичных ситуациях, вырабатывает стратегию преодоления возникающих на нашем пути препятствий и т. п. Если адаптация приводит к устойчивым изменениям в 94
поведении, мы называем это научением. По мере адаптации наши поведенческие возможности расширяются. С накоплением опыта многие реакции, адекватные той или иной ситуации, становятся почти бессознательными. Так, например, мы раскрываем зонтик, если идет дождь. Таким образом, наш мозг позволяет нам чувствовать внешний мир, целенаправленно двигаться в нем, осуществляя внутреннюю регуляцию и адаптацию к изменениям условий. Подобными функциями обладает и мозг животных. Сравнивая структуру и функции мозга человека и животных, мы можем обнаружить много общего. Однако возникает естественный вопрос: в чем уникальность человеческого мозга? Ответ на этот вопрос связан с высокоразвитой способностью человека решать сложные задачи обработки информации, т. е. с его интеллектом. Благодаря этой способности человеку присущи такие психические акты, как мысли и озарения, мечты и надежды. В прежние времена считалось, что эти явления связаны не с мозгом, а с некоей нематериальной субстанцией, называемой сознанием. Однако научные исследования показали, что «сознание» возникает в результате совместного функционирования клеток мозга подобно тому, как пищеварение есть результат совместных действий клеток пищевого тракта. Мопг гат: тгомттт то^~ Интеллект человека реализуется с помощью процессов, происходящих в определенных частях мозга. Но их локализация и алгоритм функционирования при решении задач интеллектуального характера остаются в значительной степени неизвестными. Тем не менее современная нейробиология располагает рядом научных сведений об организации и особенностях функционирования мозга. Согласно этим сведениям, процесс переработки информации но- 95
сит иерархический характер. Информация поступает от «низших» подсистем периферической нервной системы и спинного мозга в «высшие» (такие, как кора больших полушарий). Отчасти известны и функции, выполняемые на разных уровнях иерархии. Однако современное знание о мозге еще недостаточно для объяснения процесса мышления во всех деталях. Известна метафора: мозг — это компьютер. Она основывается на том, что электронные компоненты компьютера, перерабатывая информацию, «распознают» (дешифрируют) различные сигналы, отфильтровывают ненужные и обрабатывают те из них, на работу с которыми они запрограммированы. Клетки мозга тоже проявляют электрическую активность, а их совокупности представляют собой функциональные подсистемы. Поэтому их можно рассматривать как живые транзисторы, образующие большие интегральные схемы (БИС), предназначенные для выполнения интеллектуальных функций. На стыке двух наук -*- компьютерной информатики и нейробиологии — зародилось новое научное направление, получившее название «искусственный интеллект». Оно нацелено на создание методов и средств решения интеллектуальных задач с помощью компьютеров. В рамках этого направления одни ученые пытаются заложить в компьютер «интеллектуальные» программы для решения сложных задач обработки информации, а другие — воспроизвести в компьютере предполагаемые структуры и процессы обработки информации в мозге. Современные компьютеры способны решать задачи обработки информации, которые раньше мог решать только мозг человека. Они делают это быстро, безупречно и неустанно. Однако алгоритмы, которые реализует компьютер, обычно не имеют ничего общего с алгоритмами, используемыми мозгом. Тем не менее 97
компьютеры могут стать (и уже стали) помощником человека при решении интеллектуальных задач. В результате у человека будет больше времени для того, чтобы решать наиболее сложные задачи обработки информации. Например, он сможет совершенствовать компьютеры, используя их на этапе проектирования как электронных компонент, так и программного обеспечения. Этим определяется важность исследований в области компьютерного интеллекта. Однако по своей природе мышление представляется чем-то таким, что свойственно только человеческому мозгу. Поэтому оно выступает как своеобразный эталон интеллектуальной деятельности. Интеллектуальные функции мозга, какими бы сложными они ни были, в конечном счете можно объяснить на основе взаимодействия структурных компонент мозга. Следовательно, они познаваемы и могут быть промоделированы на компьютере. Мышление и компьютерный интеллект. Прошло около трех десятилетий с тех пор, как академик А. Н. Колмогоров предсказал: «В принципе автоматы могут обладать всеми основными свойствами самых сложных систем и даже человеческого мозга». Этот вывод выдающегося советского математика и одного из основоположников кибернетики указывает на принципиальную разрешимость проблемы создания компьютерного интеллекта. Он вдохновил многих исследователей искусственного интеллекта на углубленный научный поиск в этом новом научном направлении. Один из ведущих американских специалистов в этой области — академик М. Минский писал: «Когда говорят о проблеме искусственного интеллекта, имеют в виду создание машин и программ для них, способных решать задачи, которые мы считаем интеллектуальными». 98
Что же представляют собой интеллектуальные задачи и как оценить интеллект компьютера? Какой смысл мы вкладываем в понятие «искусственный интеллект»? Поставить эти вопросы гораздо проще, чем дать на них конструктивный ответ. Прежде всего нужно разобраться, что мы подразумеваем под термином «интеллект». Однако даже специалисты, занимающиеся изучением мозга и мышления, затрудняются точно и однозначно определить это понятие. Хорошим подспорьем здесь может послужить уточнение понятия «интеллектуальная задача». Для этого целесообразно исключить из класса интеллектуальных такие задачи, для которых заранее известен точный алгоритм решения. В рамках такого подхода к неинтеллектуальным задачам можно отнести многие задачи чисто вычислительного характера — решение системы линейных алгебраических уравнений, численное интегрирование дифференциальных уравнений и т. д. Для их решения имеются стандартные алгоритмы. Они представляют собой определенную последовательность элементарных операций, которая может быть легко реализована в виде программы для компьютера. В противоположность этому для широкого класса задач интеллектуального характера, таких, как распознавание образов, игра в шахматы, доказательство теорем и т. п., формальное разделение процесса поиска решения на отдельные элементарные операции часто оказывается весьма затруднительным и неоднозначным. Последнее связано прежде всего с трудностью формального описания этих задач. Например, человек может отличить кошку от собаки или русскую речь от английской, но не даст формального описания соответствующего алгоритма распознавания. Тип задачи предопределяет алгоритм ее решений. В чем состоит специфика алгоритмов решения интел- 99
лектуальных задач? Рассмотрим в качестве примера алгоритм решения задачи на доказательство. Процесс решения этой задачи как результат интеллектуальной деятельности — есть доказательство, т. е. последовательность логических операций, начинающихся с условий задачи и заканчивающихся заключением — теоремой. При этом каждая операция приводит к некоторому новому положению, полученному из уже известных фактов (аксиом), или из ранее доказанных положений (лемм или теорем). Многие нематематические задачи можно себе представить в том же аспекте. Например, технологу при наладке производства нового изделия необходимо спланировать, скоординировать и уложить в согласованную схему множество операций: выбор и подготовку оборудования, формулировку конструктивных требований и ограничений, обоснование технологических маршрутов и т. п. Сверх того, в его обязанности может входить согласование этих технологических операций с операциями совершенно иного характера (финансовыми, экологическими, юридическими и т. п.). Все они взаимосвязаны й могут быть спланированы так, что в результате их осуществления будет получено требуемое изделие с нужными свойствами. Таким образом, чтобы решить «задачу на доказательство», необходимо составить хорошо скоординированную, согласованную схему операций (логических, математических или прикладных), начинающуюся с условий (предпосылок) и заканчивающуюся заключением (целью). Эта схема последовательно ведет от данных к неизвестному, от объектов, находящихся в нашем распоряжении, к объектам, которые нужно достичь. Решая интеллектуальные задачи, мы постоянно ищем пути и средства к достижению той или иной цели, пытаемся выработать какой-то план действий, 100
следуя которому можно достичь этой непосредственно недоступной цели. Именно способность к преодолению трудностей и препятствий, к нахожднию обходного пути к цели там, где нет прямого пути, отличает интеллектуальную деятельность от неинтеллектуальной. Она возвышает «умное» животное над «глупым», человека — над самым «умным» животным и гениальных людей — над другими людьми. Разумеется, интеллектуальная деятельность человека отличается от таковой у животных. Важнейшим отличием интеллекта человека является язык. С его помощью человек получает возможность значительно расширить свои интеллектуальные способности и класс решаемых задач. Однако и в жизни животных интеллектуальная деятельность также играет определенную роль, нередко определяя саму возможность их существования. Умение решать интеллектуальные задачи, т. е. способность целенаправленно преобразовывать поступающую информацию и имеющиеся знания, приобретается путем обучения на опыте, подобно, скажем, умению управлять автомобилем. Учась вождению, мы подражаем опытным автомобилистам в том, что они делают руками и ногами. При помощи упражнений мы вырабатываем у себя необходимые навыки вождения. Точно так же, учась решать задачи, мы наблюдаем и подражаем другим в том, как они это делают. При этом мы вырабатываем у себя соответствующие навыки путем упражнений, т. е. путем обучения на опыте. Заметим, что умение решать задачи гораздо важнее, чем одно чистое знание, хотя, конечно, без необходимых знаний невозможно и решение. Попытаемся теперь определить: что же такое интеллект? За основу возьмем следующий вариант определения. Интеллектом будем называть способность мозга ре- 101
шать интеллектуальные задачи путем приобретения, запоминания и целенаправленного преобразования знаний в процессе обучения на опыте и адаптации к изменяющимся условиям. В этом определении под термином «знания» мы подразумеваем не только ту информацию (непосредственные впечатления), которая поступает в мозг через органы чувств. Такого типа знания, конечно, чрезвычайно важны. Но сами по себе они недостаточны для интеллектуальной деятельности. Дело в том, что объекты окружающей нас среды не только воздействуют на органы чувств, но и находятся друг с другом в определенных отношениях. Ясно, что для эффективного осуществления в изменяющейся окружающей среде интеллектуальной деятельности необходимо иметь в системе знаний модель этой среды. В информационной модели среды реальные объекты, их свойства и отношения между ними не только отображаются и запоминаются, но и, как это отмечено в данном определении интеллекта, могут мысленно «целенаправленно преобразовываться». При этом существенно то, что формирование модели внешней среды происходит «в процессе обучения на опыте и адаптации к изменяющимся условиям». Деятельность мозга, направленная на решение интеллектуальных задач, представляет собой процесс мышления. Поэтому ее называют интеллектуальной. Интеллект и мышление органически связаны с решением таких задач, как доказательство теорем, логический анализ, распознавание ситуаций, планирование поведения, игры и управление в условиях неопределенности. Характерными чертами интеллекта, проявляющимися в процессе решения задач, являются способность к обучению, обобщению, накоплению опыта (знаний и навыков) и адаптации к изменяющимся условиям. Благодаря этим свойствам интеллекта мозг может ре- 102
шать разнообразные задачи, а также легко перестраиваться с решения одной задачи на другую. Таким образом, мозг, наделенный интеллектом, является универсальным средством решения широкого круга задач (в том числе неформализованных), для которых нет стандартных, заранее известных алгоритмов решения. Важно отметить, что приведенное выше определение интеллекта конструктивно в том смысле, что оно раскрывает основные черты механизма мышления. Следует иметь в виду, что существуют и другие, чисто поведенческие (функциональные) определения. Так, по А. Н. Колмогорову, любая материальная система, с которой можно достаточно долго обсуждать проблемы науки, литературы и искусства, обладает интеллектом. Другим примером поведенческой трактовки интеллекта может служить известное определение А.Тьюринга, данное им в 50-х гг. в книге «Может ли машина мыслить?». Оно основано на специально организованной «игре в имитацию» между людьми и машиной, которые находятся в разных комнатах, но имеют возможность обмениваться информацией (например, с помощью телеграфной связи). Если в процессе диалога между участниками игры людям не удается установить, что один из участников — машина, то такую машину можно считать обладающей интеллектом. Недостатком тьюринговского определения интеллекта является то, что в принципе можно разработать компьютер с полным набором решений на все возможные задачи. Такой компьютер для любой поставленной задачи просто находит в своей памяти соответствующее решение. По определению Тьюринга, он обладает интеллектом. Однако такое поведение компьютера явно не соответствует нашему интуитивному представлению о мышлении. Это наводит на мысль, что определение интеллекта должно содержать нечто, показы- 104
вающее, каким образом решаются интеллектуальные задачи. Этому требованию удовлетворяет наше определение. Оно, в частности, позволяет отличить лицо, творчески решающее задачу, от лица, заранее заучившего решение. Можно ли промоделировать интеллектуальную деятельность, а если можно, то как это сделать? Интересен план имитации мышления, предложенный А. Тьюрингом. «Пытаясь имитировать интеллект взрослого человека, мы вынуждены много размышлять о том процессе, в результате которого человеческий мозг достиг своего настоящего состояния... Почему бы нам вместо того, чтобы попытаться создать программу, имитирующую интеллект взрослого человека, не попытаться создать программу, которая имитировала бы интеллект ребенка? Ведь если интеллект ребенка получает соответствующее воспитание, он становится интеллектом взрослого человека... Наш расчет состоит в том, что механизм в мозге ребенка настолько несложен, что устройство, ему подобное, может быть легко запрограммировано... Таким образом, мы расчленим нашу проблему на две части: на задачу построения «программы ребенка» и задачу «воспитания этой программы». Сегодня многим ученым представляется несомненным, что компьютеры могут, в принципе, обладать всеми основными чертами интеллекта. Более того, современные компьютеры вместе с их алгоритмическим и программным обеспечением уже обладают, по крайней мере частично, этими чертами. Они легко справляются с решением отдельных интеллектуальных задач, и можно сказать, что они обладают элементами искусственного интеллекта. Таким образом, на вопрос «Могут ли компьютеры мыслить?» следует дать положительный ответ. При этом нужно исходить из того, что вопрос должен быть решен путем эксперимента, наблюдения и сравнения поведения компьютера с поведением челове- 105
ка в процессе решения интеллектуальных задач. Круг проблем, объединяемых термином «искусственный интеллект», достаточно широк. В самом общем смысле искусственный интеллект — это совокупность компьютерно-ориентированных алгоритмов и программ, обеспечивающих целенаправленную переработку информации (знаний) в соответствии с приобретаемым в процессе обучения и адаптации опытом при решении разнообразных интеллектуальных задач. Работы по созданию систем искусственного интеллекта на базе компьютеров находятся сейчас в начальной стадии. В основном такие системы существуют в виде «интеллектуализированных» компьютеров, способных изолированно решать такие задачи, как игра в шахматы или в другие интеллектуальные игры, сочинение музыки, доказательство математических теорем, диалог с человеком на естественном языке и т. д. Главная трудность при создании интеллектуальных систем состоит не в поиске элементов, из которых их можно построить, а в отыскании алгоритмов и логики совместной целенаправленной работы большого количества таких элементов. Возможности той или иной системы искусственного интеллекта в основном определяются заложенными в них алгоритмами и программами. Особенности же их технической реализации не имеют принципиального значения. Возможности компьютерного интеллекта (как, впрочем, и возможности интеллекта человека) далеко не безграничны. Это связано с тем, что объем памяти, скорость запоминания и считывания информации в компьютерах практически всегда ограниченны, вследствие чего не могут решаться интеллектуальные задачи высокой размерности или сложности. • Способность давать ответы на поставленные вопросы зиждется 106
на знаниях. Если нет достаточных знаний, то «ответчик» — будь то человек или компьютер — не может дать правильный ответ. Что же такое знания? Чем они отличаются от информации? Как представить знания в компьютере? Информация — это конкретные данные, которые могут быть закодированы с помощью двоичных символов. Предложенная в 1940 г. К. Шенноном мера количества информации определяется числом бит (двоичных символов), необходимых для кодирования данных, несущих эту информацию. Такая формальная трактовка понятия «информация», учитывающая вероятности появления каждого символа, плохо согласуется с нашими интуитивными представлениями. В самом деле, информационную ценность поступающих данных мы связываем с их неожиданностью и новизной. Бели же мы получаем данные, которыми уже располагаем, то они фактически не несут никакой информации. Кроме того, шенноновская мера информации ничего не говорит о содержании (смысле) данных и том интересе, которые они могут для нас представлять. «Что посеешь, то и пожнешь» — гласит пословица. Ее смысл многие скептики переносят и на возможности компьютеров в отношении обработки информации. Однако, вообще говоря, это неверно. В принципе, ничто не мешает компьютеру не только обрабатывать знания, но и создавать новые. Этот факт лежит в основе многих систем искусственного интеллекта и, в частности, экспертных систем. Задолго до появления компьютеров английский ученый А. Тьюринг в своем докладе на Лондонском математическом обществе в 1947 г. пророчески заявил: «Предположим, мы снабдили компьютер некоторым начальным набором таблиц команд, построенных таким образом, чтобы в случае необходимости таблицы мож- 107
но было модифицировать. Нетрудно представить, что, после того как компьютер поработает некоторое время, команды изменятся до неузнаваемости, но тем не менее следует считать, что компьютер по-прежнему выполняет необходимые вычисления. Возможно, это будут те результаты, на которые мы рассчитывали, запуская компьютер, но полученные гораздо более эффективным способом. Тогда придется признать, что такое достижение компьютера не было предусмотрено, когда мы закладывали в него первоначальные команды. Он — как ученик, который многое взял от своего наставника, но еще больше познал, работая самостоятельно. Когда произойдет такое, я думаю нам придется признать за машиной интеллект». Возможности частичного изменения команд и программ закладываются во многие современные компьютеры. Благодаря этому они могут обучаться на опыте и модифицировать свою базу знаний. Из чего же складываются знания? Обрабатывая данные, компьютер может путем преобразования информации формировать понятия и генерировать знания. Последние представляют собой определенным образом структурированную информацию, понятную человеку. Это может быть таблица, логическое описание данных или алгоритмическая модель. Обычно база знаний компьютера организуется в виде системы таблиц или понятий. Примером может служить база знаний на основе «консультационной таблицы», созданная югославским ученым И. Братко для анализа и игры в шахматы в эндшпиле. Введя эту таблицу, автор (сам он шахматный мастер) с удивлением обнаружил, что компьютер в результате преобразований сформировал шесть новых правил. Они оказались простыми, совершенно оригинальными и более удобными, чем те, которые изложены в шахматных учебниках. Тем самым доказано, 108
что компьютер может генерировать новые знания. Еще раньше этот факт был установлен при моделировании на компьютере процесса доказательства теорем из различных разделов математики. При этом компьютер не только находил новые способы доказательства известных теорем, но и доказывал новые. Для автоматического доказательства теорем использовались различные стратегии поиска логического вывода- Главный вывод, который вытекает из этих примеров, заключается в том, что компьютер может создавать знания не только для себя, но и для использования их человеком. Кроме того, и человек может закладывать знания в компьютер с целью автоматизации решения интеллектуальных задач. Эти принципиально новые возможности работы со знаниями нашли воплощение в экспертных системах. В качестве «сырья», подаваемого в такие системы, выступают знания экспертов, т. е. специалистов в той или иной области. Когда создавались первые экспертные системы, то казалось, что они будут просто консультантами по определенным вопросам. Однако вскоре выяснилось, что из них можно извлечь больше знаний, чем в них было заложено. В частности, оказалось возможным уточнять и систематизировать экспертные знания, которые зачастую носят нечеткий, обрывочный и непоследовательный характер. Экспертные системы обычно работают в двух режимах: идет формирование базы знаний и поиск ответов на вопросы. В первом режиме центральную роль играет эксперт и алгоритмист — инженер по знаниям. При этом эксперт выступает в качестве «учителя» экспертной системы, а инженер по знаниям формализует и вводит в компьютер знания и опыт эксперта. Во втором режиме с экспертной системой работает 109
I Пользователь Диалоговый интерфейс Автоматический ответчик (Система логического вывода) I Система обучения пользователь, извлекая из нее необходимые знания. В обоих режимах диалог с компьютером должен вестись на понятийном уровне, удобном для человека. Для этого нужны диалоговый интерфейс и специальные средства, позволяющие «культивировать» базу знаний, приспосабливая ее к нуждам и интересам пользователя. Среди них могут быть разного рода разъяснения, подсказки и т. п. Эти средства, реализуемые системой объяснений, являются отличительной чертой экспертных систем. Для расширения базы знаний в процессе решения задач служит система обучения. Ее часто называют также системой накопления знаний. 110
Структура экспертной системы представлена на рис. на с. 110. Ее важнейшие компоненты — база знаний, автоматический ответчик (или советчик) и система объяснений. Кроме того, в нее входят диалоговый интерфейс и система обучения. Рассмотрим основные функции этих компонент. База знаний содержит факты в форме утверждений и правила вывода. В утверждениях реализуются знания эксперта. Для их представления в компьютере часто используется исчисление предикатов, семантические сети и графы. Правила вывода служат для порождения из имеющихся утверждений новых. Этим определяется принципиальное отличие «интеллектуальной» базы знаний от обычной базы данных. Автоматический ответчик формирует ответ на поставленный пользователем вопрос или дает ему совет. Для этого зачастую используют средства поиска логического вывода или их модификации. Такие средства позволяют при необходимости воспроизвести способ «рассуждений» компьютера при формировании ответа. Эта возможность используется в системе объяснения. Последняя призвана разъяснить пользователю, КАК и ПОЧЕМУ получен данный ответ. Ее функционирование обычно сводится к повторному прослеживанию тех шагов вывода, которые привели к данному ответу. Легкость, с которой это достигается, является веским аргументом в пользу экспертных систем, основанных на средствах поиска логического (или правдоподобного) вывода. Необходимость системы объяснения подчеркивают многие специалисты. Исходя из сказанного, принцип действия экспертной системы можно условно представить в виде формулы: Знания $ вывод ответ V объяснение 111
Эта формула отражает интеллектуальный характер экспертных систем. Для их «логического программирования» наиболее приспособлен язык ПРОЛОГ, включающий в себе исчисление предикатов и логический вывод. Диалоговый интерфейс обеспечивает удобство общения эксперта, алгоритмиста или пользователя с системой. Система обучения накапливает знания в процессе решения задач. Это позволяет реализовать в экспертных системах давнюю мечту А. Тьюринга, выраженную в его словах: «Нам бы хотелось создать компьютер, который мог учиться на собственном опыте». Подводя итог сказанному, уместно спросить: что же представляет собой экспертная система? Вот как отвечает на этот вопрос группа специалистов из Британского компьютерного общества: «Экспертная система рассматривается как результат создания в компьютере компоненты, основанной на знаниях и навыках эксперта в такой форме, которая позволяет системе дать разумный совет или принять разумное решение о функции обработки данных. Желательной дополнительной компонентой, которую многие считают фундаментальной, является способность системы по требованию объяснить свой способ рассуждений в виде, непосредственно понятном тому, кто задал вопрос. Достижение таких свойств обеспечивается самим методом программирования с использованием правил». К прототипам современных экспертных систем можно отнести систему распознавания и прогнозирования градоопасности облаков (РПГО), разработанную автором в 1971 г. Эта система является частью действующей автоматизированной системы управления активными воздействиями на градоопасные облака. Она предназначена для автоматической классификации градоопас- ных и ливневых облаков с приблизительным прогнозом времени выпадения града. Результаты распознавания и прогноза используются далее для «расстрела» гра- 112
доопасных облаков специальными снарядами или ракетами. Это делается с целью превращения градовых облаков в ливневые, для предотвращения ущерба охраняемым сельскохозяйственным территориям. База знаний этой экспертной системы включает адаптивные решающие правила логико-вероятностного типа. Они формируются из предикатов, описывающих метеосиноптические и радиолокационные признаки облаков (температура, радиолокационная отражаемость, высота границ радиоэха и т. п.). Примером правила может служить утверждение вида ЕСЛИ у исследуемого облака | Р2<я2, Рб>яб, Р3<#з> Р^л^ ТО (с вероятностью 1) это облако градоопасно. Здесь Р. — значения измеряемых признаков, щ — пороговые значения. Пороги назначаются экспертом или вычисляются по обучающему материалу, включающему 600 наблюдений облаков на Северном Кавказе и в Закавказье. Метод синтеза решающих правил обеспечивает их полноту и непротиворечивость (в смысле безошибочности распознавания обучающего материала), минимальную сложность и робастность (способность принимать правильные решения при неточных измерениях параметров облаков). Предлагаемый подход приводит к простым, естественно интерпретируемым алгоритмам принятия классификационных решений, которые близки «логике» экспертов». Эти логические алгоритмы легко адаптируются к новым наблюдениям путем автоматического дообучения. Удобная форма представления адаптивных решающих правил (например, на экране графического дисплея) — распознающие графы типа «дерево решений»* Каждый узел на этом графе подсказывает, измерение каких признаков облаков нужно произвести на следующем шаге для быстрого ^принятия правильного решения. 113
Следует отметить, что именно медицина стала одной из первых и важнейших областей применения экспертных систем. Примерами могут служить система МИЦИН для диагностики некоторых инфекционных заболеваний и система ПАФФ для диагностики легочных заболеваний, созданные в США в середине 70-х гг. Практическое использование этих медицинских экспертных систем показало, что они надежно работают на уровне врачей-клиницистов. Сегодня экспертные системы широко используются в различных областях знаний. Среди них — автоматизация программирования и проектирования, консультации и обучение, техническая диагностика, анализ и интерпретация химических, геологических и других данных, синтез систем планирования и управления, анализ риска в политике и военном деле, предупреждение аварийных ситуаций в атомных реакторах и т. п. Интересно, что все большее внимание уделяется созданию экспертных систем для проектирования прикладных экспертных систем. Их можно назвать метасистемами. Доля экспертных систем в общем объеме прикладных систем искусственного интеллекта, по прогнозам специалистов, может составить в ближайшем будущем 90%. Нам привычен афоризм «Знание — сила». Он имеет глубокий смысл и в компьютерной информатике- На примере экспертных систем мы видим, что компьютерная база знаний превращается в производительную силу, обеспечивая решение многих интеллектуальных задач. Нас окружают колоссальные запасы знаний. Они сосредоточены в книгах, учебниках, журналах и других средствах «бумажной» информатики. Результаты многовековой интеллектуальной деятельности пылятся на книжных полках. Эти знания пассивны. Они нуждаются 114
в анализе, систематизации и упорядочении. Для этого могут служить информационно-справочные и экспертные системы по различным отраслям знаний. Специалисты по компьютерной информатике предсказывают, что в скором времени появится компьютерная индустрия знаний. Она позволит создавать многие базы знаний, содержащие достоверные и точные знания. - интеллекта робот©** Управление роботами сводится к автоматическому формированию и осуществлению целенаправленных движений в условиях неопределенности. Наряду с решением чисто двигательных задач робот должен уметь решать и задачи интеллектуальные. Уже сегодня имеется реальная потребность в адаптивных роботах с элементами искусственного интеллекта, обладающих способностью обучаться понятиям и распознавать классы объектов. Так, для речевого управления необходимо, чтобы робот мог распознавать отдельные фонемы или команды; для автономного функционирования в незнакомой обстановке робот должен распознавать препятствия и анализировать окружающую обстановку; для автоматической сборки изделий из деталей робот должен не только идентифицировать нужную деталь, но и определить ее местоположение и ориентацию. Кроме того, можно выделить способности робота к моделированию внешней среды, к логическому анализу сложных заданий, к планированию собственных действий и принятию решений. В ходе функционирования робота указанные элементы искусственного интеллекта тесно взаимодействуют и определяют режим работы системы управления движением, который можно назвать интеллектуальным. Многоуровневая иерархическая структура адаптивной системы управления робота с элементами искусственного интеллекта представлена на рис. на с. 117. Здесь выделены два главных уровня управления: стра- 115
тегический и тактический. На первом уровне решаются задачи принятия решений и планирования поведения робота, а также задачи распознавания и моделирования внешней среды. На втором уровне осуществляется планирование и программирование движений робота (с учетом информации, заключенной в модели среды), а также синтезируются алгоритмы управления движением с сенсорной обратной связью. Роботы рассматриваемого типа относятся к третьему поколению. Они предназначены для автономного функционирования в условиях, многие из которых могут быть неизвестны конструктору. Более того, эти условия могут существенно меняться в процессе выполнения роботом данных ему заданий. Поэтому весьма важное значение приобретают алгоритмические средства обучения и адаптации. Как видно из рис. на с. 116, эти средства должны использоваться на каждом уровне иерархии системы адаптивного управления. Только в этом случае можно гарантировать достижение роботом заданных целей в заранее неизвестных и меняющихся условиях. Остановимся более подробно на том, какие функции возлагаются на отдельные элементы интеллекта роботов и каковы алгоритмы, обеспечивающие их работу. Прежде всего заметим, что общение робота с человеком осуществляется в режиме диалога через систему связи, включающую интеллектуальный интерфейс. Для формулировки роботу заданий человек обычно использует язык заданий, представляющий собой упрощенную версию естественного языка. На первом уровне иерархической системы управления осуществляется планирование поведения робота и принятие соответствующих решений. Алгоритм этого уровня (обычно это логические алгоритмы поиска решений) на основе данного роботу задания, а также информации, получаемой от сенсорной системы и нижних 116
уровней иерархии, строит план действий, который ведет к достижению цели. Далее последовательно принимают решения об отработке отдельных операций, реализующих «запланированное» поведение робота. На втором уровне иерархии осуществляется распоз- 117
навание сигналов и объектов, а также формирование понятий и модели внешней среды. Алгоритмы этого уровня осуществляют обучение робота понятиям, распознавание и анализ ситуаций в соответствии с указаниями более высокого уровня. При этом существенно используется сенсорная информация. Полученные роботом знания обычно реализуются в форме семантических сетей, распознающих графов и адаптивных решающих правил. Эти формы представления знаний принято называть фреймами. Процесс распознавания роботом сигналов и анализа окружающей обстановки во многих случаях может быть сведен к поиску логического вывода. По мере формирования новых понятий в памяти робота автоматически строится и уточняется модель внешней среды. Эта информационная модель используется для организации и проведения «мысленных экспериментов» по выбору того или иного плана поведения робота еще до совершения им реальных действий. Алгоритмы третьего уровня осуществляют предварительное планирование и построение программных движений исполнительных механизмов робота с учетом конструктивных ограничений и препятствий. Здесь широко используются методы, оптимизации на графах и вариационные методы. Наконец, на четвертом (низшем) уровне синтезируются алгоритмы адаптивного управления приводами исполнительных механизмов. Они обеспечивают фактическое осуществление построенного (на более высоком уровне) программного движения при наличии динамических возмущений и факторов неопределенности. Все перечисленные уровни иерархии функционально связаны между собой и с сенсорной системой робота. Их согласованная работа обеспечивается координатором. Интеллектом робота будем называть способность его системы управления решать задачи интеллектуаль- 118
ного характера посредством целенаправленного преобразования сенсорной информации и знаний, накопленных в процессе обучения на опыте и адаптации к изменяющейся обстановке. Процесс обработки информации, направленный на решение роботом интеллектуальных задач, будем называть интеллектуальным управлением. Оно тесно связано с решением задач принятия решений, планирования поведения, формирования понятий, моделирования среды, логического анализа обстановки и распознавания ситуаций в условиях неопределенности. Характерными чертами интеллекта робота, согласно данному определению, являются его способность к формированию и переработке знаний, обучению на опыте и адаптации к заранее неизвестным и изменяющимся условиям в процессе решения задач. Благодаря этим качествам робот может решать самые сложные и разнообразные задачи, а также легко перестраиваться с решения одного класса задач на другой. Что же представляют собой элементы интеллекта роботов? Каковы их отличительные черты? В широком смысле это программно-аппаратные средства решения интеллектуальных задач, которые позволяют роботу выполнять операции, аналогичные функциям человека, занятого умственным трудом. Отличительным признаком интеллекта роботов является наличие баз данных и банков знаний, средств интерпретации и анализа задач, планирования их решений и принятия решений. Адаптивные роботы с элементами искусственного интеллекта стали своеобразным символом современной научно-технической революции. На Международной выставке ЭКСПО-85 в Японии были продемонстрированы их уникальные способности. Один из таких роботов блестяще удерживал в равновесии волчок, раскрученный на острие самурайского меча. Другой робот, «играя» с листа на электронном органе, показал незаурядное исполнительское мастерство. 119
Робот-музыкант по своей конструкции напоминает человека и снабжен элементами интеллекта. Он имеет две механические руки с пятью пальцами каждая, корпус и две механические ноги. Общее число суставов (степеней подвижности) равно 50. На месте головы этого антропоморфного робота установлена телевизионная система зрения и распознавания нот, а также акустическая система распознавания команд человека и синтезатор речи. Система адаптивного управления робота-музыканта имеет иерархическую структуру. На нижнем уровне этой системы осуществляется управление 50 микропроцессорами, встроенными в электроприводы суставов. На более высоких уровнях — автоматическое программирование и координация движения рук, пальцев, корпуса и ног в соответствии с планом игры, формируемым на основе распознавания и анализа нот. При этом учитывается не только содержание нотной записи, но и ключ произведения, тональность, темп и т. п. На этой же выставке интеллектуальные возможности роботов продемонстрированы в получасовом шоу «Фантазия 2001 г». Финалом этого представления явился парад роботов. Прощаясь со зрителями, роботы назначали им свидание в 2001 г. Так фантастическое в мире роботов и искусственного интеллекта сегодня сливается с реальностью. тта „у,„ ж.- ™*,^ . ^^, ->.,„. т™ ^«™ w.™.^««. Необходимость создания интеллектуальных компьютеров осознана давно. Как мы уже отмечали, важную роль здесь сыграли пророчества А. Тьюринга. Он не только предсказал в конце 40-х гг. неизбежность появления интеллектуальных компьютеров, но и указал конкретные пути достижения этой цели. Однако первые проекты интеллектуальных компьютеров появились лишь через 30 лет. 120
В конце 1978 г. Министерство внешней торговли и промышленности Японии выделило средства для разработки проекта интеллектуальных компьютеров под названием «Пятое поколение». Практическая работа над проектом началась в 1982 г. под руководством X. Кара- цу. Формулируя новые требования к интеллектуальным компьютерам, он писал: «...люди — существа мягкие. Поэтому много неприятностей может возникнуть у этих мягких существ при взаимодействии с твердыми компьютерами. С этой точки зрения компьютер пятого поколения должен работать так, чтобы во всем соответствовать человеку, в противоположность сложившейся ситуации, когда человек должен осваивать компьютер, подлаживаясь под него». Исходя из этого был сделан вывод о том, что компьютерам пятого поколения необходимы: интеллектуальный интерфейс, системы поиска логического вывода, средства представления знаний, системы управления базами знаний, системы понимания речи и интерпретации изображений, системы логического и интеллектуального программирования, а также ряд принципиально новых аппаратных и программных средств. Сложность задач, возлагаемых на интеллектуальные компьютеры, требует распараллеливания процессов обработки информации. Поэтому каждый такой компьютер будет включать несколько компьютеров, специализирующихся на выполнении отдельных важнейших функций. Производительность компьютеров пятого поколения оценивается числом шагов логического вывода в секунду (ЛВС). Каждый такой шаг соответствует 102— 105 элементарных операций в секунду. Намечаемая производительность интеллектуальных компьютеров составляет 109 ЛВС. Важным достижением в реализации этого проекта на первом этапе является разработка персонального 121
последовательного компьютера вывода PSI. Он создан в 1983 г. фирмой Мицубиси и использует язык логического программирования ПРОЛОГ. В дальнейшем предполагается разработать компьютер с параллельной обработкой знаний. Значительные результаты получены в области автоматического распознавания и синтеза изображений и речи. Вслед за Японией разработкой проекта компьютеров пятого поколения занялась Англия. Ее правительство проголосовало за выделение 350 млн. фунтов стерлингов для финансирования этих работ в течение 5 лет. Вслед за этим 12 ведущих компьютерных фирм из Англии, Франции, ФРГ, Италии и Голландии разработали в 1983 г. программу ESPRIT (Европейская стратегическая программа исследований информационной технологии), включающую разработку компьютеров пятого поколения. Аналогичные работы проводятся в рамках стратегической компьютерной программы США. «Комплексная программа научно-технического прогресса стран—членов СЭВ до 2000 г.» также предусматривает разработку интеллектуальных компьютеров с быстродействием более 10 млрд. операций в секунду. Интеллектуализация компьютеров включает два взаимосвязанных аспекта: внутренний и внешний. Внешняя интеллектуализация связана с разработкой все более совершенных моделей, алгоритмов и программ решения интеллектуальных задач. Одновременно развивается и внутренняя интеллектуализация. Она направлена в первую очередь на создание принципиально новой элементной базы компьютеров, разработку их архитектуры, адекватной характеру и сложности интеллектуальных задач, и т. п. Современные достижения по этим вопросам настолько велики, что можно говорить о начале настоящей компьютерной революции в сфере научно-технического прогресса. Сегодня она коснулась задач 122
умеренной сложности, которые могут быть решены уже имеющимися алгоритмами и программными средствами на базе персональных и профессиональных компьютеров. Однако жизнь выдвигает интеллектуальные задачи очень большой сложности. Они предъявляют к компьютерам такие требования, которым даже лучшие из действующих образцов могут удовлетворить лишь частично. Поэтому назрела потребность в ускоренной интеллектуализации компьютеров. Успехи микроэлектроники позволили собрать все компоненты компьютера (процессор, память и т. п.) на одной плате. Более того, сегодня созданы компьютеры на одном кристалле — так называемые транспьютеры. Это открыло принципиально новую возможность создавать интеллектуальные компьютеры на базе большого числа микрокомпьютеров и транспьютеров. В них реализуются принципы параллельной обработки информации, обеспечивающие резкое повышение эффективности решения сложных задач интеллектуального характера. Опыт эксплуатации многопроцессорных компьютеров показал, что возможность одновременного использования большого числа процессоров для решения сложных интеллектуальных задач очень важна. Но чем больше быстродействие такого компьютера, достигаемое за счет распараллеливания его архитектуры, тем уже класс алгоритмов обработки знаний, которые в ней эффективно реализуются. Отсюда видно, что внутренняя интеллектуализация компьютеров тесно связана с внешней. Появление многопроцессорных компьютеров с динамически изменяемой архитектурой заставляет пересмотреть весь алгоритмический арсенал решения интеллектуальных задач. Возникает необходимость в согласовании структуры алгоритмов со структурой компьютера, в создании распараллеленных трансляторов и 123
других программных средств. Колоссальные возможности увеличения быстродействия и эффективности компьютеров заключены не только в «распараллеливании» их архитектуры и алгоритмов обработки информации, но ив создании принципиально новой элементной базы. Ярким примером, иллюстрирующим эту мысль, могут служить оптические компьютеры. Уже создан основной элемент таких компьютеров — оптический аналог транзистора. В нем передача информации осуществляется не электрическими токами, а оптическими лучами. Идея создания оптических компьютеров интенсивно разрабатывается с 70-х гг. Ее реализация весьма заманчива, так как быстродействие таких машин будет почти в тысячу раз выше, чем у обычных электронных компьютеров. По оценкам специалистов, недалеко то время, когда будет создан оптический компьютер с быстродействием в один триллион A012) операций в секунду. Это связано с тем, что время переключения даже самого быстродействующего современного транзистора превышает одну наносекунду A0~9 с), а у оптического транзистора (трансфазора) оно составляет одну пикосекунду A0~12 с). При этом один и тот же трансфазор может выполнять логические операции И, ИЛИ и НЕ — в зависимости от подводимых к нему пучков света. Трансфазоры позволяют распараллелить обработку информации. Например, в одном кристалле можно сделать несколько оптических каналов, образуемых разными лазерными пучками. Операции, выполняемые в каждом канале, могут быть разными. Это достигается модуляцией лазерных пучков. Если модулированные пучки во всех каналах образовать от одного сигнала, то с этим сигналом можно одновременно произвести несколько логических операций. Применение оптических элементов может привести 124
и к другим изменениям конструкции и логической организации компьютеров. Например, могут найти применение элементы, имеющие не два, а много устойчивых состояний. Для программирования компьютеров с такими элементами потребуются методы многозначной логики, удобные для реализации нечетких алгоритмов и трудно формализуемых знаний. Однако не следует думать, что оптические компьютеры сразу придут на смену электронным. Сейчас создаются разного рода гибридные компьютеры, в которых наряду с электронными большими и сверхбольшими интегральными схемами используются и оптические элементы. Например, для связи между процессорами и компьютерами все шире используются оптические волокна. Они позволяют мгновенно передавать колоссальные объемы информации. Весьма перспективно применение оптических элементов и процессоров для обработки видеоинформации и знаний, заключенных в изображениях. Вместо заключения Вот и закончилась наша экскурсия в мир информатики и компьютерного интеллекта. Мы познакомились с основными понятиями, идеями и достижениями в этой увлекательной области. Стало очевидным то, что поначалу казалось невероятным или сомнительным. В частности, мы убедились, что уже сегодня компьютерная информатика стала мощным инструментом, способным облегчить нам решение многих сложных задач, связанных с обработкой информации. Она быстро развивается в направлении интеллектуализации компьютеров и создания на этой основе прикладных систем искусственного интеллекта. 125
Знакомясь с последними достижениями науки в этой области, мы увидели, как сложен и высоко организован компьютерный «разум». Однако он очень своеобразен и так же далек от нашего собственного разума, как компьютер от мозга. Тем не менее современные средства компьютерной информатики позволяют решать многие интеллектуальные задачи. В этом смысле они имитируют процессы мышления, освобождая нас от многих видов умственного труда. Однако от понимания принципиальной возможности моделирования процессов обработки информации в нашем мозгу до создания по-настоящему мыслящих компьютеров еще далеко. Компьютерная информатика находится в самом начале этого пути. Трудно предсказать, сколько времени он займет и к каким последствиям приведет. Ясно одно — компьютерная информатика уже многое изменила в нашей жизни и обещает радикально перестроить наше будущее. Информатика и компьютерный интеллект стали производительной силой и катализатором научно-технического прогресса. Их бурное развитие в интересах человека нельзя остановить. Наоборот, нужно делать все возможное для ускоренного развития в этой новой и многообещающей области.
Содержание К читателю модели и алгоритмы решения задач Что такое информатика? ~> Задачи и модели компьютерной информатики Детерминированные и адаптивные алгоритмы Алгоритмы решения интеллектуальных и творческих задач Представление данных и программирование компьютеров Формы представления и кодирования данных 23 Способы записи и реализации алгоритмов '11 Языки программирования 31 Компьютер — исполнитель программ 34 -.. .......л* и «физиология» персональных компьютеров Заглянем «под капот* персонального компьютера 36 Паспортные данные компьютера :;0 Внешние устройства — лицо, руки и уши компьютера 44 Операционная система — дирижер операций ,„ Пакеты прикладных программ Базы данных и программы управления >г> Операционные оболочки 56 Компьютерные «вирусы* и «болезни» Ьи Индустрия компьютерной информатики Компыотеростроение — новая отрасль промышленности 63 Генеалогическое дерево персональных компьютеров IBM PC 65 Компьютеры и информатика Персональные компьютеры в школе Учебные классы роботов и средств автоматизации 72 Подготовка специалистов в области автоматизации 75 и проектирование Диалог между конструктором и компьютером Особенности диалогового проектирования Базы знаний и данных проектирования ни Интеллектуальные терминалы и машинная графика 85 Интеллект человека, компьютера и робота Что делает мозг? 90 Мозг как компьютер 95 Мышление и компьютерный интеллект v>8 Обработка знаний и экспертные системы 106 Элементы интеллекта роботов На пути к интеллектуальным компьютерам l i^O Вместо заключения 125
Тимофеев Адиль Васильевич Информатика и компьютерный интеллект ДЛЯ ДЕТЕЙ И ЮНОШЕСТВА Художник Ю. П. Мартыненко Заведующий редакцией A. А. Чуба Редактор BL BL Габисоння Младший редактор Е. В. Клннкова Художественный редактор B. П. Храмов Технические редакторы C. BL Жданова, Т. Г. Иванова Корректор В. Е. Воронцова ИВ М 1556 Сдано в набор 27.04.90. Подписано в печать 26.09.90. Формат 70ХЮ8'/з2. Бумага офсетная Ht 1. Печать офсетная. Гарнитура школьная. Усл. печ. л. 5,6. Уч.-изд. л. 5,62. Усл. кр.-отт. 22,925. Тираж 200 000 экз. Заказ № 1276. Цена 85 коп. Издательство «Педагогика» Академии педагогических наук СССР и Государственного комитета СССР по печати 119034, Москва, Смоленский бульвар, 4. Ордена Трудового Красного Знамени Тверской полиграфический комбинат Государственного комитета СССР по печати 170024, г. Тверь, пр. Ленина, 5.
85 Читайте следующую книгу серии «Ученые — школьнику* Что такое бизнес? Когда и как он появился? Как повлиял на развитие капиталистической системы? Какими качествами должен обладать человек «делового мира»? Может ли он стать союзником перестройки? Советский бизнесмен: миф или реальность? На эти и другие вопросы отвечает книга доктора экономических наук Н. В. Волкова «Сто страниц о бизнесе». ИЗДАТЕЛЬСТВО «ПЕДАГОГИКА»