Я хорошо осведомлен о теоретических работах по теме алгоритмов, пионерами которых, насколько мне известно, были Тьюринг и Черчилль. Компьютеры реализуют большой, но конечный набор алгоритмов. Однако мой вопрос идет в другом направлении.
Представьте себе примитивный компьютер с 8-битной оперативной памятью, который умеет складывать. Если сложению разрешено переполнение, эта машина будет реальной реализацией конечного множества из 32 элементов и, кроме того, аддитивной группы.
Думаю, примечательно, что это не более и не менее очевидная интерпретация машины. На самом деле машина — это просто рычаги и переключатели. В случае цифровых компьютеров именно интерпретация токов и напряжений как 0 и 1 превращает схему в инструмент решения проблем.
Но что математически реализует современный компьютер?
С точки зрения памяти любой компьютер по-прежнему строго реализует конечное явное множество.
Компьютер не может реализовать действительные числа. Он даже не может реализовать натуральные числа... из-за их счетной бесконечности. Он может реализовать конечный набор рациональных чисел (чтобы снова аппроксимировать действительные числа, такие как PI и e, достаточно для всех практических целей).
Компьютеры не могут реализовать (конечный набор) мнимых чисел... или могут? Конечно, в цифровом коде как таковом нет i , но благодаря реализации Q² (как аппроксимации R²) и правилу комплексного умножения комплексные числа вообще не представляют сложности для компьютера.
Теперь это становится более странным.
Существует программное обеспечение, такое как Wolfram Mathematica, которое может выполнять символьные вычисления. Это означает, что элементы конечного множества без проблем представляют произвольные математические понятия.
В Haskell я обычно работаю с алгебраическими типами данных и даже с рекурсивными. Кажется, что нет наложенного ограничения: даже ссылка на самого себя в порядке.
Хотя возможности кажутся бесконечными, уже был контрпример R, реальные числа.
Итак, вернемся к вопросу: можно ли сделать общее утверждение о математических концепциях, реализуемых компьютером?
Это отличный вопрос. Как конечные, неточные, подверженные ошибкам объекты реального мира, такие как счеты или компьютер, соприкасаются с бесконечным совершенным царством математики?
Попробуйте эту аналогию. Предположим, у вас есть бесконечная группа с a⊙b, определенным для каждой пары элементов. Теперь предположим, что вы берете конечное подмножество S элементов группы и определяете новую операцию ⊗, где a⊗b определяется как a⊙b только тогда, когда a, b и a⊙b являются всеми элементами S, причем a⊗b в противном случае не определено.
Это аналогично компьютеру, который может представлять арифметику только на конечном наборе чисел.
Теперь ⊗ конечно, но это подмножество бесконечного отношения. Если бы паттерн ⊗ был «завершен», мы бы получили ⊙. Даже если компьютер только физически реализует ⊗, мы можем связать ⊗ с ⊙ и сказать, что реализовать ⊗ означает реализовать часть бесконечного ⊙, тем самым «прикасаясь» к бесконечности.
Конечно, реализация ⊗ означает также реализацию части многих других возможных отношений помимо ⊙. Мы могли бы сказать, что ⊗ «касается» бесконечности разными способами, но мы выбираем один конкретный способ, ⊙, представляющий интерес.
Я надеюсь, что это дает немного идеи.
Чтобы сделать его действительно строгим, нам потребуется формальная модель того, чем является физический кремниевый компьютер как часть большей физической вселенной, — некоторый математический формализм для отслеживания внутреннего состояния и положения компьютера по мере того, как вся вселенная изменяется во времени. Тогда нам понадобится какой-то способ отображения физического состояния компьютера в логические, символические состояния и предложения. Сделать все это строго - сложная задача, и я не знаю, решена ли она.
Частичный ответ: Компьютер не реализует математические, экономические или любые другие концепции . Именно наш разум придает входным и выходным символам математический или экономический смысл. Например, ваши деньги в банке просто представлены намагниченной поверхностью нанометрового размера. Реализуют ли компьютеры экономическую концепцию в таком физическом факте? Конечно, нет.
Относительно инструмента:
Вы можете использовать любой инструмент для представления математических понятий. Например, вы можете использовать воду для математического сложения: если вы наберете 100 чашек воды, поместите их в бассейн и добавите еще 200 чашек воды, что вы получите? Куча воды. Чтобы понять результат, его нужно разделить, причем быстро, иначе вода испарится, может стечь и т. д. И нужно быть очень точным, иначе легко можно получить больше или меньше 300 стаканов воды.
Итак, с водой вы не получите точных ответов. Итак, вы можете попробовать камни. Вот это будет точнее. Но таскать камни непросто. Итак, вы можете использовать счеты. Но выполнение тысяч операций — это медленно. Наконец, мы обнаружили, что лучшим инструментом для выполнения операций, представляющих экономические или математические концепции, является компьютер.
Что касается математических понятий:
Теперь, возможно, ключевой вопрос заключается в следующем: как математические или экономические концепции связаны с компьютером ?
Компьютер, как куча камней, бассейн с водой или счеты, — это всего лишь система, то есть группа взаимосвязанных частей с входами и выходами. Обычно системы считаются черными ящиками , то есть сущностями, которые нам не нужно понимать изнутри. Нам просто нужно понять, как взаимодействовать с системами (черными ящиками) посредством их входов и выходов.
Очевидно, вы не можете вылить 100 чашек воды на клавиатуру компьютера и ожидать, что система зарегистрирует представление целого числа 100. И вы не можете ожидать, что принтер выдаст 300 чашек воды. Но вы можете научиться взаимодействовать с системой, как при первом использовании новой кофемашины в офисе. Положите сюда монету, выберите кофе с помощью этой кнопки, слегка нажмите, если она застряла, и вуаля кофе.
С компьютерами мы разработали типичный язык, который подразумевает: как дать понятия или значения представлению; как подавать их на компьютер через входы; как получить выходные данные и как придать выходным символам концептуальное значение. Как видите, компьютер не реализует математические концепции. Он просто выполняет вычисления, которые дают наборы битов, представленных в той или иной форме.
С компьютером или счетами вы можете выполнять операции, если вы и только вы знаете, как представить ваши субъективные понятия в вычислительных терминах. Сможете ли вы получить квадратный корень любви, рассчитать его рыночную стоимость в биткойнах и перевести на банковский счет? Вам решать.
За исключением компьютерной тематики, любое понятие в мозгу может быть представлено символами. Я могу представить семь долларов семью камнями и произвести с ними математические операции. Я могу изобразить бесконечность или даже пустую группу с камешком. Проблема здесь заключается в правильном использовании символов и понятий. И это другой предмет: математика.
Математика имеет именно такую цель. Ключевая информация: математика — это язык и инструмент . Язык, позволяющий представлять математические понятия, и инструмент, позволяющий обрабатывать такие понятия и получать результаты. Когда вы используете счеты, вы используете бусины для представления математических понятий (в простейшем случае, положительных целых чисел) и выполнения математических операций (математика также является инструментом), перемещая бусины по определенным правилам.
Полный ответ на ваш вопрос:
компьютер не реализует математические концепции, он просто позволяет взаимодействовать посредством своих входов и выходов на математическом языке . То же самое для экономики, электроники, химии или чего-то еще.
В вашем примере Wolfram предоставляет механизм для использования математического языка в компьютере ( математика — это язык ), при переводе субъективно-человеческих (см. комментарий о субъективности) математических понятий в компьютерные процессы ( математика — это тоже инструмент ).
Софи Селнес
РодольфоАП
Аякс
пользователь195692