Четверг, 25 апреля, 2024

Как Аристотель создал компьютер, а также почему для доказательства 1+1=2 требуется 300 страниц

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

Хотя история компьютеров часто рассказывается как история объектов, от счета Бэббиджа до машин для взлома кодов во времена Второй мировой войны, на самом деле ее лучше понимать как историю идей. Главным образом идей, возникших по математической логике – непонятной и культовой дисциплине, впервые возникшей в 19 веке.

Математическая логика была начата философами-математиками, особенно Джорджем Булем и Готлобом Фреге, которые сами были вдохновлены мечтой Лейбница об универсальном «языке понятий» и древней логической системой Аристотеля.

Математическую логику сначала считали безнадежно абстрактным предметом, не имеющим никаких практических применений. Как прокомментировал один ученый: «Если бы в 1901 году талантливого и участливого аутсайдера призвали исследовать науку и назвать отрасль, которая будет наименее плодотворной в следующем столетии, его выбор вполне мог бы остановиться на математической логике».

И все же она обеспечит основу для отрасли, которая будет иметь большее влияние на современный мир, чем любая другая.Эволюция информатики от математической логики достигла кульминации в 1930-х годах с двумя знаковыми статьями: Клодом Шенноном «Символический анализ коммутационных и релейных схем» и Алланом Тьюрингом «Об вычисляемых числах, с применением к проблеме решений».

В истории информатики Шеннон и Тьюринг являются выдающимися фигурами, но значение предшествовавших им философов и логиков часто не замечается.

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

Его советник Ванневар Буш создал прототип компьютера, известного как дифференциальный анализатор, который мог бы быстро вычислять дифференциальные уравнения. Устройство было по большей части механическим, с подсистемами, управляемыми электрическими реле, поскольку еще не существовало систематической теории, лежавшей в основе электрических схем. Тема дипломной работы Шеннона возникла, когда Буш посоветовал ему попытаться открыть такую ??теорию.

Статья Шеннона во многом является типичной электротехнической работой, наполненной уравнениями и схемами электрических цепей. Необычно то, что основной ссылкой была работа по математической философии 90-летней давности — «Законы мысли» Джорджа Буля.

Сегодня имя Буля хорошо известно компьютерщикам – многие языки программирования имеют базовый тип данных, который называется Boolean. Но в 1938 году его редко читали вне философских факультетов.

Сам Шеннон познакомился с трудом Буля на студенческом курсе философии. «Просто так случилось, что никто другой не был знаком с обеими сферами одновременно», — прокомментировал он позже.Буля часто описывают как математика, но он видел себя философом, подражая Аристотелю. «Законы мысли» начинаются с описания его целей – исследовать фундаментальные законы работы человеческого разума:

«Цель следующего трактата состоит в том, чтобы исследовать фундаментальные законы тех операций разума, посредством которых выполняются соображения; чтобы выразить их символическим языком исчисления и на этой основе основать науку логики… и, наконец, собрать… некоторые вероятные намеки на природу и структуру человеческого разума», – писал Буль.

Затем он отдает должное Аристотелю, изобретателю логики, и главному влиянию на его собственную работу:

«В своей античной и схоластической форме предмет логики действительно связан почти исключительно с большим именем Аристотеля. Так как это было представлено древней Греции в частично технических, частично метафизических исследованиях «Органона», таким, почти не внеся никаких существенных изменений, оно сохранилось до наших дней», — писал он.

Попытка усовершенствовать логическую работу Аристотеля была интеллектуально смелым шагом. Логика Аристотеля, изложенная в его книге Органон из шести частей, занимала центральное место в научном каноне более 2000 лет.

Распространено было мнение, что Аристотель написал почти все, что можно было сказать на эту тему. Великий философ Иммануил Кант заметил, что со времен Аристотеля логика была «неспособна сделать ни одного шага вперед, и потому, казалось бы, она окончена и завершена».

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

  •  Все люди смертны.
  •  Сократ – человек.
  •  Следовательно, Сократ смертен.

Вы можете заменить Сократ на любой другой объект, а смертный на любой другой предикат, и аргумент останется действительным. Достоверность аргумента определяется исключительно логической структурой. Логические слова — «все», «есть», есть» и «следовательно» – выполняют всю работу.

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

  • Объект является тем, чем он является (Закон тождества)
  • Ни одно утверждение не может быть одновременно истинным и ложным (Закон непротиворечивости)
  • Каждое утверждение или истинно, или ложно (закон исключенной середины)

Эти аксиомы не имели целью описать, как люди на самом деле думают (это было бы сферой психологии), а то, как должен мыслить идеализированный, абсолютно рациональный человек.Аксиоматический метод Аристотеля повлиял на еще более известную книгу Евклида «Начала», которая по количеству изданий, по оценкам, уступает только Библии.

Хотя «Начала» (известные еще как «Элементы» якобы касаются геометрии, они стали стандартным учебником для обучения строгим дедуктивным соображениям. Авраам Линкольн однажды сказал, что он научился надежной юридической аргументации, изучая Евклида.

В системе Евклида геометрические идеи были представлены как пространственные диаграммы. Геометрия продолжала практиковаться так, пока Рене Декарт в 1630-х годах не показал, что геометрия может быть представлена ??в виде формул.

Его Дискурс о методе был первым математическим текстом на Западе, который популяризировал то, что сейчас является стандартным алгебраическим обозначением — x, y, z для переменных, a, b, c для известных величин.

Алгебра Декарта позволила математикам выйти за пределы пространственной интуиции и манипулировать символами с помощью определенных формальных правил.

Это изменило доминирующий способ математики с диаграммами на формулы, что привело, среди прочего, к развитию математического анализа, изобретенного примерно через 30 лет после Декарта независимо друг от друга Исааком Ньютоном и Готфридом Лейбницем.

Целью Буля было сделать для аристотелевской логики то, что Декарт сделал для евклидовой геометрии: освободить ее от ограничений человеческой интуиции, придав ей точную алгебраическую нотацию.

Простой пример. Когда Аристотель писал: все люди смертны. Буль заменил слова «люди» и «смертный» на переменные, а логические слова «все» и «есть» на арифметические операторы: x = x * y.Что можно интерпретировать как «Все в наборе x также есть в наборе y».

Законы мышления создали новую научную область — математическую логику, которая в последующие годы стала одной из самых активных сфер исследований для математиков и философов. Бертран Рассел назвал «Законы мысли» трудом, в котором была открыта чистая математика.

Шеннон пришел к выводу, что систему Буля можно отразить непосредственно на электрических схемах. В то время электрические схемы не имели систематической теории, руководящей их проектированием. Шеннон понял, что правильная теория будет «точно аналогична вычислению предложений, которое используется в символическом исследовании логики».

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

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

Объединив эти схемы сумматора вместе можно создавать произвольно сложные арифметические операции. Эти схемы станут основными строительными блоками того, что сейчас известно как арифметические логические устройства – ключевой компонент современных компьютеров.

Другим способом охарактеризовать достижения Шеннона является то, что он первым различил логический и физический уровень компьютеров. Это отличие стало настолько фундаментальным для информатики, что современным читателям может показаться странным, насколько революционным оно было в то время — напоминание о поговорке, что «философия одного столетия — это здравый смысл следующего».

После статьи Шеннона был достигнут значительный прогресс на физическом уровне компьютеров, включая изобретение транзистора в 1947 году Уильямом Шокли и его коллегами из Bell Labs.

Транзисторы – это значительно усовершенствованные версии электрических реле Шеннона? — наиболее известного способа физического кодирования булевых операций.

В течение следующих 70 лет полупроводниковая промышленность упаковывала все больше и больше транзисторов во все меньшие размеры. iPhone 2016 года имеет около 3,3 миллиарда транзисторов, каждый из которых является «реле», подобным изображенным на диаграммах Шеннона.В то время как Шеннон показал, как отразить логику в физическом мире, Тьюринг показал, как проектировать компьютеры на языке математической логики.

Когда в 1936 году Тюринг писал свою статью, он пытался решить проблему принятия решений, которую впервые определил математик Дэвид Гильберт. Последний спросил, существует ли алгоритм, который мог бы определить, является ли произвольное математическое утверждение истинным или ложным.

В отличие от статьи Шеннона, статья Тюринга является высокотехнической. Его главное историческое значение заключается не в ответе на проблему решения проблемы, а в шаблоне для компьютерного проектирования, который он предоставил на своем пути.

Тьюринг работал по традиции, тянущейся к Готфриду Лейбницу-философскому гиганту, разработавшему вычисление независимо от Ньютона. Среди многих вкладов Лейбница в современное мнение одним из наиболее интригующих была идея нового языка, которую он назвал «универсальной характеристикой».

Она, как он воображал, могла бы представлять все возможные математические и научные знания. Частично вдохновленный религиозным философом 13-го века Рамоном Луллем, Лейбниц предположил, что речь будет идеографической, как египетские иероглифы, за исключением того, что символы будут соответствовать «атомарным» концепциям математики и науки.

Он утверждал, что этот язык даст человечеству «инструмент», который мог бы улучшить человеческий разум «в гораздо большей степени, чем оптические инструменты», такие как микроскоп и телескоп.

Он также вообразил машину, которая могла бы обрабатывать язык, который он назвал calculus ratiocinator. Если бы возникли споры, то спор между двумя философами превратился бы в спор двух бухгалтеров.Ибо достаточно было бы взять в руки карандаши и сказать друг другу: Calculemus — давайте посчитаем.

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

Первая серьезная попытка воплотить мечту Лейбница была в 1879 году, когда немецкий философ Готлоб Фреге опубликовал свой знаковый трактат по логике Begriffsschrift.

Вдохновленный попыткой Буля усовершенствовать логику Аристотеля, Фреге разработал гораздо более совершенную логическую систему. Логика, которую сегодня преподают на уроках философии и информатики — логика первого порядка или предикатов — лишь незначительная модификация системы Фреге.

Фреге считается одним из важнейших философов 19 века. Среди прочего ему приписывают катализатор того, что известный философ Ричард Рорти назвал «лингвистическим поворотом» в философии.

Поскольку философия Просвещения была одержима вопросами знания, философия после Фреге стала одержима вопросами языка. Среди его учеников были два величайших философа 20-го века — Бертран Рассел и Людвиг Витгенштейн.

Главное новшество логики Фреге состоит в том, что она гораздо точнее представляет логическую структуру обычного языка. Помимо всего прочего, Фреге первым использовал кванторы (для каждого, есть) и отделил объекты от предикатов. Он также был первым, кто разработал то, что сегодня является фундаментальными понятиями в информатике, например рекурсивные функции и переменные с областью действия и связыванием.

Формальный язык Фреге, то, что он назвал своим «скриптом понятия, ? состоит из нелепых символов, которыми манипулируют четко определенные правила. Языку придается значение только через интерпретацию, которая специфицируется отдельно — это позже будет названо синтаксисом против семантики.

Это превратило логику в то, что выдающиеся информатики Аллан Ньюэлл и Герберт Саймон назвали «игрой символов», в которую играют бессмысленными токенами в соответствии с определенными чисто синтаксическими правилами.

Как иронизировал Бертран Рассел: «Математику можно определить как предмет, в котором мы никогда не знаем, о чем мы говорим, и правда ли то, что мы говорим».

Неожиданным следствием работы Фреге явилось открытие слабых мест в основах математики.

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

Один относительно простой пример. В обычном употреблении слово «линия» означает, что если вам даны три разных точки на линии, одна точка должна быть между двумя другими. Но когда вы определяете «линию» с помощью формальной логики, оказывается, что «между» также нужно определить то, что Евклид не заметил. Формальная логика позволяет легко заметить такие пробелы.

Это осознание породило кризис в основе математики. Если элементы? — «библия математики» — содержали логические ошибки, в каких еще областях математики они были? А как насчет таких наук, как физика, которые были построены на основе математики?

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

Математики начали восстанавливать основы математики снизу вверх. В 1889 году Джузеппе Пеано разработал аксиомы для арифметики, а в 1899 году Давид Гильберт сделал то же самое для геометрии. Гильберт также очертил программу формализации остальной математики с конкретными требованиями, которым должна удовлетворять любая такая попытка, в частности:

  • Полнота: должно быть доказательство того, что все истинные математические утверждения могут быть доказаны в формальной системе.</li>
  • Возможность решения: должен существовать алгоритм определения истинности или ошибочности любого математического утверждения.(Это «проблема принятия решения», упомянутая в статье Тюринга)

Перестройка математики таким образом, чтобы она удовлетворяла эти требования, стала известна как программа Гильберта. К 1930-м годам на этом сосредоточивалась основная группа логиков, в том числе Гильберт, Рассел, Курт Гедель, Джон фон Нейман, Алонзо Черч и, конечно, Алан Тюринг.

Программа Гильберта развертывалась по меньшей мере в двух направлениях. На первом фронте логики создали логические системы, пытавшиеся доказать, что требования Гильберта выполняются или нет.

На втором фронте математики использовали логические концепции, чтобы перестроить классическую математику. Например, система арифметики Пеано начинается с простой функции, называемой функцией преемника, увеличивающей любое число на единицу.

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

Историк Томас Кун однажды отметил, что «в науке новизна возникает только с трудом». Логика в эпоху программы Гильберта была бурным процессом созидания и разрушения. Один логик создал бы сложную систему, а другой ее разрушил.

Любимым инструментом разрушения была конструкция самореференционных, парадоксальных утверждений, показывавших противоречивость аксиом, из которых они были выведены.

Простой формой этого «парадокса лжеца» есть предложение: «Это предложение ошибочное». Если оно истинно, то оно ложно, а если оно ложно, то оно истинно, что приводит к бесконечной петле самопротиворечия.

Рассел впервые заметно использовал парадокс лжеца в математической логике. Он показал, что система Фреге позволяет получить множества, противоречащие себе:

  • Пусть R — множество всех множеств, не являющихся членами самих себя. Если R не является членом самого себя, то его определение диктует, что он должен содержать сам себя, и если он содержит сам себя, то он противоречит своему собственному определению как множества всех множеств, не являющихся членами самих себя.

Это стало известно как парадокс Рассела и рассматривалось как серьезный недостаток в достижениях Фреге.

Сам Фреге был в шоке от этого открытия. Он ответил Расселу: «Ваше открытие противоречия вызвало у меня самое большое удивление и, я почти сказал бы, ужас, поскольку оно пошатнуло основу, на которой я собирался построить свою арифметику.»

Рассел и его коллега Альфред Норт Уайтхед сделали самую амбициозную попытку завершить программу Гильберта с помощью Mathematica Principia, опубликованного в трех томах между 1910 и 1913 годами.

Метод «Principia» был настолько подробным, что понадобилось более 300 страниц, чтобы получить доказательство того, что 1+1=2.

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

Каждый уровень может ссылаться на более низкие уровни, но не на собственные или более высокие уровни. Это позволило уничтожить парадоксы самоссылки, по сути, запретив самоссылку.

Это решение не было популярно среди логиков, но оно повлияло на информатику? — большинство современных компьютерных языков имеют особенности, внушенные теорией типов.

Парадоксы самоссылки показали, что программа Гильберта никогда не может быть успешной.

Первый удар был нанесен в 1931 году, когда Гедель опубликовал свою известную теперь теорему о неполноте, которая доказала, что любая последовательная логическая система, достаточно мощная, чтобы охватить арифметику, также должна содержать утверждения, которые истинны, но не могут быть доказаны. , что истинностьТеорема о неполноте Геделя является одним из немногих логических результатов, получивших широкую известность благодаря таким книгам, как Гедель, Эшер, Бах и «Новый разум императора».

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

Черч сделал это, изобретя совсем другую систему под названием лямбда-числения, которая позже вдохновит компьютерные языки, такие как Lisp. Ответ на проблему принятия решения был отрицательным.

Ключевое понимание Тюринга было сделано в первой главе его знаменитой статьи 1936 г. «Об вычисляемых числах, с применением к проблеме Решения».

Чтобы четко сформулировать проблему принятия решения, Тьюринг сначала создал математическую модель того, что значит быть компьютером. Сегодня машины, соответствующие этой модели, известны как «универсальные машины Тюринга».

«Тюринг знал, что алгоритм обычно определяется списком правил, которым человек может следовать точным механическим способом, как рецепт в кулинарной книге. Он смог показать, что такой человек может ограничиться несколькими очень простыми основными действиями, не изменяя конечный результат вычислений», — описывает логик Мартин Дэвис.

«Потом, доказав, что ни одна машина, выполняющая только эти базовые действия, не может определить, следует ли предложенный вывод из заданных предпосылок с помощью правил Фреге, он смог заключить, что алгоритма для решения проблемы Решения не существует, — продолжает он. – Как побочный продукт, он нашел математическую модель универсальной вычислительной машины».

Далее Тюринг показал, как программа может храниться внутри компьютера вместе с данными, с которыми она работает. Сегодняшней лексикой мы бы сказали, что он изобрел архитектуру «сохраненных программ», лежащую в основе большинства современных компьютеров:

До Тьюринга общее предположение заключалось в том, что при работе с такими машинами три категории? — «машина, программа и данные» — вполне отдельные единицы.

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

Универсальная машина Тьюринга показала, что разница этих трех категорий является иллюзией.Это была первая строгая демонстрация того, что любая вычислительная логика, которая может быть закодирована в аппаратном обеспечении, также может быть закодирована в программном обеспечении.

Архитектуру, которую описал Тьюринг, позже назвали «архитектурой фон Неймана», но современные историки в целом соглашаются, что она происходила от Тюринга, как, пожалуй, и идеи самого фон Неймана.

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

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

Во время второй мировой войны эта теоретическая работа была реализована на практике, когда правительственные лаборатории призвали ряд элитных логиков.

Фон Нейман присоединился к проекту создания атомной бомбы в Лос-Аламосе, где работал над компьютерным дизайном для поддержки исследований физики. В 1945 году он написал спецификацию EDVAC – первого логического компьютера с сохраненной программой, – который обычно считается окончательным исходным пособием для современного компьютерного дизайна.

Тьюринг присоединился к секретному подразделению в Блетчли Парк, северо-западнее Лондона, где он помогал разрабатывать компьютеры для взлома немецких кодов. Его самым большим вкладом в практическое проектирование компьютеров стала его спецификация ACE или Automatic Computing Engine.

Как первые компьютеры, основанные на булевой логике и архитектуре сохраненных программ, ACE и EDVAC были во многом схожи.Но они также имели интересные отличия, некоторые из которых предвещали современные дискуссии по компьютерному дизайну.

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

Фон Нейман считал, что компьютерное программирование будет утомительной канцелярской работой. Тьюринг, напротив, сказал, что компьютерное программирование должно быть очень увлекательным. «Нет никакой реальной опасности, что он когда-нибудь станет тяжелым, поскольку любые механические процессы могут быть переданы самой машине», – писал он.

С 1940-х годов компьютерное программирование стало гораздо сложнее. Единственное, что не изменилось, это то, что оно по-прежнему в основном состоит из программистов, указывающих правила для компьютеров.

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

Приблизительно в последнее десятилетие программирование начало меняться благодаря росту популярности машинного обучения, предполагающего создание инфраструктуры для обучения машин с помощью статистических выводов. Это приблизило программирование к другой ветке логики – индуктивной логике, имеющей дело с выводом правил из конкретных случаев.

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

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

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

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

Сегодня дедуктивная и индуктивная логика сочетаются, чтобы создать одновременно размышляющие и обучающиеся машины.

То, что началось, по словам Буля, с исследования «природы и строения человеческого разума», могло привести к созданию новых умов – искусственных – которые однажды могли бы сравниться с нашим собственным или даже превысить его.

По материалам: The Atlantic

Євген
Євген
Евгений пишет для TechToday с 2012 года. По образованию инженер,. Увлекается реставрацией старых автомобилей.

Vodafone

Залишайтеся з нами

10,052Фанитак
1,445Послідовникислідувати
105Абонентипідписуватися