Обновить
39
0
sysprg@sysprg

Пользователь

Отправить сообщение

Алгоритмы, вдохновлённые природой

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели7.9K

В последние годы в нашей повседневной речи плотно закрепилось словосочетание «нейронные сети». Этот термин означает набор методов и программных решений из машинного обучения, дискретной математики и информатики. Но про что совсем часто забывают — он происходит из нейробиологии. Несмотря на очевидное название, нейросети — это не набор операторов IF и ELSE, а модели, вдохновлённые нервной системой живых организмов. Их эффективность в пору, когда у нас есть такие генеративные модели как GigaChat и Kandinsky, наглядно видна каждому. 

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

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

Читать далее

Почему для меня так важен алгоритм CORDIC

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели28K

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

Перейду сразу к делу и скажу, почему я так сильно люблю этот алгоритм, а затем займёмся изучением принципов его работы. По сути, фактические операции CORDIC весьма просты — как я уже сказал, это сдвиги и сложение — но выполняет он их путём комбинирования векторной арифметики, тригонометрии, доказательств сходимости и продуманных техник компьютерных наук. Лично я считаю, что именно это имеют ввиду, описывая его природу, как «элегантную».
Читать дальше →

41 000 лет назад земной щит внезапно исчез

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели39K

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

Такое происходило много раз в истории нашей планеты, в том числе 41 000 лет назад во время палеомагнитного экскурса Лашамп-Каргаполово.

Космические лучи — это высокоэнергетические частицы, обычно протоны или атомные ядра, которые летят через космос с релятивистскими скоростями. Обычно магнитный щит Земли отклоняют их, после чего они удаляются от планеты, улетая в космос. Но щит — это природное явление, и его сила меняется, как и его ориентация. Иногда из-за этого космические лучи попадают в атмосферу Земли.

Читать далее

Насколько реалистична отрицательная масса в контексте современной физики

Время на прочтение7 мин
Охват и читатели20K

Привет, Хабр.

Напомню, что время от времени я обращаюсь к истории естественнонаучных идей, в том числе, заведомо тупиковых и развенчанных. Три ярких примера исходно неверных допущений, которые привели к великим научным открытиям, я привёл в моей последней февральской публикации «Случай является на помощь тому, кто неустанно ищет». Ещё несколько публикаций такого рода, которые приятно вспомнить — это «Из чего состоит мировой эфир. Последняя теория Менделеева» (+65, 46k просмотров), «Тяжёлое золото Сиборга и алхимические отголоски ядерных реакций» (+25, 4,8k просмотров) и «Не надувайте варп-пузырей, работая на оборонку» (+89, 80k просмотров). В последней из упомянутых публикаций я слегка затрагивал теоретические проблемы (не)существования отрицательной массы и отрицательной энергии. Получение этих субстанций открыло бы нам путь к мгновенным перемещениям в пространстве (пресловутый варп-двигатель и искусственные червоточины) и к антигравитации. В настоящее время существование материи с отрицательной массой считается практически невозможным, так как не согласуется с физикой Эйнштейна, хотя, и здесь есть место для построения моделей и планирования экспериментов. В сегодняшней публикации я хочу рассмотреть новейшую историю поисков отрицательной массы.

Читать далее

Чудесное совпадение или ожидаемая связь: почему π²≈g

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели125K

Давайте ненадолго перенесёмся в школьные годы и вспомним уроки математики и физики. Помните, чему равно число π? Естественно, помните, мы же на Хабре! А чему равно π в квадрате? Это тоже странный вопрос. Конечно, 9,87. А чему равно ускорение свободного падения g помните? Ещё бы, это число так тщательно вдолбили в нашу память, что захочешь — не забудешь: 9,81 м/c². Конечно, оно может варьироваться, но для решения базовых школьных задачек мы обычно использовали именно это значение.

А теперь, внимание, следующий вопрос: а с какого это перепугу π² примерно равно g?

Читать далее

Изобретение радио

Уровень сложностиПростой
Время на прочтение61 мин
Охват и читатели12K

Кто изобрел радио? Попов, Маркони или кто-то еще? Кому отдать пальму первенства первооткрывателя радиосвязи? В этом вопросе поможет разобраться ресурс, посвященный Николе Тесле.

Читать далее

Мы с тобой одной крови?

Время на прочтение8 мин
Охват и читатели14K

Ранее в этом блоге я уже затрагивал тему неоднородности человеческой крови, сложности её переливания и создания кровезаменителей. Публикация «История крови» набрала рейтинг +102, а также я получил за неё один из самых восхитительных отзывов. Мне довелось узнать, что за чтением этой публикации бывалый хабровчанин пропустил остановку и случайно доехал на маршрутке до конечной.

Так что я давно подумывал о возвращении к этой теме — и сегодня остановлюсь на том, что все группы крови после 0 появились в результате мутаций. То же касается и многочисленных антигенов, которые находятся на поверхности кровяных телец. Но мутации – процесс непрерывный, поэтому в некотором смысле образование новых групп крови не прекращалось никогда. О том, как исследовались эти мутации, и о новейших открытиях, совершённых к концу 2022 года, я расскажу под катом.

Читать далее

Вычисление 2D-коллизий: алгоритм Гилберта — Джонсона — Кирти

Время на прочтение11 мин
Охват и читатели26K
image

Я занялся изучением процессов распознавания коллизий, и это привело меня к алгоритму Гилберта — Джонсона — Кирти (Gilbert-Johnson-Keerthi, GJK).

Все примеры кода в посте написаны на TypeScript. В примерах используются созданные мной структуры, которые подробно в посте не рассмотрены. Они просты и их можно посмотреть в репозитории GitHub:

  • Vector
  • IShape
  • Collision

Весь код из поста хранится в репозитории GitHub:

https://github.com/jthomperoo/gjk-ts-implementation

Пост написан на основании этой статьи и рекомендованного в ней видео:


Введение


GJK — это алгоритм, предназначенный для определения пересечения двух выпуклых фигур. Он прост и реализуется при помощи обобщённой «вспомогательной функции», позволяющей использовать более общий подход — аналогичным образом можно обрабатывать многоугольники и фигуры, состоящие из кривых, например, эллипсы.
Читать дальше →

Алгоритм пересечения полигонов

Время на прочтение20 мин
Охват и читатели18K

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

Читать далее

Главные отличия PCA от UMAP и t-SNE

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели12K

Здесь будет рассказано о главных отличиях самого старого и базового алгоритма снижения размерности - PCA от его популярных современных коллег - UMAP и t-SNE. Предполагается, что читатель уже предварительно что-то слышал про эти алгоритмы, поэтому подробного объяснения каждого из них в отдельности приведено не будет. Вместо этого будут объяснены самые важные для практики свойства этих алгоритмов и то, на какие связанные с ними подводные камни можно налететь при неосторожности. Все особенности будут описаны на примерах, с минимумом теории; те пытливые умы, что почувствуют в процессе чтения жажду математической строгости, смогут удовлетворить её в литературе, ссылки на которую будут даны по ходу дела и в конце статьи.

Читать далее

Алгоритм деления 2W-разрядных чисел с использованием операций с числами разрядностью W

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели2.9K

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

Читать далее

Вы думаете рисовать линии это просто?

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели31K

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

Читать далее

Самое понятное объяснение парадокса близнецов

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели60K

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

Кратко напомню суть парадокса

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

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

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

Читать далее

Анонимная сеть Hidden Lake → анализ QB-сетей, функций шифрования и микросервисов на базе математических моделей

Уровень сложностиСложный
Время на прочтение17 мин
Охват и читатели5.5K

Анонимная сеть Hidden Lake (HL) - это децентрализованная F2F (friend-to-friend) анонимная сеть с теоретической доказуемостью. В отличие от известных анонимных сетей, подобия Tor, I2P, Mixminion, Crowds и т.п., сеть HL способна противостоять атакам глобального наблюдателя. Сети Hidden Lake для анонимизации своего трафика не важны такие критерии как: 1) уровень сетевой централизации, 2) количество узлов, 3) расположение узлов и 4) связь между узлами в сети.

Читать далее

Подключаем дисплей к любому одноплатнику с SPI: большой мануал о поиске экранчиков для ваших проектов

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели79K
image

Сейчас появилось достаточно много различных дешевых одноплатников с очень достойными характеристиками, которые вполне можно назвать экономичными и портативными. Однако очень часто встает вопрос вывода изображения на дисплей: к сожалению, в подобные устройства обычно ставят урезанные версии чипсетов без видеовыхода на обычные матрицы. Конечно в них практически всегда есть HDMI, но это совершенно не выход для портативного устройства: прожорливый чип скалера будет очень негативно влиять на время работы от АКБ. Да и сами подобные дисплеи очень дорогие: почти 2.000 рублей за матрицу со скалером — это действительно бьет по карману. Сегодня я расскажу Вам о существующих протоколах для дисплеев, подскажу, как применить экранчики от старых навигаторов/мобильников и мы подключим с вами SPI-дисплей к одноплатнику без видеовыхода. Причем мы реализуем как просто библиотеку, которая позволяет выводить произвольную графику из ваших программ, так
и службу, которая будет напрямую копировать данные из фреймбуфера и преобразовывать в формат для нашего дисплея. Интересно? Тогда жду вас в статье!
Читать дальше →

Основы линейной регрессии

Время на прочтение13 мин
Охват и читатели248K
Здравствуй, Хабр!

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

! Осторожно, трафик! В статье присутствует заметное число изображений для иллюстраций, часть в формате gif.
Читать дальше →

Существует ли частотная область в реальности?

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели13K

Частотная область — волшебное математическое пространство, которое трансформирует комплексные сигналы в амплитуды и фазы синусоид. Она открывает нам возможность применять разнообразные методы обработки сигналов, казавшиеся почти недостижимыми при их анализе в наиболее очевидной форме, а именно — во временной области.

Однако насколько материально частотное пространство? Дискретное преобразование Фурье (DFT) имеет ключевое значение в сферах связи и анализа сигналов, но не раскрывает ли оно более глубокие, скрытые аспекты реальности? Рассмотрим, к примеру, квадратные волны. Действительно ли они существуют, если преобразование Фурье разлагает их на ряд нечетных гармоник синусоид, которые, в свою очередь, эффективно предсказывают поведение электронных схем в реальном мире?

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

Читать далее

Индуктивная статистика: доверительные интервалы, предельные ошибки, размер выборки и проверка гипотез

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели28K

Одной из самых распространённых задач аналитики является формирование суждений о большой совокупности (например, о миллионах пользователей приложения), опираясь на данные лишь небольшой части этой совокупности - выборке. Можно ли сделать вывод о миллионной аудитории крупного мобильного приложения, собрав данные 100 пользователей? Или стоит собрать данные о 1000 пользователях? Какую вероятность ошибиться при анализе мы можем допустить: 5% или 1%? Относятся ли две выборки к одной совокупности, или между ними есть ощутимая значимая разница и они относятся к разным совокупностям? Точность прогноза и вероятность ошибки при ответе на эти и другие вопросы поддаются вполне конкретным расчётам и могут корректироваться в зависимости от потребностей продукта и бизнеса на этапе планирования и подготовки эксперимента. Рассмотрим подробнее, как параметры эксперимента и статистические критерии оказывают влияние на результаты анализа и выводы обо всей совокупности, а для этого смоделируем тысячу A/A, A/B и A/B/C/D тестов.

Читать далее

Алгоритм расчёта расстояния между строками

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели7.7K

По работе стояла задача оптимизации поиска по адресам (улицы, дома и объекты). Главный критерий - нахождение адреса, если написано с ошибками или не дописан он в полной мере. Bert’ы, косинусные расстояния эмбеддингов и т.д. не подходили, так как они заточены под смысловой поиск, а в адресах смысла нет. TF-IDF c лемматизацией тоже не очень подходил для этой задачи, результаты были плохие.

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

Цель данного поста описание только алгоритма.

Читать далее

Калибровка магнитометра с помощью обобщённого фильтра Калмана

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.4K


В настоящее время широко доступны датчики на основе магнитометров. Они позволяют легко получить направление на магнитный север (или истинный, если, конечно, вы учтёте магнитное склонение в вашей местности). Это может быть полезно для определения ориентации оси рысканья/курса беспилотных аппаратов. Одна из проблем магнитометров связана с их калибровкой, поскольку на магнитометр влияют находящиеся рядом с ним магнитотвёрдые (имеют собственное магнитное поле) и магнитомягкие (легко намагничиваются от внешнего магнитного поля, в том числе от поля Земли) материалы. Ниже я расскажу, как избавиться от влияния этих материалов и откалибровать магнитометр.
Читать дальше →

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность