Skip to content

Latest commit

 

History

History
351 lines (197 loc) · 43.7 KB

algorithm.md

File metadata and controls

351 lines (197 loc) · 43.7 KB

имитация реального мира

программа <-----> математика <-----> внешний мир

программирование как развитие математики(то есть в программировании решаем то что не решается в математики - аналитическая машина бэббиджа) программирование как воспроизведение математики(не считаем на бумажке а считаем на компе) программирование как воспроизведение работы реальных процессов

  1. счетные палочки, абак,
  2. Алгоритми - Аль-Хорезми - алгоритм это четыре арифметических операции 2)1360 г. французский философ Николай Орем - алгоритмы это просто любые мат операции
  3. В 1684 году Готфрид Лейбниц в сочинении «Nova Methodvs pro maximis et minimis, itemque tangentibus…» впервые использовал слово «алгоритм» (Algorithmo) в ещё более широком смысле: как систематический способ решения проблем дифференциального исчисления.
  4. Жаккардова машина — зевообразовательный механизм ткацкого станка для выработки крупноузорчатых тканей (декоративные ткани, ковры, скатерти и т. п.). Даёт возможность раздельно управлять каждой нитью основы или небольшой их группой. Создана в 1804 году.
  5. С 1834 года Бэббидж начал проектировать аналитическую машину.

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

программирование не похоже на математику? дело только что мы все запутали неявностью - вырази все явно и это станет математематикой(пусть и не в классическом смысле) не посути но в проявлениях. вот почему фп все такое первоклассное

программирование как качественное развитие математики так же как в экономике сменяются методы производства в математике сменяются методы моделирования

математика противоречива своей сути - она выражает суть процессы в виде аналитического выражения - формулы, которая выражает все многообразие вариантов, но если мы хотим воспроизвести процесс для конкретного случая нам необходим алгоритм - последовательность шагов f(x, y) = x + y - аналитическая формула но чтобы выполнить ее нам нужен алгоритм для складывания двух чисел

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

зав типы это ФОРМУЛА программы

а ее код это то как формула должна вычислятся - каким способом то есть реальный процесс превращается в формулу и затем мы реализуем алгоритм вычисления этой формулы(сюда же и верификацию через сравнение с другой программой и суперкомпиляцию итд)

идя дальше мы вновь избавимся от самой алгоритмизации и останется вновь только формула - компьютер сам создаст способ вычисления этой формулы

вопросы

  1. Зачем нужна формула? находить алгоритмы как составные части уже известных??? упрощение алгоритмизации упрощение вычисления
  2. ооп как попытка найти способ аналитического выражения сути программы - не совсем удачная изза того что не поняли что делали
  3. ткацкий станок как отображение сырья и настроек в ткань

отображение, функция, выражение, алгоритм

алгоритм как идеальное выражение некотрого процесса реальной жизни появилась раньше аналитической записи в виде математического выражения сначала мы складывали палочки чтобы сложить два числа и запомиинали сам процесс их перекладывания(мы даже не думали что это вообще сложение) - затем абстрагируя мы придумали что мы их складываем и записали это в виде математического соотношения хотя в теории все известно ровно наоборот - сначало сложение затем его алгоритм программирование же появилось как ответ на непоспевания развития математики за развитием мира человечеких отношений - отчасти повлияло закапывание формализмом интуицизма(конструктивизм) как более конкреттной и содержателльной абстракции которая бы позволила и позволяет сейчас в coq agda выражать процессы в виде самой математики

то есть для любого процесса сначала появляется алгоритм а заттем ищется его аналитическая запись - но для тех процессов которые надо было описывать людям в XX веке просто не нашлось аналитической записи как таковой - и нашли ее только в начале 21 века в виде языков с завтипами

  1. зачем аналитическая запись
  2. изоморфизм карри говарда и причем тут доказательства
  3. конструктивность

для любого конструктивного объекта {\displaystyle X} X рассматриваемого вида потенциально осуществим конструктивный объект {\displaystyle Y} Y, находящийся в отношении {\displaystyle T} T к объекту {\displaystyle X} X» означает наличие в нашем распоряжении единого общего метода (алгоритма) переработки объекта {\displaystyle X} X в отвечающий ему объект {\displaystyle Y} Y. Поэтому такое суждение может быть заведомо неверным даже в случае верности суждения «для любого конструктивного объекта {\displaystyle X} X рассматриваемого вида квазиосуществим конструктивный объект {\displaystyle Y} Y, находящийся в отношении {\displaystyle T} T к объекту {\displaystyle X} X».

http://wolf-kitses.livejournal.com/76177.html

x = 2

2 + 2 = 4

x + 2 = 4

абстракция?

ONE of the problems confronting formal logic is to explain how the exchange of one statement for another, equivalent to it, leads to knowledge that was not previously present. This development can only be explained by discovery of the contradiction present within each statement. Rigorous application of the formal-logical ban on contradiction would lead to a denial of the development; dialectical logic not only explains how the new knowledge arises but indicates its path.

математические сущности не являются реальными объектами и в то же в время они неотделимы от них

3 яблока не является цифрой три но не имея 3 обьектов мы не можем выразить само понятие 3 - имея базис в природе они не являются объектами самой природы - их нельзя ощущать

Смысл символа заключается в его взаимосвязи со всей человеческой практикой как части природы. There can exist only triangular objects and objects of number three in the material world. The ‘triangle’ and the ‘3’ can never exist prior to or separately from such objects and in material identification with the countless other properties and interconnections of the objects involved. They do, however, have their basis in nature.

Each such symbol is the repository of a grain of human knowledge, connected in one way or another with the objective practice of man changing nature in accordance with nature’s laws. Each entity, symbol or concept is a nodal point in this network, relating man and nature.

The social division of labour, giving rise to the separation of theoretical practice and material-practical activity, obscures from sight the million-fold connection between mathematical concepts and nature, and mystifies the laws governing this relation.

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

ребенок учится числам чтобы оперировать ими в сп(абстрагировать множества из реального мира и выражать насколько много обьектов того или иного свойства - чтобы сравнивать(на самом деле наоборот - сначала множетсва и сравнения затем лишь числа!!))

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

идея что математика есть искуство оперирования этими символами - Формализм символы не имеют никакого значения а сделанные утверждения не могут привести нас к истине - мы можем гарантировать лишь валидность - то есть согласованность с правилами использования

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

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

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

Полностью отсутствуют какие бы то ни было объяснения или доказательства. Искомый результат либо даётся прямо, либо приводится краткий алгоритм его вычисления.

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

мат символы двусмысленны и всегда выражают две вещи одновременно

Маркс вместо действительно последовательно выведенных функций от х производные представляются лишь в форме их символических эквивалентов каждый из которых независимо от вида функции предписывает некотрую подлежащую выполнению стратагему

разобратся ‘Now, what are the corresponding “derivatives” of the symbolic differential coefficients du/dx, dz/dx ? ... answered if one substitutes arbitrary original functions of x for u or z. For example u= x4; z= x3 + ax2 . Thereby, however, the symbolic differential coefficients du/dx, dz/dx are suddenly transformed into operational symbols, into symbols of the process which must be carried out with x4 and x3 + x2 in order to find their “derivative,” and thus already finished, the symbolic differential coefficient now plays the role of the symbol of the operation of differentiation which is yet to be completed.’

x с одной стороны это то как он получен то есть откуда выведен и как а с другой это то что с ним можно сделать - то есть как использовать чтобы из него получить другое Это и следствие и посылка одновременно

f(x) это и операция над х и значение само по себе(первоклассное) которое может быть предметом других операций алгебры(дифференцирование к примеру) то есть у них есть количественный(операций) и качественный(значение) аспект???? качественное значение обьекта(fx как конкретная операция над х) может быть реализовано только посредством выполнения и получения некотрого количественного результата(значение функции в точке)

пример у = х у равно х потому что х и у предсттавляют одно и тоже значение но при этом это значение ни есть ни х ни у это "третье" к которому оба значения сводимы

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

маркс начинает с анализа простейшей функции у = ах чтобы описать основные концепции и разрушить мистические представления о бесконечно малых величинах(тут надо про нестандартный анализ почитать)

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

это похоже на вывод действительных чисел путем включение в понятия числа тех противоречий которые возникают при инверсии операций(инверсия умножения деление???) свойственных целым числам

Это пример диалетического метода и он выражает сущность аксиматического метода в математики

Например, знание сложения позволяет решать такие проблемы, как x + 7 = 10. т.е. x = 3; но также позволяет поставить такие проблемы, как x + 10 = - 7. Решение этой задачи с помощью расширения понятия числа до отрицательных значений позволяет решить x = -3. Этот вывод не может быть выведен или даже оправдан формальной логикой, которая может только постфактум доказать согласованность заключения.

конкретный историзм показывает что понятие движется от своих предпосылок(неявных) к своей ясной форме - то есть логическое обратно исторческому то есть мы чтото создаем в одном порядке а начинаем обнаруживать это в обратном порядке(от вершины к истокам)

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

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

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

от этого мы можем двигатся только диалектически - то есть раскрывая противоречие(число и не число - видимо прийдем к уравнениям)

значения понятия может быть раскрыто только как необходимость как осознание проблемы(противоречия) для борьбы с которой она появился

мат рукописи показывают как разработывал его исследование перехода от простой алгебры к калкулус который он назвал инверсией метода

формальная логика может показать разницу между понятиями(и поэтому она нужна перед процессом диалектического анализа) для Д важен именно переход одного понятия в другое и необходимость этого перехода

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

изучить работы давыдова про арифметику

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

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

калкулус это отдельное царство однако его символы осмысленны только по стольку поскольку они обозначают символизируют операции выпоняемые алгебраически и ду/дх символизирует с одной стороны операцию которую надо выполнить(дифференцирование) с другой стороны для самой функции(производной) тут вспоминаем про дуальность f(x)

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

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

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

Идея о том, что суть новой математической концепции заключается в обращении метода ее вывода, доказывает, что математический труд должен двигаться в двух направлениях. Односторонняя формально-логическая концепция дедуктивного доказательства, исключающая обратное движение применения нового понятия для решения проблем, из которого оно возникла, не может понять, как математика создает новые знания вообще. Anyone wishing to learn about dialectics in mathematics as elsewhere must read at least the first three sections of Chapter 1 of Capital

маркс придает большое значение стороне на которой стоит тот или иной символ в эквивалентности(правая и левая сторона ‘symbolic’ side and the ‘algebraic’ side and to the ‘initiative’ shifting from one side to the other)

Marx pays great attention to this differing of the roles of the left and right sides of equations. Equations are used by mathematicians as instruments for cognition, and their meaning resides in their use in true social practice, not in their abstract definition.

If we translate ‘=’ as ‘is’, we would correctly conclude that ‘x = 7’ does not imply ‘7 = x’, although within a strictly -defined context such implication would have formal truth.

This is because cognition can only move forward if the concepts it uses have a dual character, are contradictory. Every moment of identity thus immediately passes over to a moment of difference, and thus to opposition, the unity of identity and difference. The discovery of properties within an object (for instance those of arithmetic) which do not belong to it (such as with differential operators which may be manipulated as if they were numbers, but they are not numbers) is the essence of the creation of a mathematics of the object.

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

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

то есть не построив обьект и непоняв его глупо просто формально применять к нему общие законы - которые могут для него быть неверными

именно поэтому он исключил закон исключенного третьего - прежде чем говорить об А и не А нужно чтобы появилась сама вещь которую они представляют В результате Брауэр отверг Закон Исключенного Ближнего как абсолютный закон логики, поскольку вещь должна была быть, прежде чем это могло быть А или нет. то есть А представляет некотрое другое

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

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

Очевидно, что “данное” в математике близко соотносится с абстрактными элементами, содержащимися в наших эмпирических идеях. Из этого никоим образом не следует, что данные этого второго рода, из-за того что они не могут быть ассоциированы с действиями определенных вещей на наши органы чувств, являются чисто субъективными, как утверждал Кант. Скорее они тоже могут представлять объективную реальность, но в противоположность чувственным данным, их присутствие в нас обязано другому роду отношений между нами и реальностью» [Гедель 2007б, 484].

противоречие программирования выч машины сами стали предметом моделирования - при этом они же являются средством моделирования процессов реального мира

scheming vs computing алгоритм это вычисление или символическое выражение? ни то ни другое это противоречие разрешится через использование типов как языка программирования для описания свойств значений(то есть посути противоречие программа против значения которое оно вычислила разрешается через программу котораю будет описывать значение - зависимый тип)

теория категорий выражает суть алгоритмов https://www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.pdf Special forma aren't needed under lazy evaluation

примитивы - конкретные числа переход в математику через символы примитивы - конкретные шаги процесса переходв в математику через калькулейтинг

поинтфри эссенция калькулейтинга

Scheming vs calculating Applicative vs point-free процедура vs функция белый ящик vs черный bottom-up vs top-down динамика vs статика макросы vs вычисления(ленивые)

проблемы схеминга - подробность - сложность абстракции проблемы калька - неподробность непонятно что проихсодит -хочется видеть имплементацию

два взгляда на одни и теже процессы

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

любой шаг можно опять таки представить в ввиде некотрых шагов и так далее

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

давайте попробуем применить такой взгляд к теории категории тем самым очистив ее от метафизического взгляда на обьекты

Objectless Category Theory (I) α is a morphism, (II) the composition αβ is defined and is equal to γ, 2 аксимомы

  • композиция ассоциативна
  • существует тождественные стрелки

для каждого морфизма а сущесствует морфизм названный тождествами al l'a определены bl = b когда определено bl ly =y когда определено ly

они однозначно определяют морфизм

можно назвать их доменом и кодоменом d(a) c(a)

βα существует только если c(α) = d(β)

разница эквивалентности и изоморфизма категорий skeleton

фреймворки и локальность

тождество

Мы знаем только одну-единственную науку, науку истории рекурсивные типы

контрол флоу как кастомная композиция и уточнениеЫ

данные и код - функция как таблица - данные как функция(список)

малые и большие категории придумали чтобы избежать парадокса множеств?

big-step small-step in operational semantics

http://fendrich.se/blog/2013/09/03/big-programming/