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

Резултати

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

Търсене: #prc

当前筛选 #prc清除筛选
Says Ian

@saysian · Post #608 · 08.07.2024 г., 18:40

这是一句很大的棋。 刚开始用工业罐,然后慢慢增加工业用油的比例。 这样两三代之后,人民的骨骼就变得坚强,其中的碳逐渐被硅取代。 到第六代、第七代,我们将会夜能视物,指甲盖上可以蚀刻电路,阑尾从肚脐眼儿里长出来,进化为纯天然的typeC口。 十一代左右,牙齿金刚石化,七十岁也能啃猪蹄子。 十五代、呼吸、循环、消化三系统,被生物电取代。和西方人发生生殖隔离,我们变成了不同的物种。 二十四代,不会自然死亡,一些人后背开始长出翅膀。 那时候你们都会感谢这些开油罐车的人们,他们让娇弱的人类变得无坚不摧,我们马上就能摸到银河系中央的引力弹弓,眼前是星辰大海。 你再也想不到,这一切都是从不规范的食用油运输开始的。#PRC

Hashtags

Says Ian

@saysian · Post #605 · 08.07.2024 г., 13:15

每天在浴室里照镜子,我都兴奋不已。 我的血管里流淌着五千年的悠久文化,和关键时刻可以让我爆发出超自然力量的一管煤油。 ——《中国队长》 #PRC

Hashtags

Says Ian

@saysian · Post #604 · 08.07.2024 г., 13:01

在美国的临终照顾中心,许多华裔老人临终前,会在床上辗转反侧。 美国人不明白,ABC儿女也不得要领。 后来招了一个新移民护士,她看了看老人,说“这是思乡了呀。” 她买了一小瓶煤油,倒出一勺,又调了一勺豆油,冲了一杯水,喂老人喝下。 “谢谢,是祖国的味道。”老人带着满意的神情,安详离世。#PRC

Hashtags

Says Ian

@saysian · Post #452 · 08.01.2023 г., 17:43

如果你妈带你看病,医生开完药你妈嫌药贵跟医院砍价,没砍下药不买了;买了另一种治不好病的药,但是便宜……你会给你妈鼓掌叫好,热泪盈眶么? 正确的思路不应该想想是不是亲生的吗? #PRC

Hashtags

Says Ian

@saysian · Post #417 · 27.11.2022 г., 08:47

上海,乌鲁木齐中路。 抗议示威的民众齐声高喊:”不要独裁要民主!要自由!“ @chinadog#PRC

Hashtags

123•••10•••1314
ПредишнаСтр. 1 от 14Следваща