таксебемысль 8. Про роботов и функториальность гомологий.

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

Есть прикольная штука, взятая, кажется, из книжки Зомородиана по applied topology, которая призвана продемонстрировать, зачем нужна алгебраическая топология и функториальность (!) для повышения этих ваших надоев молока.

Допустим, у нас есть робо-рука, представляющая из себя набор последовательно соединенных хреновин произвольной геометрии. Важно, что каждые две последовательные хреновины соединены круговым шарниром. Таким образом конфигурации роборуки задаются набором из n углов - для положения каждого шарнира по углу. Пространство конфигураций, стало быть, представляет из себя произведение n окружностей, т.е. n-мерный тор T^n (пренебрежем для ясности возможными физическими самопересечениями роборуки).

Допустим теперь, что на конце руки торчит ортогональный репер. Пространство всевозможных ортогональных реперов - это группа SO(3), что топологически есть не что иное, как проективное пространство RP^3. Каждая конфигурация шарниров задает некое положение репера. Таким образом, имеется непрерывное отображение
f: T^n —> SO(3)

Нам хочется научиться решать задачу обратной связи, то есть по заданному реперу вычислять набор шарнирных углов, который его задает. В идеале, хотелось бы, чтобы зависимость конфигурации шарниров от репера была непрерывной. Значит, нам хотелось бы найти сечение f, т.е. такое отображение
g: SO(3) —> T^n

что fg=id_{SO(3)}.

Такого не бывает. Действительно, перейдем к гомологиям. Первые гомологии T^n - это Z^n, первые гомологии SO(3) - это Z/2Z. Получаем, что g_*=0, поскольку в гомологиях тора нет кручения. Значит, f_*g_* равно нулю, и не равно id_{H_1(SO(3))}, противоречие. Тут функториальность гомологий прямо-таки по существу.

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

Комментариев нет:

Отправить комментарий