Блог о математике и бизнесе Алексея Тарасова
973 subscribers
93 photos
9 videos
2 files
93 links
Пишу о матмоделях и прикладных задачах.

Сотрудничество: @tarasov_math
Сайт https://tarasov.expert
Download Telegram
#текучка #запрос Есть небольшая задача на аутсорс. Нужно сгенерить на python PDF отчеты с заданным стилем и данными.
Нашел одних ребят, но они только на php готовы.
Мне за последний год несколько команд обращалось, я все контакты растерял. Если кто то из читаталей аутсорсит - пишите.
#награды
Неожиданно победил в конкурсе, в котором записывался. :)
👏6🎉3🐳2
🎉 Итоги конкурса авторских Telegram-каналов — 2025

Мы подвели итоги! В каждой из 15 номинаций выбрали два канала, которые покорили и кураторов, и читателей.

Сохраняйте, подписывайтесь, делитесь с друзьями — это настоящая подборка авторского Telegram 2025 года

🍔 Продукты
@tobeproduct (выбор куратора)
@nemnogoproduct (победитель голосования)

🎨 Дизайн
@bymakstorch
@karma_designera

🖱 Юзабилити
@uxksenia_channel
@what_the_text

💻 Разработка и управление командой
@opensource_findings
@teamlead_stories

📈 Продажи и маркетинг
@jedibizdev
@ignatova_mr_protexti

📣 PR и реклама
@piarchiksprivetom
@killerofer

🗂 Управление проектами
@M3ybeev
@ozornye_stories

🚀 Стартапы
@toxic_in_IT
@RUcofounder

💰 Бизнес и предпринимательство
@delai_raz
@mezhkulturno

🤖 AI и инновационные технологии
@tarasov_math_blog
@cifrabunak

📚 Образование и книги
@producer_c
@voice_and_life

🧑‍💼 Карьера
@fearstop
@it_always_sunny

🧭 Менторство
@takoyvopross
@marina_omichka

🧠 Психология и саморазвитие
@mister_igor
@ups_and

🤣 Юмор
@wb_prekrati
@bogdan_e

🏆 Призы победителям

Новые читатели — этот пост скоро появится в каждом из 15 каналов организаторов конкурса.
— Партнёр конкурса TGStat дарит 1 месяц бесплатной подписки на Premium-аналитику для Telegram-каналов победителям голосования.
Radiogram дарит 3 месяца бесплатных подкастов для победителей в каждой номинации.
Teleblog дарит 6 месяцев бесплатной подписки или 80% скидку на годовую подписку Teleblog Pro для победителей в каждой номинации.

В конкурсе приняли участие 389 каналов! А всего мы получили более 800 заявок — сами не ожидали такого интереса.

Спасибо, что были с нами, делали посты, голосовали и поддерживали друг друга. Мы обязательно учтём всё, что узнали в этом году, и проведём ещё один конкурс в 2026-м — уже с новыми фишками и партнерами.

До встречи ✌️
🎉117👍2
#математика #текучка
Звонил на прошлой неделе из прошлой жизни научный руководитель, говорит нашел ошибку в моей старой теореме. Разобрались, ошибки нет. Пока разбирался, нашел свои старые картиночки. Выложу самую красивую.

Есть такое число Хееша, это сколько раз можно обложить многоугольник вокруг себя. Если многоугольник совсем кривой, то 0, а если им можно упаковать все пространство то бесконечность. Сложно найти такие многоугольники, у которых оно больше нуля, но не бесконечность. Вот мой пример с реберным числом Хееша 6, то есть при условии, что я покрываю только ребра, но не вершины. Рекорд с нормальным числом Хееша - 5.
Пример состоит из дуг, но их можно превратить в многоугольник.
11👍5🔥2🤩1
Как правильно фильтровать варианты?
#алгоритмы

Предположим у нас есть сложный алгоритм с многоуровневым перебором. Скажем 5 шагов, и на каждом случаи размножаются от 5 до 100 раз.
Перебрать всё невозможно 100^5= 10 миллиардов, комбинаторный взрыв. При этом все перебирать и не нужно. Довольно быстро находится хороший ответ.


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

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

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

Если мы не понимаем какой вариант лучше, а какой хуже, то просто на промежуточном шаге, когда на вход нам пришел вариант с вероятностью p, а мы расщепили его на K подвариантов, то вероятность новых подвариантов будет p/K.
С учетом того, что у каждого шага обычно бывает разное количество вариантов, то вероятности в итоге будут сильно различаться.
Если есть критерий который позволяет примерно оценивать качество получившихся вариантов, то еще лучше. Будем назначать вариантам получше вероятность побольше, а вариантам похуже - поменьше.


Должен быть общий параметр программы - минимальная вероятность варианта. Если это скажем 1e-6 то больше миллиона вариантов мы не переберем.

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

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

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

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

Мысль не банальная, один внешний заказчик использовал некую естественную вещь сильно коррелирующую с вероятностью, но не её.

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


Метод еще хорош, тем, что его потом удобно подгонять методами машинного обучения. Есть вся статистика по оценочным вероятностям и их потом можно уточнять. Я так понимаю коммерческие ЦЛП с 2010 так заметно ускорились именно благодаря этому подходу.
🔥61👍1
#текучка #награды
Обещал
выложить фотку с награждения дипломом. Вот выкладываю. А то спрашивают потенциальные заказчики имел ли я дело дело с ИИ.
👍19🔥10🎉4
#текучка
Начали на этой неделе внедрять алгоритм планирования самолетов в боевую эксплуатацию. И уже этим утром знакомая полетела на самолете, который распланировал мой алгоритм. Приятно работать не в стол и забавно чувствовать себя немножко демиургом 😇.

Upd. На другом таки. Я заранее планировал, при оперативном планировании что-то поменяли
😁10👍9🔥4
Программа как завод.
#алгоритмы #голдратт

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

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

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

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


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

Подход удобен тем, что меньше приходится пересчитывать тяжелые вычисления, удобно строить архитектуру для кластерных и распределенных вычислений и просто отлаживаться.
👍105🔥1
Устроили корпоратив. Собрали народ со всей страны. Наконец увидел всех в живую.
🔥178👍1
Правило остановки солвера.
#для_специалистов #mip

У всех MIP солверов есть ровно две стандартные опции для остановки расчета.
Предел времени (time limit) или достижение заданного отклонения от оценки снизу (gap), то есть найденое решение отличается от оптимального только на 1% скажем.
Если выставить оба параметра, то солвер останавливается по первому сработавшему правилу.

Скажите, кто из читателей тоже делает модельки, это только меня раздражает? 🤯

Если поставить gap то хороший и быстрый расчет останавливается и отдает неоптимальное решение.
А если не ставить, то он уходит в очень долгий расчет там, где уже есть достаточно хорошее решение.

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

Я в старых проектах писал специальную обертку, в которую можно было задать gap как функцию от времени (монотонно растущую). Получалась более гибкая история, которая нам срезала в среднем процентов 50% времени. Писал для Гуроби когда у меня была лицензия, кажется снова придется писать для highs.
🔥6😨3🤔1
ТРИЗ и ИКР (идеальный конечный результат).
#мысль #рецензия

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

Это очень мощная идея. Я успешно применял ее кучу раз в жизни, это очень важная штука. Но очень контринтуитивна, я её долго переваривал.
Я ее воспринимал как сверхнаглость. Весь ТРИЗ с примерами по большому счету нужен чтобы переварить идею ИКР.

Сейчас для меня идея ИКР стала очевидна. Я позже еще пост про это напишу.

Еще в ТРИЗ были чек-листы для именно изобретательской работы: нагреть охладить, собрать разобрать. пустить ток, положить в воду.
Мы уже не патенты пишем и не мастерим изделия. Так что из ТРИЗ реально полезна именно идея ИКР.



Напоследок приведу пример про физика Роберта Вуда. Он заказал пластинку из соли толщиной 1 миллиметр, ему сказали что могут выточить только 2 а дальше она хрупкая и тоньше не получится. Он поспорил, что сделает тоньше.
Вуд просто взял влажную тряпочку и стал протирать пластинку, и допротирал ее до толщины 1/4 миллиметра.
👍8🔥5
Школа Системного Мышления Анатолия Левенчука
#рецензия #системное_мышление
Есть такой очень интересный человек Анатолий Левенчук и он сделал школу системного мышления. Точнее теперь уже менеджмента.

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

Помимо ракет хорошим примером сложных систем являются биологические системы, я по этой причине пишу биологические примеры.

Для себя я определил основные идеи системного мышления так:
1. Системы состоят из подсистем, и являются частью над систем. Такая иерархия систем.
2. Разделение целого на части бывает не только структурное (к которому мы все привыкли), но и функциональное.

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

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

Забавно, например, осознавать, что чуть ли не основной задачей автомобиля является спасти жизнь человека, а не перевезти его из точки А в точку Б. По крайней мере если смотреть на стоимость частей.


Я лично прошел один базовый курс и больше пока не успеваю. Но по отзывам это очень мощная штука и дальше. Лично я подозреваю что там 10% основных идей даст 90% результата, но пока не уверен.
В любом случае разобраться хотя бы первых 10% системного менеджмента, это очень очень полезная штука, которая даст долгосрочный эффект в карьере, зарплате и просто понимании мира.

P.S. Еще у Анатолия Левенчука очень хороший вкус на новые вещи. В 2014 я переживал, что пропустил Биткоин. Это было обидно, так как я работал в центре распределенных вычислений и про Биткоин который их использует не знал. А вот про существование Эфириума я узнал из блога Левенчука, когда Эфириум стоил 30 центов, а главное идейно был очень и очень крутым.
👍4💯3
Продолжаем про системное мышление.
#системное_мышление #кейс

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

Удивительно как легко этот пункт продолбать и не заметить слона в комнате.

Первый пример - школьные автобусы
Вот я описывал старый пример оптимизационной задачи, в которой делали оптимальный развоз школьных автобусов и забыли про школьников, которых возят получили +100% к стоимости и срокам.

Второй пример - сетка телевещания.
Еще один красивый пример описывал автор солвера Hexaly (это очень интересный солвер под специфические задачи, но о нем как-нибудь в другой раз) в своей кандидатской диссертации.

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


Кто девушку платит, тот ее и танцует, это поговорка про функциональные требования и системное мышление. :)

Получилось, что определили сначала двух крупных стейкхолдеров - государство и зрителей и продолбали третьего - рекламодателей.
А после них ТЗ выросло раза в 3-4 и задача стала совсем другой, я так понимаю


Третий пример это проблема вагонетки для автопилотов. Или как системное мышление бьет философию.

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

Забавно что, например, арендованный автопилот может уже иметь другие приоритеты. :)


Еще замечу, что идея учитывать стейкхолдеров очень важна в b2b продажах, когда для одного и того же продукта надо делать разные предложения разным стейкхолдерам внутри компании. И получается такой золотой ключик который открывает двери.
Владельцу можно например говорить про добавленную стоимость, уменьшение рисков, менеджеру про уменьшение головняка, его рост внутри компании, исполнителям объяснять что программа их не заменит, а облегчит работу и еще они премии будут получать, если вот так будут делать (одна алмазная компания конкурент занижала план, чтобы исполнитель мог улучшить их решение и получить премию, даже такое бывает).
Хоть одному не так продаешь и всё, продажа не состоялась. Как если хотя бы одна бороздка ключа не подошла, то замок не откроешь. Я на своей шкуре это испытывал не раз.




Это я еще не рассказал про роли и кучу еще всего. Системное мышление большая все таки штука. Не всё сразу :)
🔥9
#мысль
Услышал архитектурную поговорку.

Красивое наполовину правильное.

Мне очень нравится, потому даже красоту еще до ума доводить надо.
🔥10💯4💅3
#рецензия #продажи #экспорт

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

Но при этом все очень разные и общаться надо было со всеми по разному. С кем-то говорить о погоде, слушать между строк что тебе говорят. Какие-то очевидные для нас вещи оказывается распространены только среди русских. Это все мешает наладить контакт особенно на первом звонке.
Максим мой партнер был в очень большом восторге от книги The Culture Map, где подошли с научным подходом к тому как разные народы по разному общаются. Я сам меньше контачил с клиентами все таки, а Макс говорил что там были ответы на то, почему куча народа сливалось после первого созвона.
Всем кто собирается выходить в мир, эту книгу надо обязательно прочитать.
Куча графиков из этой книжки уже гуляет по интернету, но там и текст важен и полезен. Помогает привыкнуть к мысли, что все люди разные. :)
Есть кстати в русском переводе. Я не сразу нашел.
👍13🔥21
#анализ_данных #домики_для_роботов #кейс

У меня бывают иногда заказы по анализу данных, не слишком часто, но направление интересное, планирую его расширять.
Пару недель назад для одного очень NDA клиента покопался в данных и нашел даже не просто value, а прямо слона в комнате. Увидел, как очень просто уменьшить расходы в 2 раза. Сейчас перепроверяем, а то кажется слишком хорошо, чтобы быть правдой.
Я планировать улучшить процессы на 1-2%, это бы окупило с запасом мои услуги. А ненароком получилось в десятки раз мощнее.

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

Я кстати зимой объявлял про то, что пытаюсь двигаться в сторону создания домиков для роботов. Дата центры очень дорогие, так что идти в эту сторону сложно, а вот лежать получается. И этот проект как раз из этой серии.
👍16🔥4
#алгоритмы #новости
Пока ИИ наступает, человеки умудрились ускорить незыблемое - алгоритм Дейкстры. 😄
🔥7😱2💯1
Новый алгоритм поиска кратчайшего пути на графе так называемый «барьер сортировки»

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

🚀 Что предложил новый алгоритм? https://arxiv.org/abs/2504.17033?utm_source=Securitylab.ru
Вместо сортировки границы текущей области, алгоритм разбивает её на кластеры и выбирает по одному узлу из каждого.
Это снижает количество сравнений и устраняет необходимость сортировки.
Работает как для ориентированных, так и для неориентированных графов с произвольными весами.
Вдохновлён идеями Беллмана-Форда, но использует их точечно, чтобы выявить ключевые «узлы-связки».

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

Для чего это нужно:
🚗 1. Навигация и транспорт
GPS и карты: Google Maps, Waze и другие используют алгоритмы кратчайшего пути для построения маршрутов.
Логистика: Оптимизация доставки товаров, маршруты грузовиков, дронов и курьеров.
Транспортные сети: Расчёт времени поездки в метро, автобусах, авиаперелётах.
🖥 2. Компьютерные сети
Маршрутизация пакетов: Протоколы типа OSPF и BGP используют кратчайшие пути для передачи данных.
Оптимизация трафика: Балансировка нагрузки между серверами и дата-центрами.
🧬 3. Биология и медицина
Анализ молекулярных сетей: Поиск путей между генами, белками, метаболическими реакциями.
Медицинская диагностика: Сравнение симптомов и заболеваний через графы знаний.
🛒 4. Рекомендательные системы
Поиск связей между пользователями и товарами: Например, в Amazon или Netflix.
Социальные сети: Определение степени близости между людьми (например, «друзья друзей»).
🏙 5. Городское планирование и робототехника
Планирование движения роботов: В складских системах, на заводах.
Оптимизация инфраструктуры: Где строить дороги, мосты, электросети.
🎮 6. Игры и искусственный интеллект
Играющие агенты: Перемещение персонажей по карте.
AI-планирование: Принятие решений в стратегических играх.
На русском https://www.securitylab.ru/news/562195.php
8🔥4👀1