ermouth: (ang)
[personal profile] ermouth

Уважаемые коллеги, я тут неделю с лихом уже по мотивам обсуждения в журнале tonsky планирую пост про то, как введение дополнительного связного пространства (помимо самих данных) может упростить кое-какие задачи интерфейсного характера. То-есть, пост будет про то, как в самом деле работает jQuery.my.

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

В этой связи небольшой опрос. проставьте, плиз, в комментах, по каждому пункту 0, 1 или 2.

0 – не знакомое понятие, 1 – плохо знакомо, 2 – более-менее понятно (или лучше).


  1. Гомотопия

  2. Изоморфизм

  3. Функтор

По результатам суммирования я выберу какую-то одну схему повествования.

UPD. Не стесняйтесь, комментирование к этому посту открыто для всех.

Date: 2015-06-03 02:45 am (UTC)
From: [identity profile] morfizm.livejournal.com
1. 0
2. 2
3. 1

P.S. Читаю по ссылке тонского (http://tonsky.me/talks/2015-frontendconf/), обалденные картинки. Модельки для DOM-а - вообще зачётно.

Date: 2015-06-03 02:50 am (UTC)
From: [identity profile] aealo.livejournal.com
1. 0
2. 2
3. 1

Date: 2015-06-03 04:11 am (UTC)
From: [identity profile] archaicos.livejournal.com
0, 0, 0. Если где и упоминались в вузе, то мало и забыты. На работе не всплывают.

Date: 2015-06-03 05:28 am (UTC)
From: [identity profile] morfizm.livejournal.com
Морфизмы это очень просто: есть два множества, пусть A и B, на одном операция f: AxA -> A, на другом операция g : BxB -> B.

Морфизм это такое преобразование элементов из одного множества в другое m : A -> B, чтобы результаты операций сохранялись, т.е. результат соответствующей операции (g) на отображённых элементах является отображённым результатом исходной операции (f) на исходном множестве. Типа, g(m(a1), m(a2)) = m(f(a1, a2)).

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

Скажем, очевиден изоморфизм между множеством A={0, 1} и операцией f="сложнение по модулю 2", и множеством B={false, true} и операцией g="исключающее или". Изоморфизм в данном случае это будет отображение m, переводящее 0 в false и 1 в true. Мало того, в силу симметрий тут существует и ещё один изоморфизм - это 0 в true и 1 в false :)

Надеюсь, теперь напишешь 0, 2, 0 ;)

Date: 2015-06-03 05:41 am (UTC)
From: [identity profile] ermouth.livejournal.com
Небольшое замечание, несколько не по теме.

Изоморфизм – это не так и просто в общем случае. Понятие изоморфизма графов, например, совсем не так очевидно, как кажется.

Date: 2015-06-03 05:49 am (UTC)
From: [identity profile] morfizm.livejournal.com
Хм, поясни, что ты имеешь в виду. Мне в упор не приходят примеры изоморфизма графа, где суть изоморфизма была бы менее очевидна, чем на описанном примере.

Случаи с графами идеально вписываются в определение выше, для неориентированных графов g и f это функции инцидетности, т.е. дающие true/false (есть ли ребро), для ориентированных - наличие ребра + направление (скажем, -1, 0 и 1). Так как множество вершин конечно, то изоморфизм (если существует хоть один) будет перестановкой.

Графы лишь добавляют наглядности, т.к. можно представить себе графическую модель графа (вершины точки, рёбра линии/шнурки/полоски), взять один из графов за какую-то вершину и начать прикладывать вершины и рёбра к первому графу, чтобы везде соответствовало. Не соответствует - пробовать по-другому прикладывать. Вот тебе сразу и брутфорсный метод поиска изоморфизма.

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 06:04 am (UTC) - Expand

Date: 2015-06-03 05:52 am (UTC)
From: [identity profile] morfizm.livejournal.com
Мне кажется, сложности в изоморфизмах начинаются с изоморфных подгрупп, и дальше в ту сторону. Но тут, скорее, сложности в осознании "что такое подгруппа", а не "что такое изоморфизм".

Date: 2015-06-03 05:54 am (UTC)
From: [identity profile] archaicos.livejournal.com
Не напишу. Недостаточно понятно, как и большинство текста в Wikipedia и на первых двух-трёх страницах, выдаваемых google.

> Морфизмы это очень просто: есть два множества, пусть A и B, на одном операция f: AxA -> A, на другом операция g : BxB -> B.

В какой части этого предложения находятся морфизмы? A? B? f? g? Все вместе? Условно, безусловно?

> Морфизм это такое преобразование элементов из одного множества в другое m : A -> B, чтобы результаты операций сохранялись, т.е. результат соответствующей операции (g) на отображённых элементах является отображённым результатом исходной операции (f) на исходном множестве. Типа, g(m(a1), m(a2)) = m(f(a1, a2)).

Одного ли типа элементы множества A (аналогично, B)? Одного ли типа элементы в обоих множествах A и B?

Не понимаю смысла фразы «чтобы результаты операций сохранялись» и того, что за ней. Кто здесь морфизм (кроме тебя)? m? f? g? Все? И зачем так многго разных букафф?

Дальше не очевидно.

Date: 2015-06-03 05:58 am (UTC)
From: [identity profile] morfizm.livejournal.com
> В какой части этого предложения находятся морфизмы? A? B? f? g? Все вместе? Условно, безусловно?

Это предложение было вводным, определение морфизма в следующем, и оно использует A, B, f, g. Морфизм это отображение m.

> Одного ли типа элементы множества A (аналогично, B)? Одного ли типа элементы в обоих множествах A и B?

Похеру. Похеру.
Совершенно произвольные множества.

> Не понимаю смысла фразы «чтобы результаты операций сохранялись» и того, что за ней.

Это словесное пояснение формулы: g(m(a1), m(a2)) = m(f(a1, a2)).

Разжёвываю ещё: т.е. ты вычисляешь какую-то операцию на множестве A, скажем, f(a1, a2) = a3. Потом применяешь морфизм и получаешь элементы из множества b: b1 = m(a1), b2 = m(a2), b3 = m(a3). А потом вычисляешь g(b1, b2), и офигеваешь от того, что результат получался b3. Если так получается всегда (на области определения m), то m это морфизм! Ура!

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-03 06:13 am (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 06:15 am (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 07:24 am (UTC) - Expand

Date: 2015-06-03 06:02 am (UTC)
From: [identity profile] morfizm.livejournal.com
Ну и вообще, нет такого понятия как "тип элементов во множестве".

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

Когда говорят про "тип элементом во множестве", то подразумевают некоторое другое множество (назовём его "типом", подмножество которого ты рассматриваешь.

В контексте этого обсуждения, не нужно усложнять. Нет никаких других множеств, кроме A и B, и подмножествами друг друга они являться совершенно не обязаны (хоть и могут).

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-03 06:15 am (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 07:12 am (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 07:13 am (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 08:15 am (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 08:17 am (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 06:36 am (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 07:08 am (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 07:17 am (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 07:28 am (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 07:33 am (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 07:52 am (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 07:59 am (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 08:24 am (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 08:32 am (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 07:55 am (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 07:39 am (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 07:46 am (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 07:10 am (UTC) - Expand

Date: 2015-06-03 11:27 am (UTC)
From: [identity profile] ermouth.livejournal.com
Я попробую попроще, чем morfizm, объяснить – с учётом специфики и на примерах.

1. Пусть у тебя есть какой-то объект в памяти, дерево, скажем. Ещё есть сериализатор этог дерева в строку. И ещё есть парсер из валидной строки (корректной структуры) обратно в дерево. Пара "сериализатор-парсер" формирует изоморфизм – однозначное отображение туда и обратно.

2. Пусть у тебя есть с одной стороны строка, а с другой – вагон с сапогами и апельсинами.

Пусть у тебя также есть два аппарата.

Первый идёт по строке и берёт в зависимости от бита (0/1) сапог или апельсин из вагона, ставит на нём номер бита по порядку (если номера на нём ещё нет) и кладёт обратно в вагон. Если номер уже есть – просто кладёт в вагон и берёт следующий сапог/апельсин.

Второй аппарат – берёт из вагона что попало и ставит в строку, в нужный бит, ноль или один. Если на сапоге или апельсине ничего не написано – просто кладёт обратно и берёт следующий.

Эта пара аппаратов реализует изморфизм между строками и вагонами с апельсинами/сапогами.

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

Как-то так )

Date: 2015-06-03 09:05 pm (UTC)
From: [identity profile] morfizm.livejournal.com
Дим, все три твоих примера - это примеры биекций, а не изоморфизма. Изоморфизм это всё-таки специфичней, чем биекция. Изоморфизм это биекция с определёнными свойствами - такими, что результат выполнения некоей операции на исходном множестве маппиться в соответствующий результат соответствующей операции на соответствующих элементах конечного множества. Т.е. нужно разговаривать не только про отображение элементов, а ещё и про отображение операций.

Date: 2015-06-03 09:29 pm (UTC)
From: [identity profile] ermouth.livejournal.com
Думаю, ты ошибаешься.

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

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

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 09:50 pm (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 10:06 pm (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 10:14 pm (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 10:18 pm (UTC) - Expand

Date: 2015-06-03 09:30 pm (UTC)
From: [identity profile] ermouth.livejournal.com
И, кстати, строго говоря это биекция специфичней, чем изоморфизм )
Edited Date: 2015-06-03 09:30 pm (UTC)

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 09:54 pm (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 10:05 pm (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 10:09 pm (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 10:11 pm (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 10:14 pm (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 10:23 pm (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 10:27 pm (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 10:22 pm (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 10:39 pm (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 10:52 pm (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 11:00 pm (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 11:07 pm (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 11:08 pm (UTC) - Expand

(no subject)

From: [identity profile] morfizm.livejournal.com - Date: 2015-06-03 10:53 pm (UTC) - Expand

Date: 2015-06-03 05:39 am (UTC)

Date: 2015-06-03 09:37 am (UTC)
From: [identity profile] tonsky.livejournal.com
0, 1, 0

Date: 2015-06-03 10:45 am (UTC)
From: [identity profile] ermouth.livejournal.com
Погоди-погоди, а ты разве на Хаскеле не пишешь? Ну или как минимум не игрался с Хаскелем?

Date: 2015-06-03 11:21 am (UTC)
From: [identity profile] tonsky.livejournal.com
Нет, и после этого комментария, видимо, не буду :)

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 11:31 am (UTC) - Expand

(no subject)

From: [identity profile] tonsky.livejournal.com - Date: 2015-06-03 01:31 pm (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-03 05:45 pm (UTC) - Expand

Date: 2015-06-03 09:55 am (UTC)
From: [identity profile] gintaras.livejournal.com
0 0 0,
если это кому-то интересно

Date: 2015-06-03 10:31 am (UTC)
From: [identity profile] ermouth.livejournal.com
Не верю, что ты не знаешь, что такое биекция. Имхо ты прибедняешься, прости )

Date: 2015-06-04 06:58 am (UTC)
From: [identity profile] gintaras.livejournal.com
Боюсь, что моя репутация сейчас упадёт ниже плинтуса - слова не знал :) Я, честно говоря, не лез в высшую математику и высшую алгебру после университета - ни в тензоры, ни в вихри с роторами. А всё, что связано с множествами - всегда было вне поля моего внимания. :)

Единственное, что мне было интересно после универа какое-то время - это эконометрика.

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-04 08:24 am (UTC) - Expand

Date: 2015-06-04 06:25 am (UTC)
From: [identity profile] soloviewoff.livejournal.com
0 2 2 видимо

Date: 2015-06-04 08:23 am (UTC)
From: [identity profile] ermouth.livejournal.com
Я на всякий случай спрошу – функтор не в си-плюсплюсном смысле случайно? Если что, не обижайтесь )
Edited Date: 2015-06-04 08:23 am (UTC)

Date: 2015-06-04 02:15 pm (UTC)
From: [identity profile] soloviewoff.livejournal.com
Плюсовые "функторы" это просто такие closures для бедных с this внутри? Нет, не их.

Больше про
trait Functor[F[_]] {
  def fmap[A, B](f: A => B): F[A] => F[B]
}

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-05 04:58 am (UTC) - Expand

(no subject)

From: [identity profile] soloviewoff.livejournal.com - Date: 2015-06-05 07:31 am (UTC) - Expand

(no subject)

From: [identity profile] soloviewoff.livejournal.com - Date: 2015-06-05 07:37 am (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-05 07:54 am (UTC) - Expand

(no subject)

From: [identity profile] soloviewoff.livejournal.com - Date: 2015-06-05 08:16 am (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-05 08:35 am (UTC) - Expand

(no subject)

From: [identity profile] ermouth.livejournal.com - Date: 2015-06-05 08:09 am (UTC) - Expand

Date: 2015-06-09 08:38 am (UTC)
From: [identity profile] archaicos.livejournal.com
Я долго собирался что-то умное написать тут. Или понять. Но не срослось. Буду писать неумное.

Как человек глупый, необразованный и наверное некультурный, я стараюсь изложить материал наиболее тупо и для таких же необразованных и неокультуренных, когда мне приходится писать главу книги или очередную статью для конечного читателя (а не для критика!). Т.е. на уровне не выше последнего класса нормальной школы - первого курса вуза, а кое-где аж на уровне первых классов школы, т.к. какие-то вещи уходят в типа мышечную память, в чующее нутро, а нужно не примерно на глаз что-то сделать, а присмотреться к давно забытым деталям, к тому, к чему глаз замылился. Короче, чем проще и чем более на пальцах, тем лучше. Так информация легче становится знанием у большинства, идёт в массы (кроме совсем уж ленивых, которые не то, что жевать, а проглотить не хотят). Мне как-то так повезло, что я учился по большей части по такому понимаемому материалу по матехническим предметам. Читаёшь и всё ясно. Следишь за лектором, записываешь в тетрадь, всё ясно. Без этих вот «очевидно, что X», когда нихера не очевидно. Без сущностей ради сущностей или с очень понятными сущностями (к слову, Фурье преобразование на синусах и косинусах - антипример, на экспоненте практичней делать). Я в курсе, что не всё можно наглядно объяснить, но мы вроде и не лезем в дебри какой-нибудь очень теоретической квантовой физики, где пальцы слишком толстые, чтобы на них объяснять. :)

Кароч! Я хачу видеть некультурнае абяснение для тупыхх. Я его тогда сам с большей вероятностью пожую и не выплюну на полпути. :) Правда, я поглядываю на всякую функциональщину какте-то там категории и то, что рядышком, но нейдёт. Специально мне этим заниматься не нужно, а понятных текстов чтоб быстренько на досуге что-то разобрать что-то не так уж и много пробегает. И до сих пор остаётся вопрос нахуа оно. Не так чтоб совсем нахуа, я кой-какие плюсы знаю, которые идут впротивовес структурно-итеративно-декларативным минусам. Но всей картины и каких-то её деталей не знаю. А вопрос наверное важный. Я что-то теряю? Или пох, так как в итоге внутре у неё всё равно нолики и единички и регистр стека, и от кэша не избавиться, и параллелилить всё равно нужно с умом, а не с упованием на какой-нибудь хреньворк или VM?

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

Ну, вот. Глупого наговорил. Теперь умно помолчу.

Profile

ermouth: (Default)
ermouth

November 2021

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 7th, 2025 06:14 pm
Powered by Dreamwidth Studios