Comments 108
На самом деле прочитал на ура, но! Вступление вызвало интерес из-за попытки сравнить имя-связь\подвал-несущие. В целом, статья отличная. Если добавить примитивные иллюстрации + добавлять к "связям" и "именам" примеры из этого же подвала, то доступность материала возрастет. Для школьников будет супер материал.
Конечно, хочется в этот рассказ занести и другие науки, вроде "сопромата", но тогда получится целый EDU QUEST.
>В общем, я не думаю, что философия на хабре будет оценена
будет разумеется оценена, но только не совсем понимаю что Вы вообще хотите сказать, в части математики к примеру интуиционизм мне более-менее знаком, в части философии работы Витгенштейна тоже, но это так к слову, просто чтобы хоть какую-то общую точку найти с Вами
Тождество забыли, а еще другие отношения эквивалентности.
Принцип моделирования заключается в том, что если модель повторяет реальность, то они одинаковы, и различие только в названии.
Принципиально не согласен!: модель повторяет только важные свойства. Основной принцип моделирования — минимизация. Так при моделировании аэродинамики самолета достаточно сделать корпус из деревяшки, чтобы испытать его в "трубе", а делать в этом корпусе салон с креслами, движок и т.д. — избыточно.
модель повторяет только важные свойства
Да, с вашей стороны я могу казаться каким-то идеалистом, но я всё же решил говорить с позиций, что степень соответствия моделирования не является внутренней характеристикой модели, а является характеристикой соотношения с реальностью. То есть, идеальная модель как таковая — это всё же нечто неотличимое. Если я сложу две группы предметов, то их количество будет суммой изначального количество в группе. Но промоделировав в уме я могу просто сложить количество и заранее узнать сколько получится. Результат не отличается.
И, даже, философы-идеалисты говорили, что идеал не достижим;) А в данном случае достигать нет смысла. Занимаюсь моделями в химиии почти 40 лет. Вы книги Мышкиса читали про модели? У него хорошо и подробно написано.
Разве что, стоит всё таки иметь ввиду, что в информационной сфере моделирование действий и сами действия, бывает, не отличаются. Если программу, зависящую только от входящих данных запустить два раза, получить одинаковые данные, и один раз считать работой, с использованием результатов, а другой раз считать предварительным моделированием — то согласитесь, здесь действительно различие только в названии.
Здесь мы возвращаемся к вопросу, на который Вы не ответили, про отношения эквивалентности. Если тривиальную программу запустить несколько раз на одном ПК, и один из запусков назвать моделью, то тождественная копия подразумевает тождественный результат. Хотя нельзя исключить вероятность сбоя "железа", а если прога в инет обращается или псевдослучайные числа использует, то результат м.б. разный с высокой вероятностью. Однако моделью обычно называют объект отличный от прототипа (и у Вас в статье так) — следуя логике бритвы Оккама.
Но стоит учесть мнение, что наоборот, преуменьшать роль модели не нужно. Тут же не только желание чтобы модель работала как реальность, но и желание чтобы реальность работала как модель. Ну и потому — не стоит модель заранее определять как недо-реальность.
Сглазите и реальность за вашей моделью не пойдёт.
Впрочем, может быть вы такими вещами не занимаетесь.
По Вашей схеме нужно сразу делать самолет, если не взлетит, то "модель" — не удачная, делать второй и т.д., 5й упадет — погибнут испытатели. Какой смысл в таком моделировании?
ИМХО фантастика. Любопытно, какие модели Вам удалось построить, какие ресурсы на это потрачены?
Верно. Я делаю ряд моделей, исправляя целевые параметры. Но повторю, что не все параметры целевые. Уже сказал, что испытывая аэродинамику не нужно моделировать электропитание туалетов самолета.
В области орг. химии, если стоит задача найти лекарство, то всем без разницы какая у предложенного вещества будет температура плавления 160 градусов или 230.
ИМХО не надо путать закономерности и модели. Есть факт, что длина окружности равна 2 пи на радиус. Это не модель — это факт. Аналогичные факты есть в физике и в химии. Нпр., если раствор 10% серной кислоты добавить к 10% раствору хлорида бария — выпадет осадок сульфата бария. Это экспериментальный факт, тут нечего моделировать. Если кто запишет эту реакцию на бумажке и назовет моделью — его засмеют.
Если отрицать то что модель и реальность в выделенной области одно и то же, то ничего невозможно будет подсчитать.
Представляете? Чтобы каждому человеку, так сказать, раздать по смартфону, нужно будет не подсчитать сколько людей и подготовить столько же смартфонов, а просто сказать: идите и возьмите по одному. Потому что, ну, оказывается, модель не моделирует, кто знает, вдруг одинаковое количество и людей и смартфонов, а у каждого по пять окажется. Хорошо, если смартфонов у людей, а если людей у смартфонов?
Числа это сами по себе модель.
Это давний философский вопрос о реалистичности математики (можем пифагорейцев вспомнить). Если числа модель, то Вы говорите о модели модели. ИМХО моделировать модель нет смысла — это порочный круг.
ИМХО числа не модель. Есть разные инструменты. Есть молотки, а есть отвертки. Предлагаете называть все отвертки молотками? Кому от этого польза?
Программисты смотрят на мир как на программу
Я много лет, как программист, и знаю многих со сравнимым опытом. Мы не считаем мир программой...
Впрочем, с тем чтобы понимать модель совсем узко — как поделку, кое как повторяющую оригинал — я бы не согласился.
Если выделять область в которой модель повторяет оригинал, то в рамках этой области можно говорить о повторе. Ну вот, даже тавтология получилась.
Мне вот не до конца понятно зачем мне вас убеждать
Вам не надо меня лично убеждать. Но нашу переписку могут читать другие люди… Убеждайте их, что числа — модель и теорема Пифагора — модель… А я продолжу моделировать. Перечитайте, что я говорил выше — не получил ответа на многие вопросы.
>Программисты смотрят на мир как на программу, поэтому очень легко считать ....
кажется с подвалом все ясно
>модель повторяет только важные свойства ...
повторение и апроксимация (=приближе́ние) таки не совсем одно и то же
Да, не совсем одно и то же. Но зачем Вам моделировать электропитание туалетов самолета, если Вы изучаете его аэродинамику? В случае мат.модели будет куча лишних параметров, за которые хороший транслятор Вас обругает: неиспользуемая переменная.
Спускаясь в подвал нельзя быть надменным. Каждое ваше слово вызывает бурю вопросов. Например, могут ли быть объекты, которые не равны сами себе?
Мы же программисты, да? NaN != NaN.
Есть ли разница между равенством и тождественностью? `foo is foo` и `foo == foo`?
Сколько пустых множеств существует? Чему равна мощность множества, состоящая из всех пустых множеств?
Ну вот мне, как программисту, совсем не очевидно, что если из множества вещественных чисел вычесть множество вещественных чисел, то получившееся множество будет иметь тот же тип, что и множество всех одновременно полных и непротиворечивых систем аксиом.
Почему пустое множество одно? Аксиома?
А может ли существовать два одинаковых множества? Грубо говоря, {1} и {1}. Ведь '1' внутри может быть разной. Одна - это { 1 } Z, вторая, например, {1.0} R. Разница в них методом построения, например. Одно - посредством счёта, а второе, например, посредством предела.
Да даже проще. Множество, построенное как { {} } + { {{}} }, и множество, построенное как { {{}} } + { {} }. Для конечного числа сложений это одно и тоже (вроде бы), а вот если я этот процесс бесконечно повторю, то начнутся нюансы...
А вот насчёт равенства множеств { 1 } и { 1.0 } я и сам не знаю.
0xd34df00d отмечал, что у множеств в ZF нет типов, но значит и операция сравнения элементов множества не определена. Непонятно, как применять ту же аксиому экстенсиональности.
а вот если я этот процесс бесконечно повторю, то начнутся нюансыНе начнутся, потому что элемент x, полученный бесконечным повторением операции, нельзя построить, а потому включить в множество (формально, опираясь только на аксиомы формальной системы и разрешённые операции).
так как элементы разные, а что вы 1.0 из R обозначаете как 1 из N — так это сокращение в вашей нотацииВыходит, утверждение N⊆R ложно? Обычно на «школьном» уровне утверждается, что целые числа — подмножество рациональных, а рациональные — подмножество действительных.
Аксиома, это что-то, что интуитивно понятно. Вот мне совсем не понятно, что такое "одинаковые". Опираясь на бытовую интуицию, я знаю, что:
а) Некоторые объекты не равны сами себе (NaN), т.е. {NaN} и {NaN} по определению NaN не являются одинаковыми множествами.
б) Некоторые объекты похожи, но всё-таки различны (разница между is и ==).
Т.е. драконы именно тут начинаются. Почему это аксиома? Каким образом это очевидно? Что такое "одинаковость элементов"? Что такое "элемент"? Как у нас получилось "два множества", если до цифры "2" ещё лес с заголулиной из пустых множеств?
Та арифметика с NaN, которая в FPU, не является надмножеством действительных чисел. Она вообще построена над конечным множеством и поэтому тривиальна.
Дело не в математике. Требование X = X совершенно не очевидно. Например, мы не можем проверять бесконечности так.
{∞} =?= {∞}
NaN в этом смысле - это объект с простыми свойствами. Мы можем сконструировать такой объект. И мы можем описывать множества с NaN внутри. После чего возникает вопрос равенства таких множеств с NaN'ами.
По крайней мере в той форме, как мне про множества рассказывали, понятие множества вводилось интуитивно - всё, на что пальцем можешь показать. Я могу показать на NaN.
В смысле, не определён? Мы же к нему стремимся в каждом втором пределе.
Вот как раз "что такое равенство", как мне кажется, и открывает дверцу в следующий подвал с настоящими драконами.
Скажите, у меня может быть множество символов математической нотации? Видимо, да. И там можно оставить только такие символы, для которых равенство не определено или определено, что оно всегда ложно.
std::unordered_set<wchar_t>
?Да, тут можно сказать что ∑=∏ — ложно, однако в таком примере нельзя сравнить 7.0 и ∞, т.к. первое — не математический символ.
А при чём тут отношения порядка? Вы куда-то в сторону уводите.
unordered_set
— порядок не нужен, нужно только равенство.можно оставить только такие символы, для которых равенство не определено или определено, что оно всегда ложно. Упор не на отношения, а на отсутствие экивалентности самим себе.
На самом деле это очень философский вопрос. Вот два множества с двумя людьми (в каждом множестве по человеку) - они одинаковые или нет? Оба - человеки. Но..
С бытовой точки зрения, также «зависит от»… Например, для какого-нибудь топ-менеджера команды условных миддлов из 5 человек эквивалентны, на его уровне нет смысла делать различия.
можно оставить только такие символы, для которых равенство не определено
Так нельзя. Это противоречит определению множества, которое давал Кантор. Он писал так: “Под множеством мы понимаем любое соединение M определенных различных (различимых) объектов нашего умозрения или нашей мысли (которые будут называться элементами M) в единое целое”.
Таким образом, мы должны уметь сказать, равны или нет элементы, из которых мы строим множество.
или определено, что оно всегда ложно.
А это пожалуйста, у вас будет множество, в котором все элементы строго различны.
Множество - это не все, вокруг чего можно поставить фигурные скобки.
Допустим, что мы можем различать объекты, но не можем обнаруживать сходство. Банальная функция, у которой инвариант - false.
Под определение Кантора вполне подходит.
Это вторая половина моего комментария.
Ну, меня учили, что множество - это всё, для чего можно задать либо конструктивное определение (перечислить что добавить), либо декларативное (описать признак, по которому элемент попадает в множество).
Например, я не понимаю, почему нельзя рассматривать множество тапок, как множество, например.
Если мы можем различать тапки (явно указав способ различения), то можно. Вот электроны, например, мы различать не можем. Так что выражение "множество электронов" нельзя использовать в математике, только в быту. Но лучше этого не делать.
Оба вида определения (конструктивное и декларативное) должны удовлетворять аксиомам ZFC. Иначе конструкция не будет множеством.
А вот тут какое-то передёргивание. Почему мы не можем иметь множества вне ZFC? Вроде бы, понятие в математике было и до ZFC.
Использовать систему аксиом, для того, чтобы оградиться от неудобных философских вопросов - это не интересно.
Вот задаться вопросом всерьёз и попытаться найти нюансы смысла - это уже как раз "постучать в дно".
Вот, я вам подкину вопрос: а как определить множества не имея предварительного понятия про "один" и "другой" (т.е. "1" и "2")?
Математика - очень сильно про философию. Потому что логика целиком вытекает из философии, и даже попытка максимальной формализации (Гёдель, Тьюринг) всё равно - философия чистой воды. Начальные положения и метод введения аксиом - это философия. Например, из каких аксиом математики вытекает требования непротиворечивости? Например, определение ZFC ссылается на Domain of discourse. Из каких математических объектов он выводится?
Даже в предположении "аксиомы задают начальные условия" - в какой системе правил аксиомы что-то "задают"? Что такое "задают"?
Даже если мы сводим математику к чистым переборам тавталогий, сами начальные аксиомы являются различным "чем-то" (на что мы можем ссылаться). Почему мы их можем различать как самостоятельные сущности с именами?
Чем глубже в подвал, тем толще вопросы.
Вот, я вам подкину вопрос: а как определить множества не имея предварительного понятия про «один» и «другой» (т.е. «1» и «2»)?
начальные аксиомы являются различным «чем-то» (на что мы можем ссылаться). Почему мы их можем различать как самостоятельные сущности с именами?Видимо, это вопросы не к математике, а к нейробиологии, как в могзах переключаются нейрончики. Может, тут есть такие специалисты…
И к философии. Потому что правильно поставленный вопрос даёт очень много пищи для размышлений. С учётом, что логика выползла из риторики и философии, мне кажется, надо не отметать вопросы "потому что так говорит теория имени C A B D E F", а попытаться подумать "почему?" в самом философском смысле.
Например, вся математика рано или поздно сваливается к концепции "истина" и "ложь", и тут открывается такая бездна, на фоне которых стоны про аксиому выбора становятся переходящим шумом.
Поэтому, когда технические специалисты сталкиваются с вопросами типа
как определить множества не имея предварительного понятия про «один» и «другой»они просто не знают, что делать, как на это отвечать. Не сочтут ли шизиком, если вывалить свои свободные ассоциации по этой теме, без каких-либо доказательств, естественно…
Канторовское определение множества уже, чем в системе ZFC. Дедекинд в своей книге "Что такое числа и для чего они служат" писал так: “Множество S полностью определено только тогда, когда относительно всякой вещи известно, является ли она элементом множества S или нет”.
Но если вас это устраивает для ваших целей, то можно пользоваться таким определением. Просто это не будет соответствовать современным общепринятым представлениям математиков.
Допустим, что мы можем различать объекты, но не можем обнаруживать сходство. Банальная функция, у которой инвариант — false.В этом случае мы не сможем проверить, что 'x' принадлежит множеству A, потому что этот 'x', записанный отдельно от множества, не сможем сравнить с 'x' который использовался при задании множества.
Под определение Кантора вполне подходит
Дело не в математике. Требование X = X совершенно не очевидноX=X для любого X вводится аксиоматически, и то что в каком-то ЯП NaN != NaN, это проблемы этого ЯП.
В машинной вещественной арифметике вообще куча аксиом не выполняется, таких например как
(a+b)+c = a+(b+c)
a+b = b+a
Так что она совершенно поломана в математическом смысле, и NaN!=NaN вообще мелочь.
Теория множеств должна работать с любыми объектами, а не с числами. Вон, сама теория числа через множества строит. Так что нет. Если есть объект с странными свойствами, то с ним надо тоже уметь работать без выкрутас. Иначе брадобрею придётся опять чесать лысину.
Теория множеств должна работать с любыми объектами, а не с числами. Вон, сама теория числа через множества строит. Так что нет. Если есть объект с странными свойствами, то с ним надо тоже уметь работать без выкрутасНе понимаю, в чём проблема с NaN. Если вы хотите, чтобы '=' был отношением эквивалентности, чтобы пользоваться всякими доказанными ништяками для него, нужно принять NaN=NaN. Но никто не заставляет, можете конструировать какие угодно системы, но тогда не получится пользоваться чем-то готовым доказанным.
Пусть A, множество всех объектов, для которых невозможно построить отношение эквивалентности.
Пусть Б - множество всех объектов, для которых невозможно построить отношение экивалентности.
Какое отношение экивалентности между множеством А и Б?
Для любого множества я легко построю тривиальное отношение эквивалентности, в котором для любых x,y у меня будет x=y.
Таким образом, Б — пустое множество.
Я могу построить отношение эквивалентности между множествами такое, при котором любая пара эквивалентна.
Какое отношение экивалентности между множеством А и Б?На этом мой парсер сломался. Какое захочу, такое и буду рассматривать. Например, если рассматривать в качестве отношения экивалентности отношение равенства из стандартной теории множеств, А и Б (пустые) входят в это отношение, т.е. равны.
Кстати, а вот скажите, является ли одним и тем же множеством {1.0} и {0.(9)}?
Но в рамках этого "равно" NaN != NaN. И тут меня теория множеств смущает. "Равенство" двух элементов множества, это что такое? Их собственное свойство? Внешнее свойство, определяемое множеством?
Я знаю как минимум два значка, для которых знак равенства обладает особыми свойствами. NaN и Inf. Теоретически, можно ещё обсудить положительный и отрицательный нули (которые, хотя и равны, не идентичны друг другу).
operator==
и получить совершенно странное поведение. То есть, в рамках модели (программы) множества {0} и {1} могут быть как равными, так и различными.То же самое тут с NaN и Inf — создатели модели вещественных чисел определили операции равенства для них, как им оказалось удобнее по каким-то практическим соображениям, к стандартной математике это не имеет никакого отношения.
Упорядоченность и эквивалентность - это совершенно разные свойства. С упорядоченностью проще, потому что мы можем придумывать разные порядки. С эквивалентностью же всё интереснее - если у нас какая-то бесконечность (трансфинитивные числа), то она сама себе равна?
Мы не вводим отношение эквивалентности. И хотим понять, является ли {∞} тем же самым множеством, что и {∞}?
Если ∞ — обозначение некоторого объекта, нет никаких предпосылок считать, что эти объекты разные.
В том же IEEE 754, NaN или Inf соответствует некоторому значению 64-битного регистра. В этом смысле, все NaN-ы — один и тот же объект. А оператор = не является отношением эквивалентности.
NaN - это множество значений. Бинарное представление NaN не фиксировано.
Говоря конкретнее, односторонняя связь обладает свойством трансляции — когда при связи
и связи
обязательно есть связь
Это свойство называет закон транзитивности, а не какая-то неведомая трансляция. :(
Экскурсия в подвал