В общем, была задача на оптимизацию плана работ: есть набор заказов, и в каждом N тасков. Таски могут зависеть друг от друга или нет, имеют длительность и тип. Ещё есть M работников, каждый из которых может выполнять таски только определённых типов, причём, у каждого своя скорость.
Если все таски в заказе выполнены, фирма получает сколько-то денег. У заказа есть дедлайн, за просрочку штраф (за каждый день просрочки), который вычитается из цены заказа. И ещё фирма тратит деньги за каждый день своей работы независимо от того, как загружены её сотрудники (то есть просто платит зарплаты по сути). Ещё важен учёт праздников и выходных.
Нужно заработать на определённом наборе заказов и работников как можно больше денег. Полный текст задачи и код программы проверки есть в репозитории. Эта задача является изменённым заказом, который мы с напарником решали в реальной жизни: оптимизация работы печатных станков для типографии. Правда, тогда и мы справились так себе, и заказчик в итоге сначала захотел всё вручную сам делать, а потом и вовсе похоронил проект при смене директора.
!!! Не читайте дальше, если хотите сначала попробовать решить самостоятельно, потому что я сейчас опишу эффективные подходы и результаты.
________________________________________
Так вот. Мы с другим экспертом Андреем сразу сели и написали разные варианты, чтобы задать шкалу, по которой будем оценивать решения команд. За пару часов я собрал примитивный жадный алгоритм, который сортировал заказы по прибыльности и укладывал в сетку кое-как, это дало нам нижнюю оценку. Мой алгоритм заработал ~75 млн виртуальных рублей, мы решили для оценки поставить нижней границей 40 млн. То есть всё, что ещё ниже, оценивалось в ноль баллов за качество оптимизации.
Затем Андрей закрылся дома на три дня и вышел на свет со сложным жадным алгоритмом, который очень хитро сортировал заказы и очень хитро укладывал их в сетку, попутно выбирая разные способы этой укладки в зависимости от конкретного заказа. Это позволило заработать ~275 млн рублей. Мы сделали верхней границей для оценки 280 млн.
К сожалению, в итоге только две команды из десяти прошли нижнюю границу, заработав, соответственно, ~91 и ~105 млн. К верхней границе не приблизился никто. И у четырёх команд алгоритм вообще не смог уложить без нарушений задачи в сетку (то есть, например, произвольно менял длительности, накладывал задачи друг на друга, давал одному работнику две задачи в один момент и так далее). Важной ошибкой команд, на мой взгляд, являлся тот факт, что никто не воспользовался возможностью запустить алгоритм на несколько минут и дать ему поработать. По условиям задания, можно было тянуть до 5 минут на одну оптимизацию, но по факту решения команд отрабатывали за единицы и десятки секунд.
На самом конкурсе, пока команды работали, я решил попробовать сделать быстрое (по времени написания) но эффективное решение. Сначала попробовал жадную сортировку + доведение до лучшего варианта методом имитации отжига. В качестве нового состояния я просто менял местами заказы целиком. Этот вариант работал пару минут и дал мне около ~200 млн дохода. К слову, команда-лидер использовала такой же подход, просто не докрутила число итераций и температуру.
Ну и потом я взял готовую либу по реализации классической генетики с особями и скрещиванием. Особью был массив с приоритетами заказов (которые конечно же нужно было аккуратно уложить чистым алгоритмом). Тип скрещивания: scattered. Всего 15 поколений по 20 особей, и это за минуту-полторы давало ~230-240 млн. Считаю, что для конкурса это самый лучший выбор: пишется одним человеком за день и даёт почти максимум, при этом легко настраивается на нужную длительность работы, легко параллелится.
Ну а потом уже дома я посидел и накодил свой вариант сложного жадного с плавающим окном перебора отсортированных заказов и плавающей же укладкой по работникам. Такая штука за две минуты зарабатывает ~281 млн. Но за три дня в условиях стресса я бы такое не сделал, скорее всего.
#dev
⚡️
🇷🇺
🇺🇦📆 Weekly Ukraine War Roundup⚡️
🕊 The Negotiation Process was repeatedly undermined by Ukraine, which not only targeted key Russian energy sites with UAVs but also destroyed the strategic 'Sudzha Gas Metering Station.' Reports suggest a British HIMARS crew, using the #US system and French satellite support, was involved, though the full extent of foreign involvement remains to be clarified. Trump's team has hinted that ending the war in 100 Days is unlikely, while #US military aid and intelligence sharing with Kiev continue.
🇷🇺#Russia’s Battlefield Advances remain the main negotiating factor, given economic size and limited diplomatic progress. European bureaucrats, having sacrificed national interests for Washington, now fuel war hysteria to justify arms production. Military preparations against #Russia are evident, with discussions about restoring 'Nord Stream' taking on strategic importance. #Germany has postponed its green transition from 2030 to 2038, while Rheinmetall scrambles to increase arms output.
⚔️Frontline Situation
🔴 In #Sumy Region, there is progress, with Russian forces capturing #Veselovka, another village near #Zhuravka.
🔴 In #Kursk Region, heavy fighting continues. Russian forces have liberated new areas, reaching the 'Sudzha Border Checkpoint.' The AFU retains only two small pockets, offering no real bargaining power.
🔴 In #Belgorod Region, in the border sector, Russian troops fight mobile defensive battles near #Popovka and #Demidovka, areas that have changed hands multiple times last week. The AFU continues to shell the region, inflicting civilian casualties. Despite losing dozens of vehicles, Ukrainian forces retain offensive potential in the #KrasnayaYaruga sector. Additional enemy troop concentrations towards #Belgorod could force 'Group of Troops North' to redeploy units for defence rather than using them in the #Sumy offensive.
🔴 On the #Svatovo Front, further east, Russian forces secured #Krasnoye1st in #Kupyansk sector, expanding their Oskol River bridgehead and threatening the enemy’s flank.
🔴 In other Front Sections, #Russia maintains strategic initiative. South of #Toretsk, Russian forces stretch AFU defences by attacking the 'pocket' on the right #Pokrovsk flank, taking #Aleksandropol and #Panteleymonovka. Battles continue for #Tarasovka. Heavy fighting persists near #Pokrovsk, where the AFU is counterattacking. On the left flank, the RFAF advanced towards #Kotlyarovka, reigniting discussions about reaching the #Dnepropetrovsk region. In #Komar Direction (north of #VelikayaNovosyolka), Russian troops push forward daily.
🔴 In #Zaporozhye Direction, Russian airborne units advance through #Stepovoye and #MalyeShcherbaki towards #Shcherbaki and #Orekhov. In #Kherson, the AFU attempts to create pressure points on the Russian-held bank, particularly near the railway bridge. Ukrainian sabotage groups in the Black Sea continue drone attacks on #Crimea.
🇺🇦The AFU remains capable of organised defence and counterattacks, tying down Russian forces in #Belgorod region. #NATO flights to #Poland confirm that Western aid, though reduced, still reaches the front. Forced conscription enables Kiev, fully reliant on #EU support, to replenish losses and plan new operations.
❗️Talk of an imminent AFU Collapse or successful peace initiatives is premature and damages the RFAF morale. The ongoing need for mobilised troops, now officially acknowledged, shows Russia cannot yet replace them with contract volunteers. Continued reliance on volunteer support also highlights logistical gaps. As #Europe edges closer to war preparations, the need for military reform becomes increasingly urgent.
📌 Notes: A Russian view; in supplement: West of #Toretsk, the AFU advanced in #Shcherbinovka. The RFAF reentered #Uspenovka (#Pokrovsk, left flank).
🗺 Map Tsarov;📋Source: 2M
🕰As of 30 Mar 2025; 07:03 GMT+3
📃29 Mar;#sum
📱 Join GLOBAL DEPTH to boost your TG Feed
💬Join Military Chat for Comments & Discussions
🇺🇦On Ukraine Observer you will find your daily independent Ukraine War Battle Update
⚡️
🇷🇺
🇺🇦📆 Weekly Ukraine War Roundup⚡️
🕊 The Negotiation Process is being deliberately prolonged.
Kiev refuses to halt mobilisation and is preparing new provocations, while the #EU pushes Zelensky forward at the expense of Europe's national interests. #Russia, recognising that a proposed 30-day ceasefire would allow the AFU to recover and fortify, is explaining to the #US why such a move is futile.
🗓 This Week's Key political Outcome has been the rapid advance of the Russian Army in the #Kursk region, the liberation of #Sudzha City, and battles in the Ukrainian #Sumy region.
🇷🇺 Russian military Successes precisely strengthen their negotiating position, as emphasised by the Supreme Commander, President Putin, during a meeting at the command post in #Kursk region. Overall, #Russia seeks a long-term, stable peace, not short-term satisfaction of Trump’s ambitions. Conversations with frontline soldiers, who have fought in the hardest sectors since the war began, confirm the Russian Army's readiness to push forward until the full objectives of the Special Military Operation are achieved.
🇺🇦 Kiev’s Position has notably shifted significantly. Initially, it demanded a return to the '1991 borders,' then to the 'Prewar Borders,' and now Zelensky is prepared to freeze the conflict along the current frontline. This is unacceptable to #Russia within its new constitutional borders. Moreover, any pause in fighting benefits the retreating side.
🇺🇸 The United States, meanwhile, has resumed providing intelligence and military-technical aid to #Ukraine, while European bureaucrats fuel war hysteria and prepare for direct conflict with #Russia. This is seen in #Poland and #Germany expanding their armed forces (including territorial defence and universal military training) and in military production ramp-ups, generating huge profits for arms manufacturers.
⚔️ On the Front, Russian success in the #Kursk region sets the stage for further advances in the #Sumy direction. The AFU had anticipated this and prepared defensive lines.
🔴 In #Belgorod Region, the AFU continue daily strikes on civilians using artillery and drones.
🔴#Svatovo Front:
🔴 In #Kupyansk Sector, reports indicate AFU counteractions against the Russian bridgeheads on the right bank of the Oskol River.
🔴 In #Liman Sector, Russian forces remain active near #Kolodezi and #Yampolovka.
🔴 In #Seversk Sector, Russian troops are advancing with heavy fighting from #Belogorovka towards #Grigorovka.
🔴 ChasovYar Direction:
🔴 In #Toretsk Sector, the AFU continue deploying personnel and equipment in the city itself, with battles ongoing for the urban agglomeration.
🔴 In #Pokrovsk Direction, north of #Vozdvizhenka, fighting is underway near #Tarasovka, where the AFU has built strong defensive positions. Near the city, positional battles continued throughout the week, but by the end of the week, Russian forces regained the initiative.
🔴 In #Komar Direction, northwest of the conquered #Konstantinopol, Russian troops are aligning the front by advancing westward. In #Komar sector, #Dneproenergiya has been secured.
🔴 On the #Zaporozhye Front, the capture of #Pyatihatki and #Stepovoye was key, with battles ongoing for #Shcherbaki and #MalyeShcherbaki.
📌 Given the Events, political discussions about peace should not be seen as a signal for an imminent ceasefire. Politicians make statements to mislead opponents and provoke mistakes. It is crucial to understand that, beyond Russia’s constitutionally recognised regions, previously declared Russian cities #Odessa, #Kharkov, #Nikolayev, #Dnepropetrovsk, and even #Kiev will remain under Western control unless the Kiev Regime is fully dismantled, posing a lasting threat to #Russia.
🗺 Map Kursk Region by @olegtsarov
📋Sources: ⚡️2M;
🇺🇦Fiend; 😼Kotenok
🕰16 Mar 2025; 06:43 GMT+3; #sum
📱 Join GLOBAL DEPTH to boost your TG Feed
💬Welcome to Military Chat & Ukraine Observer
🇺🇦On Ukraine Observer you will find your daily independent Ukraine War Battle Update
⚡️
🇷🇺
🇺🇦⚔️ Ukraine Fronts on the Morning of 17 March⚡️
🔴#Sumy Direction:
🔴In #Sudzha Sector, west of the city in #Ukraine, the RFAF is fighting for #Zhuravka and in the direction of #Belovody to the south of it. To the east, battles for #Basovka are ongoing.
🟡 In #Russia, to the east, there are fierce battles for #Gogolevka.
🟡#Oleshnya remains under AFU control. For #Melovoy to the east of it, the situation is unclear.
🟡 For #Guyevo, battles continue.
🟡#Gornalin the far south of #Kursk region, remains under AFU control for now.
🗺 Map 1
🔴#Svatovo Front:
🔴 In #Kupyansk Sector, on the right bank of the Oskol River, north of #Kupyansk, the RFAF continue to advance.
🗺 Map 2
🔴 In #Borovaya Sector, fights for #Boguslavka's northern settlement outskirts continue.
🔴In #Liman Sector, fighting is taking place in the direction of #Zagryzovo - #Boguslavka.
🟡#Novolyubovka has been occupied by Russian forces.
🗺 Map 2
🔴#ChasovYar Direction:
🔴In #Toretsk Sector, fighting in the city continues.
🔴#Pokrovsk Direction:
🔴 On the right Flank, the battles for #Lysovka, where the RFAF took again control of its southwestern part, and #Novoukrainka continue.
🟡 In #Shevchenko, the AFU have consolidated in the northern part of the village. Periodically they try to enter the southern part, where they are defeated.
🎞 Video
🟡 In #Peschanoye, the AFU is trying to gain a foothold again. Most of the village is under Russian control.
🟡 In #Zverevo, Russian assault groups are attacking in the southeastern parts (north of #Peschanoye) and in the northwestern part.
🟡 In #Kotlino, the AFU counterattacks for the northwestern settlement outskirts.
🗺 Map 3
🔴 On the left Flank, the RFAF took the initiative and try to restore the situation in #Udachnoye. The eastern part of the settlement and most of industrial zone came under Russian control.
🗺 Map 3
🔴#Zaporozhye Direction:
🔴In the #Orekhov Section, Russian troops continue to attack with infantry units in the area of the conquered #Pyatikhatki settlement. Battles for #Shcherbaki and #MalyeShcherbaki to the west of it are ongoing. The AFU is counterattacking, also at #Stepovoye.
🗺 Maps @olegtsarov
📋Sources: ⚡️2M;
🇺🇦Fiend; 😼Kotenok
🕰17 Mar 2025; 06:34 GMT+3; #sum
📱 Join GLOBAL DEPTH to boost your TG Feed
💬Welcome to Military Chat & Ukraine Observer
🇺🇦On Ukraine Observer you will find your daily independent Ukraine War Battle Update
⚡️
🇷🇺
🇺🇦📆 Weekly Ukraine War Roundup⚡️
🗣 The Past Week saw continued global turbulence. The spotlight was on Trump’s introduction of sweeping protective tariffs, signalling a move towards super-protectionism. The era of globalism and idealistic notions of 'international division of labour' is fading, , giving way to intensifying trade wars. Washington aims to bring real industrial production back to the #US, streamline spending, and balance trade, particularly with #China. #EU officials voiced concern, but antiwar protests in cities like #Rome, with slogans like 'We need hospitals, not missiles,' better reflect public sentiment. Meanwhile, #Europe’s elite exploits the 'War with Russia' narrative to serve arms lobbies and divert funds from social programmes. The #US also saw protests, mainly driven by the societal split after years of liberal-fascist propaganda from Biden’s camp and its allies.
🇷🇺 In Diplomacy, the arrival of Dmitriev, envoy of the Supreme, in the #US was notable. His talks focused less on peace in #Ukraine and more on the economic benefits of working with us, compared to the costly, unconditional arms deliveries to Kiev.
🔸 Such Meetings are often spun at home as signs of a 'coming end to the war' which is misleading. Unquestioning belief in this narrative has weakened logistical support for the front and sparked rumours among troops about an imminent ceasefire. This undermines morale among fighters and officers, who see it as premature compromise.
⚔️ On the Fronts, while the RFAF maintain strategic initiative, the AFU is carrying out a defensive operation to slow our advance along the Line of Contact.
🔴 In the Invasion Zone, the AFU still hold #Kursk border settlements, while the RFAF fight deeper into #Sumy region. Battles continue at #Popovka and #Demidovka in #Belgorod region, with the AFU reinforcing across the border. Signals indicate they retain reserves for further provocations. In #Bryansk region, officials finally acknowledged daily AFU shelling of civilians, though some incidents go unreported, frustrating locals and raising doubts about regional control.
🔴 On the #Svatovo Front, north of #Kupyansk, the RFAF expand their bridgehead on the Oskol’s right bank. Southward, intense fighting continues. On the #Liman axis, control expands from #Katerinovka to #Ivanovka.
🔴 At #ChasovYar, fighting with little movement. Near #Konstantinovka, we have engaged in battles at #Andreyevka. After weeks of combat in #Toretsk, we shifted southward, taking #Panteleymonovka and #Aleksandropol, fierce clashes rage in #Tarasovka and at #ZelenoyePole.
🔴 Around #Pokrovsk, momentum has shifted, Russian troops now advancing in #Lysovka.
🔴 In #Komar Direction, clashes continue south of #Razliv, at #Vesyoloye and #VolnoyePole.
🔴 On the #Zaporozhye Front, Russian forces took #Lobkovoye after gains at #Shcherbaki and #Stepovoye. Reportedly renewed action at #Kamenskoye. In #Kherson region, mutual strikes, and the RF Aerospace Forces increased FAB use this week.
💥 A recent AFU Strike on a key fibre-optic plant highlighted weaknesses in our air defences. Command inertia, underuse of anti drone tools, poor coordination, and lack of accountability among senior officers still lead to avoidable damage, despite most UAVs being downed, often over towns. Low pay and unfair compensation remain concerns among air defence crews.
❇️ In Summary, any 'societal relaxation' amid continued heavy fighting and Kiev’s consistent disregard for agreements, while the #US keeps supplying arms and intelligence to the AFU, looks naive. Mocking the AFU or potential adversaries has already cost Russia dearly, leading to the war now entering its 4th year.
📌 Notes: A Russian view; in supplement: In #Toretsk itself, the RFAF also advanced. In #Basovka the battle has shiftet to its southern part (Sumy).🗺👆
🗺 Map CC;📋Source: 2M
🕰As of 6 Apr 2025; 07:22 GMT+3
📃5 Apr;#sum
📱 Join GLOBAL DEPTH to boost your TG Feed
💬Join Military Chat for Comments & Discussions
🇺🇦On Ukraine Observer you will find your daily independent Ukraine War Battle Update