В общем, была задача на оптимизацию плана работ: есть набор заказов, и в каждом N тасков. Таски могут зависеть друг от друга или нет, имеют длительность и тип. Ещё есть M работников, каждый из которых может выполнять таски только определённых типов, причём, у каждого своя скорость.
Если все таски в заказе выполнены, фирма получает сколько-то денег. У заказа есть дедлайн, за просрочку штраф (за каждый день просрочки), который вычитается из цены заказа. И ещё фирма тратит деньги за каждый день своей работы независимо от того, как загружены её сотрудники (то есть просто платит зарплаты по сути). Ещё важен учёт праздников и выходных.
Нужно заработать на определённом наборе заказов и работников как можно больше денег. Полный текст задачи и код программы проверки есть в репозитории. Эта задача является изменённым заказом, который мы с напарником решали в реальной жизни: оптимизация работы печатных станков для типографии. Правда, тогда и мы справились так себе, и заказчик в итоге сначала захотел всё вручную сам делать, а потом и вовсе похоронил проект при смене директора.
!!! Не читайте дальше, если хотите сначала попробовать решить самостоятельно, потому что я сейчас опишу эффективные подходы и результаты.
________________________________________
Так вот. Мы с другим экспертом Андреем сразу сели и написали разные варианты, чтобы задать шкалу, по которой будем оценивать решения команд. За пару часов я собрал примитивный жадный алгоритм, который сортировал заказы по прибыльности и укладывал в сетку кое-как, это дало нам нижнюю оценку. Мой алгоритм заработал ~75 млн виртуальных рублей, мы решили для оценки поставить нижней границей 40 млн. То есть всё, что ещё ниже, оценивалось в ноль баллов за качество оптимизации.
Затем Андрей закрылся дома на три дня и вышел на свет со сложным жадным алгоритмом, который очень хитро сортировал заказы и очень хитро укладывал их в сетку, попутно выбирая разные способы этой укладки в зависимости от конкретного заказа. Это позволило заработать ~275 млн рублей. Мы сделали верхней границей для оценки 280 млн.
К сожалению, в итоге только две команды из десяти прошли нижнюю границу, заработав, соответственно, ~91 и ~105 млн. К верхней границе не приблизился никто. И у четырёх команд алгоритм вообще не смог уложить без нарушений задачи в сетку (то есть, например, произвольно менял длительности, накладывал задачи друг на друга, давал одному работнику две задачи в один момент и так далее). Важной ошибкой команд, на мой взгляд, являлся тот факт, что никто не воспользовался возможностью запустить алгоритм на несколько минут и дать ему поработать. По условиям задания, можно было тянуть до 5 минут на одну оптимизацию, но по факту решения команд отрабатывали за единицы и десятки секунд.
На самом конкурсе, пока команды работали, я решил попробовать сделать быстрое (по времени написания) но эффективное решение. Сначала попробовал жадную сортировку + доведение до лучшего варианта методом имитации отжига. В качестве нового состояния я просто менял местами заказы целиком. Этот вариант работал пару минут и дал мне около ~200 млн дохода. К слову, команда-лидер использовала такой же подход, просто не докрутила число итераций и температуру.
Ну и потом я взял готовую либу по реализации классической генетики с особями и скрещиванием. Особью был массив с приоритетами заказов (которые конечно же нужно было аккуратно уложить чистым алгоритмом). Тип скрещивания: scattered. Всего 15 поколений по 20 особей, и это за минуту-полторы давало ~230-240 млн. Считаю, что для конкурса это самый лучший выбор: пишется одним человеком за день и даёт почти максимум, при этом легко настраивается на нужную длительность работы, легко параллелится.
Ну а потом уже дома я посидел и накодил свой вариант сложного жадного с плавающим окном перебора отсортированных заказов и плавающей же укладкой по работникам. Такая штука за две минуты зарабатывает ~281 млн. Но за три дня в условиях стресса я бы такое не сделал, скорее всего.
#dev
Dans l’est de la #RDC, la faim progresse loin des regards
Autour de Goma, des milliers de familles font face à une insécurité alimentaire grandissante, tandis que la malnutrition menace des vies chaque jour. Sur le terrain, le Programme alimentaire mondial tente d’apporter une aide vitale, mais le manque de financements impose des choix difficiles et réduit la portée de l’assistance.
🗣Les précisions avec Malaika Élysée.
RT en français • Osez questionner !
🎤Dans l’est de la #RDC, les engagements pris à Montreux, en Suisse, peinent toujours à se traduire en actes. Entre le gouvernement congolais et le groupe armé AFC/M23, le processus de libération des détenus reste bloqué. Les précisions avec Malaika Élysée.
RT en français • Osez questionner !
🎤En #RDC, la création annoncée d’une garde minière par l’Inspection générale des mines, pour sécuriser les sites et le transport des minerais stratégiques, relance le débat. Entre nécessité de répondre à l’insécurité persistante et contestations sur sa légitimité, ce projet d’un coût de 100 millions de dollars divise, d’autant plus que les États-Unis refusent d’en assurer le financement.
RT en français • Osez questionner !
📎Opération humanitaire en cours
Dans l’est de la #RDC, le rapatriement volontaire des réfugiés congolais en provenance du Burundi est désormais en cours. Encadrée par le Haut-Commissariat des Nations unies pour les réfugiés, cette opération intervient dans un contexte d’accalmie relative dans certaines zones du Sud-Kivu.
Les précisions avec Malaika Élysée.
RT en français • Osez questionner !
Le conflit dans l’est de la #RDC continue de fragiliser l’économie nationale. Dans son dernier rapport, le FMI alerte sur l’impact des affrontements entre l’armée congolaise et l’AFC/M23 sur les finances publiques du pays.
🗣Les précisions de Malaika Élysée.
RT en français • Osez questionner !
🎤Dans l’est de la #RDC, une nouvelle attaque meurtrière attribuée aux rebelles ADF a fait au moins 26 morts dans le territoire de Beni, au Nord-Kivu. Ce nouveau drame relance les interrogations sur l’efficacité de l’état de siège instauré depuis 2021 pour ramener la sécurité dans la région. Les précisions de Malaika Élysée.
RT en français • Osez questionner !
Dans l’est de la #RDC, la faim progresse loin des regards
Autour de Goma, des milliers de familles font face à une insécurité alimentaire grandissante, tandis que la malnutrition menace des vies chaque jour. Sur le terrain, le Programme alimentaire mondial tente d’apporter une aide vitale, mais le manque de financements impose des choix difficiles et réduit la portée de l’assistance.
🗣Les précisions avec Malaika Élysée.
RT en français • Osez questionner !
🎤Dans l’est de la #RDC, les engagements pris à Montreux, en Suisse, peinent toujours à se traduire en actes. Entre le gouvernement congolais et le groupe armé AFC/M23, le processus de libération des détenus reste bloqué. Les précisions avec Malaika Élysée.
RT en français • Osez questionner !
🎤En #RDC, la création annoncée d’une garde minière par l’Inspection générale des mines, pour sécuriser les sites et le transport des minerais stratégiques, relance le débat. Entre nécessité de répondre à l’insécurité persistante et contestations sur sa légitimité, ce projet d’un coût de 100 millions de dollars divise, d’autant plus que les États-Unis refusent d’en assurer le financement.
RT en français • Osez questionner !
Le président rwandais déclare ne pas savoir si les troupes de son pays sont présentes au Congo 🇨🇩#RDC🤮
Tiens, quand il s’agit de la Russie, la presse occidentale collaborationniste reçoit des ordres pour diaboliser Poutine, pour ne pas lui accorder la parole et l'isoler. Mais quand c’est leur agent Paul Kagame, ça déroule le tapis rouge et on lance la machine à blanchir pour le présenter et le vendre comme un homme bien, innocent, pendant que les cadavres s'accumulent au Congo 🇨🇩.
@egountchibehanzinTV
#AESinfo | #RDC🇨🇩
🔴 Alerte sanitaire en RDC : 143 morts d'une maladie inconnue dans le Sud-Ouest
Une épidémie mystérieuse sévit dans la province du Sud-Ouest de la République démocratique du Congo. Depuis le mois de novembre, au moins 143 personnes sont décédées, principalement dans la zone de santé de Panzi. Les autorités sanitaires sont débordées face à cette maladie qui se caractérise par de la fièvre et de violents maux de tête. L'Organisation mondiale de la santé a été alertée et mène actuellement des investigations.
Image d'illustration
#AESinfo | #RDC🇨🇩🤝🏾🇲🇱#Mali
Tensions avec le M23 : Assimi GOÏTA reçoit le Ministre de la Justice Congolais, Mystère sur le Message de Tshisekedi
Le Président de la Transition, le Général d’Armée Assimi GOÏTA, Chef de l’État, a reçu en audience, ce vendredi 21 février 2025, un porteur de message de Son Excellence Félix Antoine TSHISEKEDI TSHILOMBO, Président de la République Démocratique du Congo (RDC).
M. Constant MUTAMBA TUNGUNGA, Ministre d’État, ministre de la Justice et Garde des Sceaux de la RDC, était accompagné de Son Excellence Christophe MUZUNGA, Ambassadeur de la RDC au Mali, résidant à Dakar, ainsi que de M. TALUBULU TSHIS OSIBOWA Godfrey, Conseiller.
Retrouvez l’article complet sur
Twitter X @AESinfos
Facebook https://www.facebook.com/share/15uWZrHWNe/?mibextid=wwXIfr