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

Сотрудничество: @tarasov_math
Сайт https://tarasov.expert
Download Telegram
Напишу про HADI цикл. Это очень важная штука при работе с рисками и исследованиями.

#мысль #rnd

HADI это акроним:
• Гипотеза (H) – какое-то наше представление, идея, которую мы хотим проверить.
• Действие (A) – Способ, которым мы будем проверять гипотезу, ну и реализация этого способа.
• Данные (D) – Любые показатели, на которые вы хотите повлиять.
• Инсайт (I) – не очень люблю это слово. Я бы назвал вывод.

Еще два важных момента, с которыми я как раз работал в прошлых постах.
• Вера (%) – вероятность успеха гипотезы на взгляд команды.
• Сложность – сложность выполнения задачи. Я меряю в днях или деньгах, можно просто в баллах от 1 до 5.

Этот фреймворк нужен, чтобы не было каши в голове, а процесс работы с гипотезами и рисками был отсмартован (то есть был по методике SMART). А это нужно просто чтобы не делать лишнюю работу, которой на самом деле может быть очень много, 50-80 и больше процентов.

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

Далее, когда есть гипотеза и есть показатели, которые мы хотим оценить, можно понять какими минимальными усилиями это можно сделать. Часто это намного проще, чем выполнять всю работу. Понятно, что если гипотеза оказывается успешной, то экономии и не будет. Все равно придется закончить работу и сделать все целиком. Зато на неуспешных гипотезах экономия будет громадная!
Помимо лишней работы люди склонны обманывать себя, особенно если гипотеза является их любимой. Работа по HADI позволяет подсвечивать такие штуки и убирать эмоциональность там, где она мешает.

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

Кстати, вопрос про SMART имеет смысл писать или это все знают?
🔥7👍4
#текучка #трекинг
Встречался недавно с одним заказчиком.
Чтобы договориться нормально об условиях success fee протрекал его по сути. 
Спрашиваю сегодня как дела, а он мне отвечает вот так:

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


Задачу кстати обсуждаем классическую, задача 2d раскроя материала. Жуткая классика, в СССР все книжки по оптимизации с этого начинались. Тем не менее готового свободного алгоритма со всеми необходимыми нюансами нет, и есть что прогать.
В принципе это наверно со всеми задачами так.
🔥5
#математика #геометрия #задача_раскроя
Рассказывал заказчику по поводу 2д раскроя, что даже сложные примеры часто очень хорошо упаковываются. И если у нас одна деталь, для которой нало вырезать много копий. То надо обязательно делать алгоритм периодической упаковки.
👍7
Универсальный алгоритм написания алгоритмов.
#программирование #алгоритм #икр

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

1. Ставим правильно задачу. Выявляем все требования. Формируем цель задачи, то есть идеальный конечный результат по ТРИЗ.
2. Смотрим базовое решение, то есть то которое имеется на данный момент. Уточняем цель задачи с учетом этого.
3. Решение — это набор микрорешений, то есть выбранных величин булевых переменных. Например работает ли конкретный человек в конкретный час в конкретном месте конкретную работу – да/нет.
4. Рассматриваем зависимости микрорешений между собой.
5. Если есть независимые компоненты (горох) – отлично.
6. Если в компоненте есть зависимость (уровни) в одну сторону – отлично.
7. Выявляем в конце концов ядро задачи, которое уже нельзя упростить, потому что все микрорешения зависят друг от друга.
8. Смотрим на особенности входных данных. Возможно там есть некоторая закономерность, которая может все упростить.
9. Смотрим на требования по скорости, цене продвижения, объему используемых ресурсов.
10. Если задача слишком сложная, огрубляем и упрощаем её. Главное сделать лучше базового решения. После упрощения повторяем весь проход.

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

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

То правильным ответом будет просто отказаться от решения подобной задачи, просто потому что экономика решения заведомо не сойдется.
🔥4💯2👏1
Важное свойство хорошего алгоритма.
#задача #алгоритмы #бутылочное_горлышко

Давно задачек не давал. Вот еще одна уже классическая, её когда-то давали на собеседовании в Microsoft.
Имеется 100-этажный дом и две одинаковые лампочки. Надо узнать с какого этажа сброшенная лампочка разобьется. За какое минимальное число попыток это точно можно узнать и какой алгоритм действий? Если бы лампочка была одна, то пришлось бы потратить последовательно 100 попыток, бросая последовательно с 1 по 100 этаж. А так как у нас две лампочки, то мы можем разбив одну продолжить эксперименты.

Порешайте пожалуйста сами, кто решил сам поставьте палец вверх, а кто нет – вниз.

Правильный ответ: 14 попыток.
Схема следующая.
Бросаем последовательно первую лампочку на следующих номерах: 14, 27, 39, 50, 60, 69, 77, 84, 90,95,99 ( это первые суммы ряда 14+13+12+…)
После того как первая лампочка разобьется (например, на 39 этаже), мы начинаем прибавлять по 1 этажу к последней успешной попытке (то есть 28, 29, ... , 38), и когда вторая лампочка разобьется, мы узнаем правильный ответ.


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

Я проверяю любой алгоритм на такую равномерность, если я вижу, что мой алгоритм недостаточно равномерный, то есть в каких-то местах работает лучше, чем в других. Я смотрю, могу ли я улучшить алгоритм в тяжелом месте, испортив его в хорошем.
Математически этот принцип соответствует условиям Каруша-Куна-Таккера и уравнениям Лагранжа-Эйлера, но это уже совсем другая история.
👍7🔥4
Объединение вместо выбора.
#алгоритмы #мысль

Еще одна идея о том, как написать хороший алгоритм.

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

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

Я же люблю третий вариант – я думаю, как обобщить алгоритм так, чтобы оба старых алгоритма были просто его частными случаями. Чтобы был параметр, который выставлен в 0 – работает, по сути, первый алгоритм, а в 1 – второй. При этом параметр был естественный, а не просто <если>. То есть код должен быть один, а параметр мог меняться непрерывно.
Если думать в этом направлении, то часто получается склеить алгоритм. Плюс тут не только в том, что удалось избежать выбора и потери времени работы алгоритма или ресурсов. А в том, что мы получили качественно новый алгоритм, на который можно снова смотреть и улучшать.
Проблема выбора из двух алгоритмов, это не проблема, а способ получить инсайт.
👍12
#текучка #воронка_продаж #ии

Ура, пришел заказ с полноценным использованием LLM (Large Language Model, искусственный интеллект). Сейчас находимся в процессе обсуждения. Мы сами активно используем LLM – пишем куски кода, англоязычные письма и даже юридические договоры, делаем прототипы разных проектов. И наконец дошли до полноценного заказа. Задача состоит в составлении определенного типа справочников на основании открытых данных. Сейчас эта рутинная работа делается руками временных сотрудников. Тема очень важная, так как мы вступили в эпоху искусственного интеллекта и надо будет успевать меняться вместе с миром.

Расскажите , у вас есть рутинная работа, от которой хочется избавиться или интересный опыт внедрения LLM?
👍10
Если ты бизнесмен, ты работаешь с деньгами.
#мысль #бизнес #психология

Видел у начинающих бизнесменов и стартаперов одну штуку.

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

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


Слова умные пишу, а сам еле-еле сегодня сделал счета. Правда, в качестве оправдания, это все для иностранных компаний. А для русских я уже делаю договора и счета с удовольствием. Недавно был клиент, который просто денег перевел, а договор не заключали. Это очень напрягало, так как непонятно, где границы проекта, и чем он в итоге будет доволен, а чем нет.
🔥102👏1
#текучка #демо #задача_раскроя

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

Я неожиданно быстро запрогал работающий вариант. Эффект на бумаге очень мощный, треть экономии. То есть с заказа в 300 тысяч, 100 тысяч экономии. Это конечно бумажная экономия. По факту эти сто тысяч ранее шли в обрезки, а обрезки можно переиспользовать скажем на 70%. То есть экономия по факту 30 тысяч рублей с заказа. И другие похожие нюансы есть. Но все равно круто.

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

А еще подписал договор с Тинькофф банком. Буду для них небольшую задачу решать.
👍14🔥42👏1
#текучка #воронка_продаж
У меня сегодня день заказов. В пятницу прилетело сразу несколько новых запросов. Сегодня езжу и общаюсь. Масштаб очень разный. На 1 день, на месяц, и один крупный - про планировку квартир в новостройках. Такой проект лет >10 назад делал Дмитрий Завалишин из dz.ru . Я прямо переживал, что не я делаю. :) Когда ИП делал код ОКВЭД под это дело записал, потом с ним маялся. В общем начала сбываться ещё одна мечта! :)
👍84
Ищу разработчика на Python.

#вакансия

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

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

Готов работать с любым уровнем, джун, миддл, сеньор. Главное ваш профиль, чем вы хотите заниматься и чем не хотите. Ну и быть крутым. Удаленка, через ИП или самозанятых. Зарплата нормальная, зависит от уровня разумеется.

Пишите мне @tarasov_math .
Шаринг сообщения всячески приветствуется.
👍3🔥3
#математика
В математике активно используется многомерная геометрия.
Расскажу немного про неë. Это очень важная штука в самой математике и из нее есть  выводы напрямую касающиеся бизнеса.
Для начала просто научу рисовать многомерные кубы. Это весело и не страшно.

Алгоритм простой.
1. Рисуем точку. Это нульмерный куб. Мы уже умеем рисовать некоторые кубы, ура.
2.  Пусть у нас есть какой-то куб.  Нарисуем сдвинутую копию исходного куба.
3. А дальше соединяем все вершины с их копиями в новом кубе.
4. Мы получили куб на одну размерность больше.

На примерах я дорисовался до 5-мерного куба. Вообще, если аккуратно рисовать, правильно выбирать длины и направления сдвигов, то можно на большом листочке и 10-мерный нарисовать.

На последней картинке я нарисовал путь от одной вершины до противоположной, который идет по каждому типа ребра 1 раз.
👍6🔥4🤓1