TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #1084 · 9.04

В общем, была задача на оптимизацию плана работ: есть набор заказов, и в каждом N тасков. Таски могут зависеть друг от друга или нет, имеют длительность и тип. Ещё есть M работников, каждый из которых может выполнять таски только определённых типов, причём, у каждого своя скорость. Если все таски в заказе выполнены, фирма получает сколько-то денег. У заказа есть дедлайн, за просрочку штраф (за каждый день просрочки), который вычитается из цены заказа. И ещё фирма тратит деньги за каждый день своей работы независимо от того, как загружены её сотрудники (то есть просто платит зарплаты по сути). Ещё важен учёт праздников и выходных. Нужно заработать на определённом наборе заказов и работников как можно больше денег. Полный текст задачи и код программы проверки есть в репозитории. Эта задача является изменённым заказом, который мы с напарником решали в реальной жизни: оптимизация работы печатных станков для типографии. Правда, тогда и мы справились так себе, и заказчик в итоге сначала захотел всё вручную сам делать, а потом и вовсе похоронил проект при смене директора. !!! Не читайте дальше, если хотите сначала попробовать решить самостоятельно, потому что я сейчас опишу эффективные подходы и результаты. ________________________________________ Так вот. Мы с другим экспертом Андреем сразу сели и написали разные варианты, чтобы задать шкалу, по которой будем оценивать решения команд. За пару часов я собрал примитивный жадный алгоритм, который сортировал заказы по прибыльности и укладывал в сетку кое-как, это дало нам нижнюю оценку. Мой алгоритм заработал ~75 млн виртуальных рублей, мы решили для оценки поставить нижней границей 40 млн. То есть всё, что ещё ниже, оценивалось в ноль баллов за качество оптимизации. Затем Андрей закрылся дома на три дня и вышел на свет со сложным жадным алгоритмом, который очень хитро сортировал заказы и очень хитро укладывал их в сетку, попутно выбирая разные способы этой укладки в зависимости от конкретного заказа. Это позволило заработать ~275 млн рублей. Мы сделали верхней границей для оценки 280 млн. К сожалению, в итоге только две команды из десяти прошли нижнюю границу, заработав, соответственно, ~91 и ~105 млн. К верхней границе не приблизился никто. И у четырёх команд алгоритм вообще не смог уложить без нарушений задачи в сетку (то есть, например, произвольно менял длительности, накладывал задачи друг на друга, давал одному работнику две задачи в один момент и так далее). Важной ошибкой команд, на мой взгляд, являлся тот факт, что никто не воспользовался возможностью запустить алгоритм на несколько минут и дать ему поработать. По условиям задания, можно было тянуть до 5 минут на одну оптимизацию, но по факту решения команд отрабатывали за единицы и десятки секунд. На самом конкурсе, пока команды работали, я решил попробовать сделать быстрое (по времени написания) но эффективное решение. Сначала попробовал жадную сортировку + доведение до лучшего варианта методом имитации отжига. В качестве нового состояния я просто менял местами заказы целиком. Этот вариант работал пару минут и дал мне около ~200 млн дохода. К слову, команда-лидер использовала такой же подход, просто не докрутила число итераций и температуру. Ну и потом я взял готовую либу по реализации классической генетики с особями и скрещиванием. Особью был массив с приоритетами заказов (которые конечно же нужно было аккуратно уложить чистым алгоритмом). Тип скрещивания: scattered. Всего 15 поколений по 20 особей, и это за минуту-полторы давало ~230-240 млн. Считаю, что для конкурса это самый лучший выбор: пишется одним человеком за день и даёт почти максимум, при этом легко настраивается на нужную длительность работы, легко параллелится. Ну а потом уже дома я посидел и накодил свой вариант сложного жадного с плавающим окном перебора отсортированных заказов и плавающей же укладкой по работникам. Такая штука за две минуты зарабатывает ~281 млн. Но за три дня в условиях стресса я бы такое не сделал, скорее всего. #dev

Hashtags

Резултати

Намерени 3 подобни публикации

Търсене: #osmo

当前筛选 #osmo清除筛选

🐬DOLPHIN | AI PREDICTIONS 13.01.2024 00:00 GMT Expected 5% Profit/Loss in 24 Hours #OSMO | 1.7437 | PP: 82% | LP: 97% #SEI | 0.6791 | PP: 70% | LP: 99% #STX | 1.634 | PP: 68% | LP: 98% #SKL | 0.08865 | PP: 63% | LP: 91% #OM | 0.06588 | PP: 57% | LP: 98% #WNXM | 53.81 | PP: 26% | LP: 92% #CHR | 0.2573 | PP: 25% | LP: 99% #ICP | 12.232 | PP: 20% | LP: 93% #NEXO | 0.893 | PP: 18% | LP: 94% #BNB | 296.6 | PP: 5% | LP: 92% ——————————————————————— Total Predictions: 367 PP > 50%: 12 LP > 50%: 51 PP > 60%: 11 LP > 60%: 38 PP > 70%: 8 LP > 70%: 26 PP > 80%: 3 LP > 80%: 13 PP > 90%: 0 LP > 90%: 10 ——————————————————————— PP: Profit Probability | LP: Loss Probability

🐬DOLPHIN | AI PREDICTIONS 17.03.2024 00:00 GMT Expected 5% Profit/Loss in 24 Hours #TROY | 0.002931 | PP: 99% | LP: 14% #XLM | 0.1292 | PP: 99% | LP: 14% #ZEC | 29.08 | PP: 99% | LP: 14% #QNT | 123.4 | PP: 99% | LP: 15% #PENDLE | 2.5185 | PP: 99% | LP: 16% #SNT | 0.04476 | PP: 99% | LP: 16% #SNX | 3.996 | PP: 99% | LP: 16% #VIB | 0.08893 | PP: 99% | LP: 16% #WING | 9.6 | PP: 99% | LP: 16% #YFI | 8877 | PP: 99% | LP: 16% #POWR | 0.3938 | PP: 99% | LP: 17% #PYR | 7.716 | PP: 99% | LP: 17% #SCRT | 0.6228 | PP: 99% | LP: 17% #SXP | 0.4379 | PP: 99% | LP: 17% #TIA | 13.75 | PP: 99% | LP: 17% #TWT | 1.3507 | PP: 99% | LP: 17% #UMA | 4.015 | PP: 99% | LP: 17% #PROS | 0.5068 | PP: 99% | LP: 18% #PUNDIX | 0.6027 | PP: 99% | LP: 18% #WAXP | 0.07902 | PP: 99% | LP: 18% #VET | 0.04046 | PP: 99% | LP: 20% #VTHO | 0.003851 | PP: 99% | LP: 20% #RDNT | 0.3406 | PP: 99% | LP: 23% #SC | 0.009372 | PP: 99% | LP: 24% #WOO | 0.4561 | PP: 99% | LP: 24% #WRX | 0.2741 | PP: 99% | LP: 26% #USTC | 0.02857411 | PP: 99% | LP: 30% #T | 0.03411 | PP: 99% | LP: 31% #UNFI | 7.656 | PP: 98% | LP: 13% #VGX | 0.1251 | PP: 98% | LP: 13% #SFP | 0.708 | PP: 98% | LP: 14% #ONG | 0.3793 | PP: 98% | LP: 16% #PORTO | 2.738 | PP: 98% | LP: 16% #RPL | 29 | PP: 98% | LP: 16% #SKL | 0.08973 | PP: 98% | LP: 17% #WAN | 0.2703 | PP: 98% | LP: 17% #PEOPLE | 0.04006 | PP: 98% | LP: 18% #XTZ | 1.291 | PP: 98% | LP: 18% #OSMO | 1.3818 | PP: 98% | LP: 19% #ONT | 0.3293 | PP: 98% | LP: 20% #PERP | 1.53711 | PP: 98% | LP: 20% #POLYX | 0.2222 | PP: 98% | LP: 20% #QKC | 0.013515 | PP: 98% | LP: 20% #RAD | 2.355 | PP: 98% | LP: 20% #REQ | 0.1284 | PP: 98% | LP: 20% #SAND | 0.6274 | PP: 98% | LP: 20% #TRU | 0.07445 | PP: 98% | LP: 20% #UTK | 0.1067 | PP: 98% | LP: 20% #VOXEL | 0.3238 | PP: 98% | LP: 20% #XRP | 0.6031 | PP: 98% | LP: 20% ... ——————————————————————— Total Predictions: 371 PP > 50%: 370 LP > 50%: 54 PP > 60%: 370 LP > 60%: 31 PP > 70%: 364 LP > 70%: 16 PP > 80%: 257 LP > 80%: 3 PP > 90%: 138 LP > 90%: 0 ——————————————————————— PP: Profit Probability | LP: Loss Probability