Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Сознание машин. Алгоритмическое моделирование

2017-12-09 394
Сознание машин. Алгоритмическое моделирование 0.00 из 5.00 0 оценок
Заказать работу

Вверх
Содержание
Поиск

Если Вы, уважаемый читатель, дошли до этих строк, то автор может считать, что не зря трудился. Автор надеет­ся, что ему удалось показать, какую роль в нашей жизни и науке играют алгоритмы. Мы их встречаем везде и всегда, даже в музыке (здесь ноты — это алгоритмы).

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

При первом знакомстве с алгоритмами мы обратили внимание на определенную связь между ними и протекаю­щими вокруг нас процессами. Автор сразу предупредил, что связь не является абсолютной. Когда мы глубже вникли в существо понятия алгоритма, то обнаружили, что один и тот же алгоритм может вызывать ра?личные процессы, ведущие к одинаковым результатам при одинаковых ис­ходных данных.

Впоследствии мы применили алгоритмы для описания процессов. Это может быть методом алгоритмизации, если процесс для нас безразличен. Но это становится способом фиксации процессов в тех случаях, когда для нас важны процессы как таковые.

Нежесткая связь между процессами и алгоритмами дает возможность улучшения хода или содержания некоторых шагов процессов, автоматизации их, повышения эффектив­ности.

Являясь математической дисциплиной, теория алгорит­мов в отличие от некоторых дедуктивных, абстрактных разделов математики непосредственно изучает определен­ные явления реального мира. Ее следует отнести к так на­зываемой прикладной математике.

На страницах этой книги неоднократно упоминался основной тезис теории алгоритмов. Обычно он связывался с традиционными теориями избранных алгоритмов. Как звучит этот тезис, если иметь в виду широкое формальное определение алгоритма, мы уже сказали, но все же повто­рим.

Основной тезис. Для любого алгоритма (в ин­туитивном смысле) над формальным языком L, если его запись можно рассматривать как конструкцию, существует эквивалентный ему алгоритм в широком формальном смысле, имеющий ту же запись.

Это означает, что современная теория алгоритмов охва­тывает все практически важные случаи. Ее дальнейшие обобщения связаны с обобщением понятия конструкции. Сегодняшние потребности теории ЭВМ и программирования

она может обеспечить.

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

Из широкого формального определения алгоритма вы­текает, что алгоритм не только может, решая задачу, перерабатывать свою запись, но может перерабатывать и запись своего алгоритма выполнения. Для этого нужно более отчетливо вспомнить его «папу» (алгоритм выпол­нения), который тоже алгоритм и имеет своего «папу», приходящегося нашему алгоритму «дедушкой». Это значит, что, работая, алгоритм выполнения может перерабатывать и себя. Обозначая исходное данное через sit j, алгоритм— через tt, а результат—через рг_ }, можем составить формулу из которой указанная возможность и вытекает.

Применяя это соображение к ЭВМ, в 1977 г. (в 1-м из­дании данной книги) мы пришли к выводу о возможности машины, которая обладала бы «способностью» перестраи­ваться, если этого требует программа. Появление таких машин теперь — свершившийся факт.

В § 1 данной главы мы почти допустили возможность мышления машин. Но наша книга посвящена не машинам, а алгоритмам. Сформулируем же упомянутую проблему в терминах теории алгоритмов. Очевидно, вопрос ставится не о том, чтобы любая машина мыслила, а о возможности создания такой машины, для которой можно составить программу мышления. Если отвлечься от ограниченности ресурсов времени и ЗУ, вопрос упрощается: достаточно, чтобы машина была универсальной (типа ЭВМ).

Мы знаем, что ЭВМ являются физическими моделями коллективов алгоритмов. Теперь представим себе условия, в которых обычно находится мыслящий человек. Он рас­полагает некоторыми сведениями, хранящимися у него в мозге; оперируя ими, он по мере надобности обращается к внешним источникам — книгам, справочникам, задает воп­росы другим людям; кроме того, он, может быть, получает сведения путем экспериментов. В конце концов он создает некоторый результат своего мышления. Для упрощения можно считать, что мышление производится без привлече­ния экспериментов. Правда, с самого начала мы приняли еще одно упрощение: ограничились случаем, когда мышле­ние протекает «в тиши кабинета», тогда как нередко чело­век мыслит, находясь во взаимодействии с изменяющимся реальным миром. Между мыслящим человеком и коллекти­вом алгоритмов напрашивается чисто внешняя аналогия. То, что хранится у человека в мозге (его знания),— подоб­но основному операнду; сведения, получаемые извне по мере надобности, подобны потокам частных операндов(см. конец § 10 гл. 8); действия, совершаемые мозгом, напоминают нам процесс выполнения открытого коллектива алго­ритмов. Очень упрощая картину, можно предположить, что дополнительные сведения собраны заранее в некоторой информационной системе (см. § 2 гл. 10) без обновления, присоединяя которую к открытому коллективу алгорит­мов, мы превращаем его в закрытый. В аналитической тео­рии алгоритмов доказано, что каждый закрытый коллектив алгоритмов эквивалентен некоторому одиночному алго­ритму.

Таким образом, в самом простом случае проблема воз­можности мышления машин сводится к вопросу возмож­ности разработки алгоритма, эквивалентно моделирующего работу мозга. Мозг (и даже мозг всех людей) хранит конеч­ный объем сведений и существует конечное время. Не бу­дет грубой ошибкой, если мы посчитаем, что сведения хра­нятся в мозге в форме символьной конструкции (реализо­ванной физически или, если хотите,— биологически). Су­ществует только конечное число символьных конструкций, которые могут быть размещены в ЗУ конечного размера (т. е. в мозге и в информационной системе). Таким образом, перед нами задача о построении алгоритма, входной язык операндов которого конечен. Такая задача алгоритмически разрешима, но только потенциально. Реально ее разрешить методом алгоритмизации нельзя из-за ее большой трудоем­кости.

Но сделанные нами упрощения слишком велики. Алго­ритм мышления, который мы получим, будет слишком при­митивен. Он будет эквивалентен поиску ответа в некото­ром справочнике (хотя и в очень большом). Можно также сказать, что мы решим задачу алгоритмизации только уже осуществленного мышления, что не представляет интереса. Проблема станет тем интереснее, чем привлекаемая ин­формационная система будет допускать обновление инфор­мации. Но даже и в этом случае она остается сильно «уре­занной» из-за того, что набор дополнительных операндов фиксирован. Впрочем, алгоритм мышления, справляющий­ся со своей задачей, в последнем усложненном случае уже «умнее» каждого из породивших его людей, имевших в сво­ем мозге те сведения, которые являются допустимым ос­новным операндом. Остается открытым только один воп­рос: возможен ли такой алгоритм?

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

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

Действительно, можно себе представить, что основной операнд открытого коллектива алгоритмов состоит из двух частей, одна из которых является символьной моделью самой ЭВМ (или коллектива алгоритмов), а другая - символьной моделью той части реального мира, которая "известна" машине. Такая пара моделей чем-то похожа на сознание (в том узком смысле, в котором мы условились понимать сознание). Здесь в своих обсуждениях проблемы алгоритмического моделирования сознания мы остановимся, потому что эта проблема выходит за рамки нашей книги. Она очень интересна, но упомянута только для того, чтобы обратить внимание читателя на так называемое алгоритмическое (или программное) моделирование.

Поясним сущность понятия модели. Предположим, что имеется некоторый объект, подлежащий исследованию. Назовем его прототипом. Моделью прототипа называется любой объект, так соответствующий прототипу, что описание некоторых его свойств можно перевести в описание тех свойств прототипа, которые нас интересуют. Моделями пользуются тогда, когда исследование самого прототипа слишком сложно или почему-то невозможно. Как видно из этого описания, модель не является копией прототипа (хотя и это возможно), а в такой мере ему соответствует, что исследование некоторых свойств прототипа можно заменить исследование некоторых (вообще говоря, других) свойств модели. Первоначально модели применялись только в технике. Например, перед тем как строить какое-либо сооружение, сперва изготовляли его уменьшенную модель из удобного для этого материала. Модель испытывали и по результатам судили о свойствах будущего сооружения. Немного позже было замечено, что прототип и его модель допускают одно и то же математическое описание или их математические описания могут быть с помощью некото­рого преобразования сведены одно к другому (требуется, чтобы описание модели можно было свести к описанию прототипа).

Наконец поняли, что самое математическое описание прототипа можно считать его моделью (математической). Эта простая мысль явилась результатом длительных ис­следований и размышлений. Сейчас ее справедливость не вызывает сомнений! Математическую теорию моделей мож­но найти в книгах по абстрактной алгебре и в книгах по математической логике. Абстрактная алгебра утверждает, что модель — это множество, на котором задана некоторая совокупность отношений. Логика рассматривает модели систем аксиом — множества, элементы которых таковы, что свойства этих элементов удовлетворяют указанным аксиомам и следствиям из них. Мы видим уже три различ­ных определения математической модели. Два последних являются частными случаями первого. Повторим его: ма­тематической моделью прототипа называется некоторое его математическое описание. Это математическое описание может быть произведено различными математическими средствами. В частности, описание прототипа может быть алгоритмическим, а если оно рассчитано на применение ЭВМ, то — программным.

При алгоритмическом моделировании модель имеет две компоненты: символьную конструкцию из класса некото­рых символьных конструкций и алгоритм или коллектив алгоритмов. Программная модель обычно имеет еще неко­торые компоненты: программу внесения изменений в сим­вольную конструкцию (хранящуюся в запоминающих уст­ройствах) и программу обработки результатов моделиро­вания. При программном моделировании могут встретиться два вида моделей — функциональные и имитационные.

Функциональные модели строят для моделирования од­них алгоритмов в виде других. Например, можно одну ЭВМ, являющуюся, как уже известно, физической моделью алгоритма, моделировать на другой. При этом функцио­нальной моделью первой ЭВМ будет программа второй. В более простом случае алгоритмическая модель эквива­лентна прототипу. В более сложных случаях функциональ­ная модель не эквивалентна, а, как говорят,— равносиль­на прототипу. В первом случае исходные данные и результаты прототипа и модели соответственно одинаковы, во вто­ром случае известен простой прием преобразования исход­ных данных прототипа в исходные данные моделирующего алгоритма и результатов моделирующего алгоритма в ре­зультате прототипа. Программное моделирование такого вида является одним из средств, используемых при разра­ботке ЭВМ и сложных программных комплексов.

Имитационное моделирование применяется для иссле­дования различных процессов путем их условного воспроиз­ведения, при котором каждый шаг процесса-прототипа за­меняется одним или несколькими шагами моделирующего алгоритма. Алгоритмическое описание процессов (см. § 3 гл. 10) является частным случаем имитационного моделиро­вания. Большой интерес представляет так называемое статистическое моделирование, при котором имитация процесса сводится к вычислению какого-либо параметра или ряда параметров, изменяющихся при функционирова­нии прототипа и записи получаемых значений. После того как произведено большое число имитаций при соответствую­щих изменениях имитации, полученные результаты подвер­гаются статистической обработке точно так же, как обычно обрабатывают результаты эксперимента. Статистическое имитационное моделирование иногда позволяет обойтись без дорогостоящих опытов. § 4. Последние замечания

В заключение данной книги скажем несколько слов о вопросах, относящихся к области мировоззрения и являю­щихся по отношению к аналитической теории алгоритмов предварительными. Эти вопросы уже были очень коротко затронуты в § 5 гл. 3 и в § 3 гл. 5. Там упоминалось, что теория алгоритмов является основой конструктивного направления в обосновании математики. Сразу отметим, что конструктивные идеи в математике не сводятся к теории алгоритмов, которая лишь наиболее последовательна в этом отношении. Ограничимся только теорией алгоритмов.. В теории алгоритмов основой для получения всевозмож­ных конструктивных объектов являются некоторые перво­начальные объекты. Математического обоснования их кон­структивности нет. С таким же правом их можно считать и неконструктивными. Доматематическое их обоснование заключается в том, что их практическое существование или (если это операции) практическая возможность их выпол­нения ни у кого не вызывают сомнения. В логических теориях алгоритмов первоначальными являются буквы, сло­ва и некоторые операции (например, в теории нормальных алгоритмов — марковские подстановки); первоначальной является также способность преобразовывать любую сим­вольную конструкцию в слово. Вопрос о том, откуда берут­ся слова-операнды ни явно, ни неявно не затрагивается. В аналитической теории алгоритмов первоначальными являются буквы, связи, и натуральные операции. Символь­ные конструкции из букв и связей получаются уже сред­ствами теории (поэтому в состав теории алгоритмов вхо­дит раздел о формальных языках). Понятие актуальной бесконечности ни явно, ни неявно не привлекается. Разно­чтения символьных конструкций тоже нет. Доматематическим их обоснованием является признание существо­вания реального мира, абстрактными образами объектов и процессов которого являются символьные конструкции и алгоритмы. Применяемые языки поэтому наделены смыслом. Способность преобразовывать любую символьную конст­рукцию в слово не считается первоначальной и обеспечивает­ся возможностью ограниченного применения произвольного выбора из конечного числа элементов (в процессе произ­вольной нумерации с последующим получением результа­тов всех возможных нумераций и выбора из них одного, лексикографически не старше всех других).

Конечно, не запрещается математику изучать аналити­ческую теорию алгоритмов без того, чтобы задумываться о реальном мире, хотя это и нельзя одобрить. Точно так же не запрещается, изучая логическую теорию алгоритмов, считать, что слова являются описаниями реальных объек­тов. Но логическая теория алгоритмов даже не намекает на какой-нибудь способ описания объектов в виде слов, тогда как аналитическая теория такие намеки делает. На­пример, для описания объектов напрашивается применение приема, называемого структуризацией, который предусматривает расчленение объекта на составные части — более простые объекты, к которым опять применяется тот же прием, и так до тех пор, пока не будет получена конструк­ция, построенная с помощью связей из таких простых объектов, какие мы уже умеем представлять в виде сим­вольных конструкций. Точно так же сложные операции конструируются из натуральных путем построения алго­ритмов.


[1] Детское питание.— М.: Госторгиздат, 1963, с. 107.

[2] Заводчиков П. А. и др. Справочная книга по собаковод­ству.— М.: Сельхозиздат, 1960, с. 152.

[3] Кулинария,— М.: Госторгиздат, 1955, с. 626.

[4] Мерло А. С. Советы цветоводам.— Минск, 1965, с. 20.

[5] Машковский М. Д. Лекарственные средства, т. 1,— М.: Медицина, 1972, с. 200.

[6] Например, алгоритмы, имеющие один-единственный вариант исходных данных.

[7] При теоретических исследованиях приходилось бы каждый Газ, встречаясь с алгоритмом, убеждаться, что свойство массовости налицо.

[8] Д а л ь В. И. Толковый словарь живого великорусского язы­ка.— М., 1955.

[9] Групповые имена иначе называются собирательными. Примером может служить групповое имя «кошка», объединяющее в себе «сибир­ских кошек», «среднерусских кошек», «сиамских кошек» и т. д. Предель­ным случаем группового имени является индивидуальное имя, обозначающее отдельный предмет (например, «Мурка» или «Васька»). В мате­матической логике групповые имена называют предметными перемен­ными.

[10] Эта аксиома принципиально не может быть проверена на практи­ке, так как говорит о поведении прямых на протяжении всей их беско­нечной «длины».

[11] Н. И. Лобачевский положил, что через точку, лежащую вне прямой, можно провести более чем одну прямую, параллельную данной.

[12] То есть частью, которая не совпадает со всем множеством.

[13] Аргументов нет, поэтому в скобках ничего не стоит.

[14] А, А. Марков ввел понятие «нормального алгорифма», Термин «ал­горитм» вместо «алгорифм» получил широкое распространение лишь за последние 15—20 лет,

[15] Давать имя несуществующему объекту — самое обычное дело. Таким именем, например, является слово «черт».

[16] Пятая аксиома Евклида гласит, что через точку, лежащую вне данной прямой, можно провести только одну прямую, параллельную данной (т. е. лежащую с ней в одной плоскости и не пересекающую ее при неограниченном продолжении). Такое утверждение принципиально непроверяемо, потому что неограниченное продолжение прямых не­возможно осуществить из-за ограниченности наших реальных возмож­ностей.

[17] Операция называется п-местной, если выполняется над операн­дами. Например, возведение в квадрат x2 — одноместная, а сложение х+у —двухместная операция.

[18] Операции перехода изменяют порядок выбора очередной коман­ды, определяемый в п. 3. Существуют две такие операции. Их сущность описана в пп. 10—13.

[19] Для других программных процессоров структура команд может быть иной.

[20] Кроме а, b, с, мы вводим в ЭВМ числа z =2 и у=0, чтобы, приме­няя машинные операции, получать величины 4, 2а,b.

[21] Вместо α и β применяются x1 и х2 для того, чтобы печать ре­зультатов предписать одним и тем же п. 6.

[22] См., например: Криницкий Н. А., Миронов Г, А., Фролов Г. Д. Программирование и алгоритмические языки,— М.: Наука, 1979.

[23] Тезаурус ( τησαυροζ - греч.) — сокровище.

[24] Если исполнителем будет человек, то таким состоянием является внание того, выполнено или нет условие.

 

[25] Например, что наличие алгоритма W является математическим содержанием требования понятности алгоритма t (см, § 4 гл, 1),

[26] Устоявшейся терминологии пока что нет. В разных описаниях систем математического обеспечения применяется самая разнообразная терминология, поэтому автор выбрал терминологию по своему вкусу.

[27] Точный алгоритм определения наилучшего хода при игре в шах­маты существует и известен, но для получения одного только хода тре­бует сотен лет. Будет ли когда-нибудь получен эквивалентный ему ре­ально осуществимый алгоритм?

[28] Строгое описание языка логических схем см. в книге: Криницкий Н. А. Программирование и равносильные преобразования.— М.: Сов. радио, 1970.

[29] О равносильных преобразованиях см.: Криницкий Н. А. Программирование и равносильные преобразования.— М.: Сов. радио, 1970.

[30] Очень коротко о сложности в этом смысле см. книгу: Трахтенброт Б. А. Алгоритмы и вычислительные автоматы.— М.: Сов, радио, 1964.


Поделиться с друзьями:

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.044 с.