Вы находитесь на странице: 1из 5

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное


учреждение высшего образования
«Ярославский государственный университет им. П.Г.Демидова»

Реферат
по дисциплине «История и философия науки»
«Проект пятого поколения (Япония). История его создания и причины неудачи.»

по направлению подготовки
09.06.01 Информатика и вычислительная техника

профиль
«Математическое и программное обеспечение вычислительных машин,
комплексов и компьютерных сетей»

Проверил: В. А. Башкин
Аспирант: А. Ю. Полетаев
д.ф-м.н., профессор
« » 2021 г.

оценка за реферат
подпись
« » 2021 г.

Ярославль 2021
1 Предпосылки и задачи проекта пятого поколения.
Проект пятого поколения — попытка создания саморазвивающейся вычислительной системы, предпринятая в
Японии в 1980-е годы. Считается общепринятым, что вычислительная техника в своём развитии прошла (и
проходит) следующие важные этапы (поколения):

1. Процессоры на вакуумных лампах — «первое поколение», с 1940-х до 1955 г. г.


2. Процессоры на транзисторах — «второе поколение», с 1955 по 1965 г. г.
3. Процессоры на интегральных схемах — «третье поколение», с 1965 по 1980 г. г.

4. Микропроцессоры — с 1980-х г. по настоящее время.

Кроме очевидного различия в материальной базе, ключевое различие между компьютерами различных по-
колений (обуславливающее соответствующие скачки практической применимости) заключается в возможностях
производительности компьютеров разных поколений. Если компьютеры первого поколения имели производи-
тельность, измеряющуюся в килогерцах (например, ENIAC выполнял 100 тысяч операций в секунду), и зани-
мали иногда целое здание, то компьютеры следующих поколений становились всё более компактными (а, соот-
ветственно, дешёвыми) и более производительными и надёжными (здесь особенно «печальной» была ситуация
с постоянно перегорающими вакуумными лампами). Следовательно, каждое поколение знаменовало собой каче-
ственное изменение стоимости процессорного времени, и, соответственно, скачок возможностей для применения
вычислительной техники в различных областях экономики.
К середине 1970-х годов Япония, в целом восстановившись после разрушений Второй Мировой войны, и, что
не менее важно, имея развивающуюся высокотехнологичную экономику, всё ещё занимала в области вычисли-
тельной техники позиции, далёкие от лидерских, и практически не имела возможностей это изменить, поскольку
практически все успехи японской промышленности в области вычислительной техники были обусловлены ко-
пированием западных (в первую очередь — американских) разработок, и не были поддержаны собственными
научными прорывами. В то же время, японская экономика требовала масштабной компьютеризации, но этот
процесс тормозился сложностями обработки текста на японском языке из-за его достаточно сложной граммати-
ки, принципиально отличной от индоевропейских языков (а, следовательно, и от английского).
Японское правительство в лице министерства международной промышленности и торговли уже имело опыт
крупных инновационных проектов в области вычислительной техники — «Системы сверхвысокой степени инте-
грации» и «Проекта суперкомпьютера». Тем же министерством для качественного рывка экономики был ини-
циирован проект создания «Компьютерной системы пятого поколения» (англ. FGCS).
Поскольку одной из главнейших задач было сделать компьютер более «приближенным» к человеку (в част-
ности, для ещё более широкого применения компьютеров в экономике, особенно в японской), новую систему
предполагалось построить по образцу человеческого мозга (к этому моменту нейрофизиологами уже были от-
крыты и описаны нейроны и их сети), т. е. состоящей из множества отдельных вычислительных узлов, свободно
обменивающихся информацией и каким-то образом «накапливающих» знания.
Пожалуй, не будет преждевременным уточнить, что организовать хранение информации в FGCS предполага-
лось не как у гайдзинов, в классической файловой системе, а в распределённой базе данных. Предполагалось, что
с помощью формулировки последовательных запросов к расширяющейся базе данных система сможет делать
выводы из данных (те самые «знания»).
Соответственно, именно эта возможность — последовательное самообучение и саморазвитие — по мнению
авторов проекта FGCS, и должна была обеспечить требуемый результат.

1
2 Попытка реализации проекта
Реализация проекта началась в 1978 г., когда было созвано специальное совещание с участием как организаторов
проекта — министерства международной торговли и промышленности, так и представителей науки и высоко-
технологичных фирм. На основе этого совещания в 1979 г. был учреждён Главный Комитет по компьютерам
пятого поколения.
В состав Главного Комитета входили три подкомитета:

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

1. 1982–1984 г. г. — исследование базовых технологий для будущем использовании в FGCS.

2. 1985–1988 г. г. — разработка алгоритмов, необходимых для реализации субсистем будущей FGCS и создание
базовой архитектуры FGCS.
3. 1989–1992 г. г. — создание прототипа FGCS на основе технологий, разработанных на первых двух этапов.
4. 1993–1994 г. г. — доработка прототипа и разработка программных продуктов для него.

Первый этап был завершён достаточно успешно, как с точки зрения научного результата, так и с точки зрения
экономической целесообразности. Об использовании для хранения информации баз данных в этом реферате уже
упоминалось, тем не менее, остановимся на этом ещё раз. Базы данных (в первую очередь будем подразумевать
реляционные), безусловно, обладают своими недостатками для хранения информации, тем не менее, они практи-
чески идеально подходят для хранения структурированной информации и, что не менее важно, удобного доступа
к ней. Конечно, не предполагалось, что части FGCS не будут иметь файловой системы совсем (во всяком случае,
первоначально), т. к. необходимость где-то хранить те же драйверы никто не отменял. Базы данных интересны
тем, что запрос к ним для, например, получения какой-либо информации может быть сформулирован на языке,
достаточно близком к естественному (вспомним, что к 1980-м годам SQL ещё только-только зародился, не успел
обрасти всяческими «наворотами», и его синтаксис был весьма близок к английскому языку). Таким образом,
у разработчиков компьютера пятого поколения была надежда, что, если компьютер «обучится» естественному
языку, то и запросы к базе данных он сможет формулировать на естественном языке.
В то же время, исследователями было замечено, что четыре предыдущих поколения компьютеров отличались
между собой не только по используемой материальной базе и по производительности, но и по используемым язы-
кам программирования. Так, первое поколение компьютеров поддерживало работу только на языке «чистых»
машинных команд и на языке ассемблера, во времена второго поколения появились первые языки программи-
рования высокого уровня (такие как Lisp и Fortran); третье поколение ознаменовалось зарождением процедур-
ного программирования (самыми известными представителями которого можно назвать C и Pascal ), четвёртое
же принесло новые широко распространённые парадигмы — объектно-ориентированное программирование и
абстрактные типы данных. По мнению участников проекта пятого поколения, новое поколение компьютеров
должно также, соответственно, нести с собой и новую парадигму программирования. В качестве такой пара-
дигмы было выбрано логическое программирование, а нового языка программирования, на основе которого и
начнётся развитие нового компьютера — Prolog.
Необходимо сказать несколько слов об языке Prolog и логическом программировании в целом. Несмотря на то,
что данные концепции не являются общеиспользуемыми, и никогда таковыми не были, они являются по меньшей
мере интересными. Приведём пример программы на языке Prolog, решающего известную задачу о размещении
8 ферзей на доске так, чтобы они не «били» друг друга:

2
can_place(_, []) :- !. % пустая доска — подходящее размещение
can_place(q(R,C),Board) :- member(q(Ra,Ca), Board), abs(Ra-R) =:= abs(Ca-C), !, fail.
% ферзя можно разместить на новой горизонтали так,
% чтобы он не занимал ни одну диагональ, на которой уже есть ферзь
can_place(_,_). % размещение найдено, если ни одна диагональ
% не занята двумя ферзями одновременно

queens([], [], Board, Board). % найдём одно решение


queens([q(R)|Queens], Columns, Board, Solution) :-
nth0(_,Columns,C,Free), can_place(q(R,C),Board), % найдём все решения
queens(Queens,Free,[q(R,C)|Board], Solution). % рекурсивно

queens :-
findall(q(N), between(0,7,N), Queens), findall(N, between(0,7,N), Columns),
findall(B, queens(Queens, Columns, [], B), Boards),
length(Boards, Len), writef(’%w solutions:\n’, [Len]),
member(R,Boards), reverse(R,Board), writef(’ - %w\n’, [Board]), fail.
queens.

Конечно, к настоящему времени читаемость языков сильно улучшилась, и на любом Python можно написать
куда более удобочитаемый код, однако, стоит обратить внимание, что логическое программирование представ-
ляет собой не описание последовательности инструкций, которые нужно выполнить компьютеру, не описание
сущностей, существующих в пространстве абстракций программы, и даже не описание преобразований, через
которые проходят исходные данные (как, соответственно, в процедурном, объектно-ориентированном и функ-
циональном программировании). Программа представляет собой описание некоторых закономерностей, по сути,
правил, по которым можно определить истинность или ложность некоторых высказываний (и, возможно, приме-
нить это знание ещё в каких-либо правилах. Важной особенностью является то, что эти правила могут писаться
на вполне себе человеческом языке, а не на языке машинных инструкций.
Тесная концептуальная связь логического программирования и компьютерной системы пятого поколения
станет ещё более явной, если посмотреть на то, как в Prolog организована может быть организована работа
с базами данных. Это, а также то, что Prolog разрабатывался во Франции, а не в США, послужило главной
причиной выбора Prolog в качестве основного языка программирования в проекте пятого поколения.
В то же время, при всех своих достоинствах, Prolog, как и логическое программирование вообще, обладает
некоторыми критичными недостатками, напрямую проистекающими из достоинств. Самым важным является
его не слишком высокая скорость работы и сложность распараллеливания этой работы. Это привело к первой
серьёзной проблеме проекта пятого поколения — потребовалась разработка специальной реализации Concurrent
Prolog, которая, с одной стороны, вызвала отставание проекта от графика, а, с другой — даже эта реализация
всё равно оставалась достаточно медленно работающей.
С другой стороны, на втором этапе выяснилось, что искуственный интеллект не самозародится сам по себе,
если просто сымитировать структуру мозга с помощью некоторого количества вычислительных узлов, и выдать
этим узлам сколь угодно большой объём информации. Самообучение, в виде анализа данных и подстройки
ответов под них — происходило, но вот сам создавать новые алгоритмы для себя, то есть саморазвиваться по-
настоящему, компьютер оказался неспособен. В попытках исправить эту проблему прошло некоторое время, за
которое (к середине 1990-х г. г.) появилось, с одной стороны, новое поколение процессоров (знаменитое семейство
x86), решившее огромную часть проблем массового обеспечения вычислительной техникой, а, с другой, зародился
Интернет, который позволял пусть не обрабатывать, но хранить и произвольно дополнять огромный объём
информации. В силу этих причин разработка проекта пятого поколения была прекращена.

3
3 Причины провала проекта
Не претендуя на полноту данной секции, тем не менее, остановимся на основных причинах неудачи проекта
пятого поколения.
Для начала рассмотрим, на чём должен был (по замыслу инициаторов) основываться успех проекта:

• обработка знаний, получение новых знаний по данным


• распределённые вычисления

Рассмотрим каждую из этих двух составляющих в отдельности.


В первую очередь, рассмотрим обработку знаний и получение новых знаний. Авторами проекта предпола-
галось, что достаточно дать машине изначальный толчок и научить её обращаться к данным и делать по ним
некоторые выводы, а дальше развитие произойдёт само. На практике же оказалось, что да, определённый вывод
из данных возможно сделать программно, однако, невозможно программно сделать вывод о том, как делаются
выводы (во всяком случае, так, чтобы качество этого «умения делать выводы» оказалось хотя бы сравнимым с
человеческим). Говоря более профессионально, компьютер может выполнить программу, и сделать это успешно
(иначе зачем он нужен!), компьютер может на основании одной программы модифицировать или создать дру-
гую программу (и не только если речь идёт о компилировании, автогенерация кода тоже имеет место быть), но
вот если программа начнёт модифицировать сама себя — то чем серьёзнее будет эта модификация, тем быстрее
модифицированная программа перестанет быть осмысленной (т. е. делать то, что требуется, приносить какую-то
пользу). Начавшийся в 2010-е годы бум искуственных нейронных сетей, в принципе, подтверждает эту идею
— ИНС, да, способна подстраиваться под доступные данные, но эта подстройка, во-первых, примитивна (т. е.
даже незначительное изменение данных приведёт к тому, что ИНС придётся полностью перестраиваться), а,
во-вторых, не позволяет выйти за границы заданной архитектуры — ИНС не может при необходимости «отрас-
тить» себе ещё несколько слоёв нейронов, например. Таким образом, скорее всего, для запуска саморазвития
было необходимо сначала каким-то образом научить компьютер пятого поколения учиться (скорее всего, разра-
ботав и реализовав весьма нетривиальный комплекс алгоритмов), для чего, в свою очередь, потребовались бы
гораздо большие, чем мы обладаем сейчас, знания в области нейрофизиологии и психологии.
Другой стороной является распределённая работа с большими данными. Проблемы в этой области появи-
лись, безусловно, не сами по себе (сама эта область, как показало будущее развитие вычислительной техники,
более, чем перспективна. Главная проблема появилась из-за использования языка Prolog как основного в проекте
пятого поколения. Как уже упоминалось ранее, логический код из-за огромного количества абстракций над ма-
шинными инструкциями крайне плохо оптимизируется и распараллеливается, а разработка параллельной версии
затянулась надолго, что, с одной стороны, тормозило эксперименты, а, с другой, приводило к неоправданным
финансовым затратам.
Подводя итог, можно сделать вывод о том, что проект пятого поколения в своём виде (т. е. без заранее про-
работанной теоретической базы в области саморазвивающихся программ) был, фактически, обречён на неудачу
в силу комбинации факторов «не происходящее обучение» и «низкая скорость обработки информации». В то же
время, если смотреть на ситуацию из 2021 года, можно заметить, что цель обеспечения распределённых вычисле-
ний была достигнута в скором времени после старта проекта, когда появился Интернет. Следовательно, можно
предположить, что, если бы инициаторы проекта пятого поколения отказались бы от идеи обработки знаний
(что дало бы возможность отказаться от Prolog в пользу более производительного языка) и сконцентрировались
бы на идее создания крупной распределённой системы, то мы бы сейчас выходили бы не в Интернет, а в Нетсуто.

Список литературы
[IFS] ICOT Free Software,
https://web.archive.org/web/20050410164726/http://www.icot.or.jp/ARCHIVE/Museum/IFS/
[Rosetta] Rosetta Code: N-Queens Problem
http://rosettacode.org/wiki/N-queens_problem#Short_version_3
[ODAG] Одагири X., Накамура Е., Сибая М.
Исследовательский консорциум как база для проведения фундаментальных исследований: на примере про-
екта компьютера пятого поколения (Япония).
[MHLP] Carl Hewitt. Middle History of Logic Programming

Вам также может понравиться