В общем, была задача на оптимизацию плана работ: есть набор заказов, и в каждом N тасков. Таски могут зависеть друг от друга или нет, имеют длительность и тип. Ещё есть M работников, каждый из которых может выполнять таски только определённых типов, причём, у каждого своя скорость.
Если все таски в заказе выполнены, фирма получает сколько-то денег. У заказа есть дедлайн, за просрочку штраф (за каждый день просрочки), который вычитается из цены заказа. И ещё фирма тратит деньги за каждый день своей работы независимо от того, как загружены её сотрудники (то есть просто платит зарплаты по сути). Ещё важен учёт праздников и выходных.
Нужно заработать на определённом наборе заказов и работников как можно больше денег. Полный текст задачи и код программы проверки есть в репозитории. Эта задача является изменённым заказом, который мы с напарником решали в реальной жизни: оптимизация работы печатных станков для типографии. Правда, тогда и мы справились так себе, и заказчик в итоге сначала захотел всё вручную сам делать, а потом и вовсе похоронил проект при смене директора.
!!! Не читайте дальше, если хотите сначала попробовать решить самостоятельно, потому что я сейчас опишу эффективные подходы и результаты.
________________________________________
Так вот. Мы с другим экспертом Андреем сразу сели и написали разные варианты, чтобы задать шкалу, по которой будем оценивать решения команд. За пару часов я собрал примитивный жадный алгоритм, который сортировал заказы по прибыльности и укладывал в сетку кое-как, это дало нам нижнюю оценку. Мой алгоритм заработал ~75 млн виртуальных рублей, мы решили для оценки поставить нижней границей 40 млн. То есть всё, что ещё ниже, оценивалось в ноль баллов за качество оптимизации.
Затем Андрей закрылся дома на три дня и вышел на свет со сложным жадным алгоритмом, который очень хитро сортировал заказы и очень хитро укладывал их в сетку, попутно выбирая разные способы этой укладки в зависимости от конкретного заказа. Это позволило заработать ~275 млн рублей. Мы сделали верхней границей для оценки 280 млн.
К сожалению, в итоге только две команды из десяти прошли нижнюю границу, заработав, соответственно, ~91 и ~105 млн. К верхней границе не приблизился никто. И у четырёх команд алгоритм вообще не смог уложить без нарушений задачи в сетку (то есть, например, произвольно менял длительности, накладывал задачи друг на друга, давал одному работнику две задачи в один момент и так далее). Важной ошибкой команд, на мой взгляд, являлся тот факт, что никто не воспользовался возможностью запустить алгоритм на несколько минут и дать ему поработать. По условиям задания, можно было тянуть до 5 минут на одну оптимизацию, но по факту решения команд отрабатывали за единицы и десятки секунд.
На самом конкурсе, пока команды работали, я решил попробовать сделать быстрое (по времени написания) но эффективное решение. Сначала попробовал жадную сортировку + доведение до лучшего варианта методом имитации отжига. В качестве нового состояния я просто менял местами заказы целиком. Этот вариант работал пару минут и дал мне около ~200 млн дохода. К слову, команда-лидер использовала такой же подход, просто не докрутила число итераций и температуру.
Ну и потом я взял готовую либу по реализации классической генетики с особями и скрещиванием. Особью был массив с приоритетами заказов (которые конечно же нужно было аккуратно уложить чистым алгоритмом). Тип скрещивания: scattered. Всего 15 поколений по 20 особей, и это за минуту-полторы давало ~230-240 млн. Считаю, что для конкурса это самый лучший выбор: пишется одним человеком за день и даёт почти максимум, при этом легко настраивается на нужную длительность работы, легко параллелится.
Ну а потом уже дома я посидел и накодил свой вариант сложного жадного с плавающим окном перебора отсортированных заказов и плавающей же укладкой по работникам. Такая штука за две минуты зарабатывает ~281 млн. Но за три дня в условиях стресса я бы такое не сделал, скорее всего.
#dev
Vers un retour du service militaire obligatoire au #Niger ?
Face à la menace persistante des groupes terroristes, les autorités nigériennes envisagent de rétablir le service militaire obligatoire. Le ministre de l'Intérieur, Mohamed Toumba, a présenté cette mesure comme un levier pour renforcer durablement la sécurité et impliquer les citoyens dans la gestion des crises.
En savoir plus sur RT en français
Révélations : Au #NIGER🇳🇪, le président général TIANI accuse à la télévision la France d'avoir passé un deal avec les groupes terroristes de Boko Haram en quittant le Niger, en leur livrant à plusieurs reprises des armes pour qu'ils mènent une guerre contre l'État nigérien.
Question : Tiani a-t-il raison ? Oui, totalement car cela fait des années maintenant que nous alertons et dénonçons cela. Tout le monde, y compris les dirigeants africains, le savent mais la peur de la France les tétanisait tellement qu'ils préféraient se taire. Maintenant, les dirigeants de l'AES le disent ouvertement à la télévision, affirmant que la France est un état terroriste qui soutient le terrorisme, menant une politique de terreur contre les États africains afin de maintenir l'occupation militaire de leur pays par l'armée française. Partagez cette vidéo partout !
@egountchibehanzinTV
ALERTE INFO | Le #Niger🇳🇪 prive le permis d'exploitation d'une mine d'uranium géante à Orano, ex-Areva 🇫🇷. Voilà, enfin en Afrique des dirigeants ont compris que la géopolitique c’est un rapport de force. Les multinationales françaises qui ne respectent pas seront virées une par une. Ce que vous ne faites pas ailleurs, vous ne le ferez plus sur les terres africaines.
La LDNA salue cette décision brave et souveraine des autorités nigériennes à reprendre le contrôle de la mine d’uranium. 💪🏾✊🏾
NB : un idéologue ne comprend que le rapport de force. Lutte continue.
@egountchibehanzinTV
INFO | #Niger🇳🇪 La justice a demandé ce vendredi la levée de l’immunité du président déchu Mohamed Bazoum. Le président déchu pourrait donc faire face à un procès pour complot d’attentat à la sécurité et à l’autorité de l’État, crime de trahison, faits présumés d’apologie du terrorisme et financement du terrorisme. Renversé en juillet dernier par un putsch, Mohamed Bazoum n’a toujours pas rendu sa démission.
@egountchibehanzinTV
🇳🇪#Niger: JNIM has released footage of an IED attack on an army convoy transporting Nigerien armed forces between Samira and Balkab in the Tillabéri region yesterday.
The footage shows that a large number of troops were targeted, as the truck was filled with soldiers.
(via @KargnHasret on X)
#Niger🇳🇪
Un arsenal de guerre saisi au Niger en route vers la Côte d'Ivoire : les États-Unis 🇺🇸 et la France impliqués ?
Les forces de sécurité nigériennes ont intercepté un camion transportant un véritable arsenal de guerre dissimulé sous des vivres, à destination de la Côte d'Ivoire. La découverte a été rapportée dans le Bulletin d'information des forces de défense et de sécurité du 17 au 20 mars 2024.
1140 munitions, 28 douilles de projectiles, 5 jumelles, 2 casques de tir, 3 drapeaux américains, un passeport et un permis de conduire américains, ainsi que des cartes bancaires au nom de deux individus de nationalité américaine** figurent parmi les éléments saisis.
Tous les indices mènent aux États-Unis, laissant planer le mystère sur l'origine et la destination finale de cet arsenal. Une enquête approfondie est en cours pour déterminer les responsables et les ramifications de cette affaire.
📹 : RTN
@egountchibehanzinTV
#Niger🇳🇪
Niamey : Manifestation contre la présence militaire américaine, drapeaux brûlés et slogans anti-colonialistes
Quelques centaines de manifestants ont manifesté dans la capitale du Niger, pour protester contre la présence militaire américaine dans le pays. Les manifestants accusent les troupes américaines d'accentuer l'insécurité et de soutenir la politique française dans la région.
Des drapeaux américains ont été brûlés et des slogans anti-colonialistes ont été scandés lors de la manifestation.
Source : Niger info
@egountchibehanzinTV
🇳🇪#Niger: Niger’s National Guard detained nine suspects after a desert chase near Bilma, seizing weapons and equipment including an M80 machine gun, a FAL rifle, 429 rounds of ammunition, and a Starlink satellite communication device, along with phones and SIM cards.
Most of the suspects were foreign nationals. The men are suspected of possible links to jihadi groups.
(via @ZagazOlaMakama)
🎙Briefing by Deputy Director of the Foreign Ministry’s Information and Press Department Alexey Zaitsev(Moscow, August 9, 2023)
🔷 FM Sergey Lavrov’s schedule
🔷 Ukrainian crisis
🔷 Developments in Niger
🔷 EU Report on Human Rights and Democracy
🔷 Situation in Pakistan
🔷 Hiroshima and Nagasaki bombing anniversary
And more...
📚Read in full
#Ukraine
Having no results on the battlefield to demonstrate to their Western masters, the neo-Nazi regime in Kiev continues to vilely resort to terrorist methods against people in Russia, striking civilian targets, including those far from the front line.
It is revealing that NATO countries are supporting the barbarous actions of the Kiev regime, and continue supplying it with arms, training Ukrainian soldiers and supplying Ukraine with intelligence information for dealing strikes with missiles and drones, including at strictly civilian facilities.
#Niger
We consider it is extremely important to prevent further escalation of tension in Niger. We believe that there is no alternative to the restoration of law and order and the start of an inclusive national dialogue as soon as possible.
We support the mediation efforts undertaken by the African community to help the people of Niger overcome the crisis. At the same time, we believe that an intervention by the troops of the Economic Community of West African States (ECOWAS) in a sovereign state is unlikely to contribute to the achievement of lasting peace in Niger or the stabilisation of the subregion.
#AESinfo | #Niger🇳🇪🇧🇫🇲🇱
3e édition des JDAC de l’AES : Bientôt une compagnie aérienne commune de la Confédération.
Les travaux de la 3e édition des journées de l’Aviation Civile (JDAC) de l’Alliance des Etats du Sahel (AES) tenue du 21 au 22 avril 2026 à Niamey, ont pris fin, dans l’après-midi de ce mercredi 22 avril par la signature de l’acte portant décision de création d’une compagnie aérienne commune.
Source : AIB
#AESinfo | #Niger🇳🇪
La France "fait partie du problème au Sahel", selon le ministre nigérien des Affaires étrangères
L'AES n'a plus confiance en Paris, qui a lui-même admis tout faire pour déstabiliser les pays de la région, a déclaré Bakary Yaou Sangaré:
"Nous n'excluons pas de parler à la France, mais pas dans cette posture-là. Les deux griefs que l'on fait à la France, c'est la condescendance et le deux poids deux mesures"
En plus, Paris cherche à retrouver la "mainmise" sur les ressources de la région, a ajouté le ministre.
Source : @sputnik_afrique