Русский
Русский
English
Статистика
Реклама

Границы

Как плохо спроектированный UX у теста на коронавирус чуть не посадил нас на самоизоляцию, но дырка в безопасности спасла

16.09.2020 18:22:11 | Автор: admin

Это я, пишу скрипт по перебору параметров для POST запроса на gov.tr, сидя перед границей в Хорватию.

Как все начиналось


Мы с моей женой путешествуем по миру и работаем удаленно. Недавно переезжали из Турции в Хорватию (самая оптимальная точка, чтобы заехать в Европу). Чтобы не сесть на карантин в Хорватии, нужно иметь справку об отрицательном анализе на ковид, сделанном не позже 48 часов до въезда.

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

В аэропорт приехали за 7 часов до вылета, нашли пункт сдачи теста. Делают все сумбурно: подходишь, даешь паспорт, платишь, получаешь 2 наклейки с barcode, идешь в мобильную лабораторию, там у тебя забирают одну из этих наклеек для идентификации твоего анализа. После выходишь, и тебе говорят: заходи на этот сайт: enabiz.gov.tr/PcrTestSonuc, вбивай свой баркод и последние 4 цифры паспорта, через какое-то время будет результат.



Но если вбивать данные сразу после сдачи анализа, страница выдает ошибку.




Уже тогда в мою голову закрались мысли о прекрасном UX, в котором при любой ошибке оператора, который вбивал паспортные данные, нет никакого способа узнать свой результат.

Перед вылетом


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




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

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

Стоило мне зайти в самолет, как по моему коду появилась информация, что у меня тест отрицательный.



По прилету


И вот тут начинается веселье! Как только мы прилетели и подключились к местному WiFi, выяснилось, что запись моей жены так и не находится в базе. А на самой границе к документам подходили очень внимательно: пограничник брал тест на коронавирус и уносил в отдельную комнату на проверку его реальности. Мы решили, что расскажем нашу трустори как есть и узнаем, какие у нас есть варианты.

Пока мы стояли в очереди, я решил проверить на правильных (своих) и неправильных данных, как реагирует страница валидации.
Выяснилось, что она отправляет пост запрос на www.enabiz.gov.tr/PcrTestSonuc/GetPcrRaporVerifyWithKimlik, со следующими параметрами:
barkodNo=XX
kimlikNo=YY
kimlikTipi=2
где barkodNo номер баркода, kimlikNo номер паспорта, kimlikTipi фисированный параметр, равный 2 (если заполнять тольо первые два поля). Никаких токенов не было видно. На правильные параметры (мои данные) запрос отдавал 1, а на неправильные 0.

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

В этот момент мы подошли к пограничнику, он выслушал нашу историю и предложил карантин. Но нам явно не хотелось сидеть 14 дней в квартире, поэтому мы попросились немного подождать в транзитной зоне, чтобы за пару часов попробовать разобраться с проблемой. Пограничник вошел в наше положение, сходил узнать, можно ли нам посидеть в белой зоне, и, с согласия руководителя, сказал: okay, just couple of hours.

Я начал искать телефон тех, то делал тест на орону, и параллельно решил протестировать безумную гипотезу: если у этой системы такой ужасный UX, то и система безопасности не должна быть хорошей, хотя и домен gov.tr.

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

Представляете мое удивление, когда даже после 500 непрерывных запросов я не был забанен, а скрипт продолжал бегать со скоростью 20 запросов в секунду с WiFi аэропорта.

Звонки большого успеха не дали: меня перенаправляли от одного департамента другому. Но очень скоро скоро скрипт выдал заветное значение 6505, что было совсем не похоже на реальные 4 цифры паспорта.

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



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

Но было 9 утра и ночь без сна, я опаздывал на онлайн встречу и был рад, что нас пропустили без карантина, поэтому просто начал свой путь по Европе.
Подробнее..

Психологические границы

24.08.2020 12:15:17 | Автор: admin
Психологические границы это знание своего я и умение отделить свое я от другого, свое мнение и самоощущение от мнения и самоощущения другого человека, умение вычленить себя в своей профессии и направить в нужное русло, для себя, своей работы и продуктивности.

Важно знать свои границы, уметь их выстраивать и отстаивать.

Какие бывают границы





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

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

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


Часто к выгоранию приводит то, что мы не знаем границу наших возможностей, не понимаем, что мы сейчас устали, и нам нужен отдых. Не можем вовремя сказать себе: Стоп! И не можем сказать руководителю, который накидывает задачи: Мне уже много. Я беру на себя задачи сверх, сверх, потому что боюсь, что иначе все узнают я самозванец.

Ну и что со всем этим делать?





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

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

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

Общаться с коллегами и узнавать их мнение. Очень помогает объединиться с коллегами и поговорить, как вы себя ощущаете в свой профессии, получить обратную связь и воспринять её объективно. Если вам говорят: Слушай, ты хороший разработчик, у тебя клево получается, примите это. Пусть даже усилием воли. Это бывает сложно, это требует отказаться от некоторых установок.

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

Если я недоволен ситуацией, коллективом, я понимаю, что я здесь не иду в плюс, то большой вопрос, для чего я здесь. Если я не могу сейчас сменить работу, или на мои задачи нет другой компании в этом городе, а я хочу работать именно с этими задачами, то я бы предложила поискать плюсы, хоть какие-нибудь. И выйти на разговор с командой: что мы можем сделать? Спросить их мнение, их ценности, может быть, они себя так же чувствуют, но не могут обсудить между собой.

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

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

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

Берегите себя!
Подробнее..

Внешняя алгебра, которую мы заслужили. Часть 1 симплексы и границы

26.02.2021 18:20:16 | Автор: admin

Мотивация

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

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

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

Внешнее произведение

Суть внешней алгебры в том, что объекты можно умножать. Если вас это не впечатлило, то еще раз - умножать можно любые объекты, а не только числа. Можно умножать людей, города, компьютеры, бухгалтерские счета и все остальное, что подходит под понятие объекта. Такое произведение объектов называется "внешним умножением". Это исторически сложившийся термин для того, чтобы отличать внешнее произведение от внутреннего, которым обычно обозначают скалярное произведение.

Обычно внешнее произведение математики обозначают клином (wedge)\wedge. Но этот знак неудобен. Во-первых, его нет на клавиатуре. Во-вторых, никакого другого умножения, кроме внешнего, для произвольных объектов не существует. Поэтому будем обозначать внешнее произведение звездочкой. Вот оно, умножение элементаa на элементb: a*b .

Выглядит знакомо, да? Но в отличие от привычного произведения чисел внешнее произведение антикоммутативно - проще говоря, меняет знак при перестановке множителей. Вот так:

a*b=-b*a

Это важное свойство, которое является ключевым для внешней алгебры. Из него в частности следует, что внешнее произведение элемента на самого себя может быть только нулем - объектом без знака: a*a = 0 .

Какой смысл несет в себе "внешнее произведение". По простому - это ничто иное, как объединение объектов в список. Поэтому, когда элементов много, то их удобно обозначить списком. Такой упорядоченный список выделим квадратными скобками:a*b*c*d = [abcd]. При этом надо помнить про наличие знака у списка - при перестановке соседних элементов знак списка меняется на противоположный: [abcd] = -[acbd] . Ну и как следствие - в таком списке не может быть одинаковых элементов.

Список с такими свойствами будем называть симплексом. Симплекс из двух элементов - отрезок, из трех - треугольник, и т. д. (Только надо иметь ввиду, что это топологические отрезки и треугольники. У них нет длин, углов и прочих метрических параметров.). Количество элементов симплекса задает его порядок (грейд). Математики чаще используют понятие мерности. Размерность симплекса на 1 меньше его порядка. То есть отрезок является одномерным.

Симплексы можно умножать друг на друга - это будет эквивалентно объединению двух списков: [ab]*[cd] =[abcd] . Но при наличии в множителях одинаковых элементов результатом объединения будет пустой список - нуль: [ab]*[ac]=0 .

Ну и еще одно полезное правило. При перестановке перемножаемых симплексов местами знак меняется на противоположный, если произведение порядков симплексов нечетное:

S_s * P_p = (-1)^{sp} P_p*S_s

Здесь нижние индексы обозначают порядок симплексов.

Обратные элементы

В нашей алгебре не обойтись без понятия единицы. Единица - это такой элемент, при умножении на который с любой стороны симплекс остается без изменений: 1*[ab]=[ab]*1=[ab] . В свою очередь наличие единицы позволяет расширить множество элементов, введя понятие обратных. Кратко обратные элементы именуют коэлементами. При умножении на обратный элемент обращается в единицу. Поскольку у нас не обычное умножение, а внешнее, то важно относительное положение множителей - при перемене мест элемента и обратного ему единица становится отрицательной. Для удобства (связанного с понятием граничного оператора) постулируем, что если обратный элемент расположен слева, то результатом произведения будет 1, а если справа, то -1. Это выглядит поначалу немного непривычно, но в целом окупается:

/a*a=1, \quad a*/a =a/a = -1

Здесь перед коэлементами стоит префикс в виде косой черты /. Если обратный элемент умножается на другой элемент, то результатом будет пустой симплекс - ноль: /a*b=0 .

Коэлемент можно трактовать как отсутствие элемента. Это дырка в множестве. Но интересно, что с коэлементами можно обращаться так же как с обычными. Произведение коэлементов образует обратный симплекс (косимплекс). Для заданного симплекса можно определить обратный. Постулируем, что при умножении обратного слева на исходный должны получить 1 независимо от порядка симплекса: /S*S=1 . Отсюда следует правило расположения элементов в обратном симплексе - в нем порядок элементов меняется на обратный. Таким образом еслиS = [abcd], то/S = /[abcd] = [/d/c/b/a].

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

S_p/S^p=(-1)^p

Если симплекс умножается на косимплекс, то взаимно обратные элементы должны сокращаться. Для того, чтобы правильно учесть знак необходимо элемент и обратный ему поставить рядом и выполнить сокращение с учетом их положения. Например: [ab]*[/a] = [ab/a] = -[a/ab]=b .

Если перемножаемые симплекс и косимплекс содержат элементы, которых нет в другом, то результатом произведения будет ноль: [abc]*[/a/b/d] = [abc/a/b/d] = -[c/d] = 0 .

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

Линейные комбинации и цепи

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

B=[ab]-[ac]+[bc].

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

a*(b+c)=a*b+a*c

Но надо помнить, что умножение здесь внешнее (антикоммутативное). Поэтому некоторые привычные формулы выглядят иначе. Например, внезапно(a + b)*(a-b) =2 b*a.

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

Линейную комбинацию можно рассматривать как разложение некоего объекта того же порядка по базисным. Например, если у нас есть два объектаaиb, то можно определить объектx как их линейную комбинацию:

x=x_a a + x_b b

Полученный объект является зависимым, или производным. Отметим, что умножение производного объекта на симплекс его базиса, дает ноль:[ab]*x=0. То есть зависимые объекты не создают нового пространства. Ну или по другому - размерность пространства определяется количеством независимых элементов.

Коэффициенты разложения элемента по базисным могут быть определены через умножение на коэлементы базиса:

x_a = /a*x, x_b = /b*x

Получается, что внешнее произведение элементов и коэлементов является скалярным (в том смысле, что результат является скаляром). Но между самими элементами скалярное произведение не определено.

Аннулятор и граница

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

Вначале нам понадобится еще одно фундаментальное понятие, которое имеет разные названия, в зависимости от контекста в котором употребляется. Здесь для него используем абстрактный термин - аннулятор, хотя пока и непонятно, чего он там обнуляет. Пусть имеется некое конечное множество элементов, например, a, b, c, d . Тогда аннулятором для данного множества является сумма обратных элементов данного множества:

/z_{abcd} = /a+/b+/c+/d

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

Аннулятор позволяет определить граничный оператор над симплексом как внешнее умножение аннулятора на симплекс. Результатом действия является граница. Вот она, граница симплекса[abcd]:

B[abcd] = /z_{abcd}*[abcd] = [bcd] - [acd] + [abd] - [abc]

Границы настолько важны, что не пожалеем для их обозначения отдельных скобок:

(abcd) == B[abcd]

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

(abc)= /z_{abc}*[abc] == /z_{abcd}*[abc]

Граница (симплекса) есть цепь - линейная комбинация симплексов. Порядок границы на 1 меньше порядка образующего ее симплекса. В частности, вектор - это граница 1-порядка, образованная отрезком (симплексом 2-го порядка):

(ab) = /z_{ab}*[ab] = b - a

Вектор 2-го порядка называют бивектором, 3-го - тривектором и т.д. Граница произвольного порядка может быть названа мульти- или поливектором.

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

g_{abcd} = (a+b+c+d)/4

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

g_{abcd}*(abcd) = (a+b+c+d)*([bcd] - [acd] + [abd] - [abc])/4 = [abcd]

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

Основное свойство границ

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

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

/z_{abcd} * (abcd) = /z_{abcd} * /z_{abcd} * [abcd] = 0

Данная формула раскрывает смысл термина "аннулятор" - при действии на границу аннулятор ее обнуляет. Раскрывая границу как линейную комбинацию симплексов и умножая каждый симплекс на аннулятор, получаем тождества границ:

/z_{abcd} * (abcd) = /z_{abcd} * ([bcd] - [acd] + [abd] - [abc]) = (bcd) - (acd) + (abd) - (abc) = 0

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

(ab) = (ax)-(bx),\\ (abc) = (abx)-(acx)+(bcx),\\ (abcd) = (abcx) - (abdx)+(acdx)-(bcdx).

Общий элементxв правой части тождеств можно также интерпретировать как центр координат. На этом свойстве основано определение векторного пространства с общим центром, который всегда можно исключить. при выражении других границ пространства.

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

Произведение границ

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

(abc)(abd)=([bc]-[ac]+[ab])*([bd]-[ad]+[ab]) = -[bcad]-[acbd] = [acbd]-[acbd] = 0

Если границы имеют один общий элемент, то при умножении они сливаются в одну (компоненту) - это правило слияния границ. Пример слияния двух векторов в 2-границу (бивектор):

(ab)(bc) = (b - a)*(c - b) = b*c - a*c + a*b = (abc)

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

Итак, порядок границы p(B) зависит не только от количества образующих ее элементов n , но и от количества ее компонент m . Порядок границы (ab)(cd) равен 2, несмотря на то, что она содержит 4 элемента. Для получения порядка границы надо из количества элементов вычесть количество компонент: p(B) = n(B) - m(B) .

Кроме того, одна и та же граница может быть образована произведением разных границ меньшего порядка. Например, граница (abc) может быть образована тремя разными парами векторов: (abc) == (ab)(bc)==(ab)(ac)==(ac)(bc) . То есть произведение границ с общим элементом уничтожает информацию о том, какие именно границы умножались - границы сливаются в одну.

Для тех, кому интересны подробности, откуда все это следует

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

\partial (X^p*Y) = \partial(X)*Y+(-1)^p X*\partial(Y)

Здесь граничный оператор (умножение на аннулятор слева /z* обозначен как частная производная\partial - это общепринятое обозначение. Используя данное тождество, можно показать, что\partial[Xv]*\partial[vY] = \partial[XvY]. Проще всего это сделать раскрытием левой и правой частей по правилу Лейбница.

Немного линейной алгебры...

Пространство элементов, с которым мы тут возимся, принято называть аффинным. Это пространство, в котором есть элементы и их линейные комбинации, но нет метрики.

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

Рассмотрим пространство, образованное тремя элементами, среди которых выделим центр - общий элементO. Границей пространства будет бивектор базиса(Oxy). Пусть теперь в данном пространстве есть три элементаa,b,cс известными координатами относительно базисных элементов. Задача состоит в том, чтобы выразить бивектор(abc)через базисный.

Вначале выпишем координаты элементов. Учтем, что сумма коэффициентов разложения элемента по базисным должна быть равна единице - это следствие того, что граница любого элемента пространства должна быть равна 1: z*a=1 . Такие координаты называются барицентрическими. Тогда для базиса из 3-х элементов две координаты являются независимыми, а третья - выражается через них:

a = a_x x + a_y y + (1 - a_x - a_y) \ O = O + a_x (Ox) + a_y (Oy)

Данная формула может быть представлена как координаты вектора (Oa) = a - O :

(Oa) = a_x (Ox) + a_y (Oy)

Аналогичным образом можно найти координаты векторов(Ob)и(Oc). Перемножая векторы, можно выразить координаты бивекторов через базисный бивектор:

(Oab)=(Oa)*(Ob)=(a_x b_y - a_y b_x) (Oxy)

Для нахождения искомого бивектора(abc)воспользуемся тождеством границ из предыдущего раздела: (abc) = (Oab) - (Oac) + (Obc) . Подставляя в него координаты бивекторов, получаем итоговый ответ:

(abc) = abc_{xy} (Oxy) = ((a_x b_y - a_y b_x) - (a_x c_y - a_y c_x) + (b_x c_y - b_y c_x)) (Oxy)

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

Аффинные координаты и площадиАффинные координаты и площади

Коэффициент может быть также выражен как детерминант матрицы: abc_{xy} = det(ABC) . Значения матрицы координатABCравны произведению элементов и базисных коэлементов (за исключением центра координат):

ABC=(a,b,c)*(/z,/x,/y) =\matrix{1 && 1 && 1 \\ a_x && b_x && c_x \\ a_y && b_y && c_y}

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

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

... и топологии

Про топологию говорят, что это геометрия без измерений. В том смысле, что конкретные координаты элементов топологам неинтересны. Поэтому коэффициенты топологических цепей всегда равны +-1. Алгебраические выражения границ симплекса можно интерпретировать топологически. В качестве примера приведем разрезание (топологического) квадрата с вершинами a, b, c, d на два треугольника. Треугольники в данном случае должны быть ориентированы, то есть иметь знак. Тогда квадрат можно представить как сумму (склейку) треугольников:Square = [abc]+[acd]. Применив к данной цепи граничный оператор, получим цепь из 4-х 2-симплексов - это граница квадрата:

/z*Square = (abc)+(acd)=[ab]+[bc]+[cd]+[da]

Склейка симплексовСклейка симплексов

При сложении 2-границ общая сторона треугольников сократилась. В общем случае, можно продолжать склейку треугольников, получая произвольные топологические многогранники. Кажется, что можно любую поверхность представить как сумму треугольников, но на самом деле нет. При покрытии треугольниками поверхности ленты Мёбиуса не удается сократить внутренние границы!

Мы определили границу симплексаBкак результат действия граничного оператора (умножение аннулятора) на некий симплекс. Повторное взятие границы, как уже отмечалось дает ноль:

/z*B = 0

Но вообще говоря, возможны и другие цепи (линейные комбинации симплексов), граница которых нулевая. Цепи с нулевой границей называют цикламиC. Инвариант циклов:

/z*C=0

Циклы - это более общее подмножество цепей, чем границы. В общем случае существуют циклы, которые не являются границами какого-либо симплекса. Их называют гомологиями:

H=C/B

Говоря про циклы, снова оговоримся - это топологические циклы. Так же как в топологическом треугольнике нет величины сторон и углов, так и в топологическом цикле нет величины связи между элементами цикла.

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

Коцепи и дуальность

Для заданного конечного множества независимых элементов существует симплекс предельного порядка, определяемый как произведение всех элементов. Граница данного симплекса называется предельной границей пространства - она имеет максимальный порядок из всех возможных границ на данном множестве. Предельная граница для множества 4-х элементов a, b, c, d : I_3=(abcd) .

Предельная граница множества всегда связна (имеет только одну компоненту). Умножение предельной границы на коэлементы понижает ее порядок, но оставляет границу связной: (abcd) /a = (bcd) . Умножение предельной границы на сумму коэлементов порождает границы, состоящие из компонент. Например,

(/a+/b)(abcd)==(abcd)(/c+/d) = (acd)-(bcd) = (ab)(cd)

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

(ab)(ij)(xy) = -(/a+/b)(/x+/y)I_5=(/i+/j)(/x+/y)I_5=(/a+/b)(/i+/j)I_5

ЗдесьI_5 = (abijxy)- предельная граница 6 элементов. Коцепь 2-го порядка:

(/a+/b)(/i+/j) == /a/i+/a/j+/b/i+/b/j

Видим, что разным коцепям может соответствовать одна и та же граница. Из данных соотношений следует, что границуBна конечном множестве элементов можно задать через коцепь/B. Умножая коцепь на предельную границу, переходим из копространства в обычное:

B = /B*I

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

Дуальное преобразование и звездочка Ходжа - это не одно и тоже!

Для тех, кто вообще в курсе про оператор Ходжа. Оператор Ходжа преобразует одни (поли)векторы пространства в другие векторы того же пространства. Дуальное преобразование преобразует коцепи в границы.

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

Можно определить и обратное дуальное преобразование - от границ (цепей) к коцепям. Пусть дана некая граница (в общем случае произвольная цепь)B. Надо построить дуальную ей коцепь/B для заданного пространства (симплекса) с предельной границей I .

Алгоритм построения может быть таким. Для цепи определяем центроид g (средняя сумма элементов, образующих цепь). "Интегрируем" цепь умножением слева на центроид. Переводим полученный "интеграл" из пространства в копространство умножением на косимплекс пространства/S. Косимплекс пространства однозначно определяется предельной границейI. Полученная коцепь и будет искомой:

/B = /S*(g*B)

В данной формуле круглые скобки обозначают порядок операций.

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

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru