В общем, была задача на оптимизацию плана работ: есть набор заказов, и в каждом N тасков. Таски могут зависеть друг от друга или нет, имеют длительность и тип. Ещё есть M работников, каждый из которых может выполнять таски только определённых типов, причём, у каждого своя скорость.
Если все таски в заказе выполнены, фирма получает сколько-то денег. У заказа есть дедлайн, за просрочку штраф (за каждый день просрочки), который вычитается из цены заказа. И ещё фирма тратит деньги за каждый день своей работы независимо от того, как загружены её сотрудники (то есть просто платит зарплаты по сути). Ещё важен учёт праздников и выходных.
Нужно заработать на определённом наборе заказов и работников как можно больше денег. Полный текст задачи и код программы проверки есть в репозитории. Эта задача является изменённым заказом, который мы с напарником решали в реальной жизни: оптимизация работы печатных станков для типографии. Правда, тогда и мы справились так себе, и заказчик в итоге сначала захотел всё вручную сам делать, а потом и вовсе похоронил проект при смене директора.
!!! Не читайте дальше, если хотите сначала попробовать решить самостоятельно, потому что я сейчас опишу эффективные подходы и результаты.
________________________________________
Так вот. Мы с другим экспертом Андреем сразу сели и написали разные варианты, чтобы задать шкалу, по которой будем оценивать решения команд. За пару часов я собрал примитивный жадный алгоритм, который сортировал заказы по прибыльности и укладывал в сетку кое-как, это дало нам нижнюю оценку. Мой алгоритм заработал ~75 млн виртуальных рублей, мы решили для оценки поставить нижней границей 40 млн. То есть всё, что ещё ниже, оценивалось в ноль баллов за качество оптимизации.
Затем Андрей закрылся дома на три дня и вышел на свет со сложным жадным алгоритмом, который очень хитро сортировал заказы и очень хитро укладывал их в сетку, попутно выбирая разные способы этой укладки в зависимости от конкретного заказа. Это позволило заработать ~275 млн рублей. Мы сделали верхней границей для оценки 280 млн.
К сожалению, в итоге только две команды из десяти прошли нижнюю границу, заработав, соответственно, ~91 и ~105 млн. К верхней границе не приблизился никто. И у четырёх команд алгоритм вообще не смог уложить без нарушений задачи в сетку (то есть, например, произвольно менял длительности, накладывал задачи друг на друга, давал одному работнику две задачи в один момент и так далее). Важной ошибкой команд, на мой взгляд, являлся тот факт, что никто не воспользовался возможностью запустить алгоритм на несколько минут и дать ему поработать. По условиям задания, можно было тянуть до 5 минут на одну оптимизацию, но по факту решения команд отрабатывали за единицы и десятки секунд.
На самом конкурсе, пока команды работали, я решил попробовать сделать быстрое (по времени написания) но эффективное решение. Сначала попробовал жадную сортировку + доведение до лучшего варианта методом имитации отжига. В качестве нового состояния я просто менял местами заказы целиком. Этот вариант работал пару минут и дал мне около ~200 млн дохода. К слову, команда-лидер использовала такой же подход, просто не докрутила число итераций и температуру.
Ну и потом я взял готовую либу по реализации классической генетики с особями и скрещиванием. Особью был массив с приоритетами заказов (которые конечно же нужно было аккуратно уложить чистым алгоритмом). Тип скрещивания: scattered. Всего 15 поколений по 20 особей, и это за минуту-полторы давало ~230-240 млн. Считаю, что для конкурса это самый лучший выбор: пишется одним человеком за день и даёт почти максимум, при этом легко настраивается на нужную длительность работы, легко параллелится.
Ну а потом уже дома я посидел и накодил свой вариант сложного жадного с плавающим окном перебора отсортированных заказов и плавающей же укладкой по работникам. Такая штука за две минуты зарабатывает ~281 млн. Но за три дня в условиях стресса я бы такое не сделал, скорее всего.
#dev
#adjectives
@fluencyinenglish
@ieltsstrategies
❌سعی کنید به جای کلمهی 👈very 👉از قیدهای دیگر استفاده کنید.❌
❇️These mountains are incredibly beautiful.
❇️The food in this restaurant is usually quite good.
❇️To climb mountains, you must be exceptionally brave
and fit.
@fluencyinenglish
@ieltsstrategies
❇️Earthquakes are extremely difficult to predict.
❇️It was really cold last night.
❇️He works unbelievably hard.
@fluencyinenglish
@ieltsstrategies
❇️I feel terribly tired.
❇️The film was absolutely awful.
❇️she plays the violin remarkably well.
@fluencyinenglish
@ieltsstrategies
В Россию завезли санкционную Кока-колу:)
They've brought sanctioned Coca-Cola into Russia:)
• Санкционный (masc.adj.)
[san-ktsy-on-nyj]
Sanction-related, sanctioned, subject to sanctions
🔻This adjective describes something that is directly connected to, affected by, or created as a result of sanctions (ограничительные меры).
Common collocations:
• Санкционные списки (plural noun)
sanctions lists (lists of individuals/entities under restrictions)
• Cанкционные товары (plural noun)
Sanctioned goods (products subject to trade restrictions)
• Cанкционные меры (plural noun)
Sanction measures
• Cанкционное давление (neut.noun)
Sanctions pressure
• Попасть под санкционные ограничения (perf.)
To fall under sanctions restrictions
#useful_vocabulary
#adjectives
🟠RCR | Support | Boost
👋Доброе утро, товарищи!
• Полезный (masc.adj.)
[pa-lez-nyj]
1) Useful, advisable
2) Healthy
🔻Also:
• Полезно (adverb)
[pa-lez-na]
• Это полезно для здоровья!
[e-ta pa-lez-na dlya zda-ro-v'ya]
It's useful for health!
💢There is a funny saying:
• Всё полезно, что в рот полезло.
[fsyo pa-lez-na shto v rot pa-lez-la]
Everything that goes into the mouth is useful. (Полезло = влезать = go in/get in)
❓A у Вас полезный завтрак?
🎧🗣👇
#useful_vocabulary
#adjectives
😎 Stay with @learnRCRussian
Всем надо работать, кроме очень красивых. Есть такое правило: очень красивые могут не работать, но только очень красивые.
Everyone needs to work, except for the very beautiful. There's a rule: very beautiful don't have to work, but only if they're very beautiful.
🔻Did you know that there is a colloquial form of красивый(beautiful)?
🔻This is a playful, informal term of endearment used to describe something exceptionally beautiful, sweet, and visually appealing:
👍Красивошный (masc.adj.)
[kra-si-vash-nyj]
=
👍Красивошная (femin.adj.)
[kra-si-vash-na-ya]
=
👍Красивошное (neut.adj.)
[kra-si-vash-na-ye]
=
👍Красивошные (plural adj.)
[kra-si-vash-ny-ye]
Beautiful, handsome
😺 Show this to your very fluffy beautiful one!
#spoken_Russian
#adjectives
🟠RCR | Support | Boost
Кошачий 🆚️ Кошкин?
🔢 Кошачий
[kа-sha-chiy]
Feline, cat's, cat-like
🔻This relational adjective describes something that is characteristic of cats in general, related to the cat species, or used for cats. It describes qualities or items associated with catness.
🔻It doesn't imply ownership by a specific cat.
Examples:
• Кошачий корм (masc.)
[ka-sha-chiy korm]
Cat food
• Кошачьи повадки (plural)
[ka-sha-chyi pa-vat-ki]
Cat-like habits
🔢 Кошкин
[kosh-kin]
The cat's
🔻This possessive adjective describes something that belongs to a specific, particular cat. It implies direct ownership by an individual cat.
Examples:
• Кошкин хвост
[kosh-kin khvost]
The cat's tail
• Кошкина миска
[koshkina miska]
The cat's bowl
🤔Sooo, I have a tricky question for you, my dear Russian language learners:
❓️кошкина шерсть или кошачья шерсть (... fur)? Share your ideas!
🗝Кошачья шерсть
#tricky_words
#adjectives
😎RCR | Support | Boost
👋Всех с понедельником, товарищи!
Деловитый 🆚️ Деловой 🆚️ Дельный
🔢 Деловитый (masc.adj.)
[di-la-vi-tyj]
Businesslike, efficient, practical
🔻This adjective describes someone who is businesslike, efficient, and practical in their actions.
• Он был очень деловитый и быстро решил проблему.
He was very businesslike and quickly solved the problem.
🔢 Деловой (masc.adj.)
[di-la-voy]
Business, professional, official
🔻This adjective refers to something related to business or professional matters.
• У него деловой костюм ипричёска.
He's wearing a business suit and hairstyle.
🔢 Дельный (masc.adj.)
[del'-nyj]
Sensible, practical, useful
🔻This adjective describes something practical, and useful in terms of actions, decisions.
• Он дал дельный совет.
He gave useful advice.
❓Is▶️малыш in the video ... ?
А. деловитый
Б. деловой
В. дельный
🎧🗣👇 Make up your own examples!
#tricky_words
#adjectives
😎 Stay with @learnRCRussian
• Бесполезный (masc.adj.)
[bes-pa-lez-nyj]
Useless, pointless
🔻Prefix: бес- (bes-) means without or lack of.
🔻Root: полез- сomes from the noun польза [pol'-za] use, benefit, advantage
🔻Suffix: -н is an adjectival suffix, forming adjectives from nouns or verbs.
🔻Ending: -ый is the masculine singular ending. The ending changes depending on gender and number (e.g., бесполезная - feminine singular, бесполезные - plural).
💢 This meaning is well illustrated with the Russian proverb:
• Носить воду в решете(imperf., 2nd conjugation)
[na-sit' vo-du v ri-shi-te]
Literally: To carry water in a sieve
To roast snow in a furnace, to be engaged in a hopeless task
• Ловить котят - бесполезная задача. Это как носить воду в решете: они всё равно разбегаются!
Trying to catch kittens is a useless task. It's like trying to carry water in a sieve. They just run away anyway!
🎧🗣👇 Hope it was not a бесполезный post ->❤️
#adjectives
#phraseology
😎RCRussian | Support | Boost
Electric sleds have replaced electric scooters.
🔻In Novosibirsk, Biysk and other cities, a winter version of electric scooters (which have become a real danger for pedestrians👿!!!) has been launched — you can now zip around the snowy city on electric sleds.
• Электрический (masc.adj.)
[е-lik-tri-chis-ky]
Electric
• Самокат (самокаты) (masc.noun)
[sam-a-kat (sam-a-ka-ty)]
A kick scooter
• Санки (plural)
[san-ki]
A sled (a vehicle on runners for sliding over snow)
• Это нам за то, что не молимся.
This is what we get for not praying.
#news
#useful_vocabulary
#adjectives
😎RCR | Support | Boost
Так выглядит одна молекула кота.
This is what one cat molecule looks like.
• Маленький (masc.adj.)
[ma-lin'-kiy]
Small, little
• Крошечный (masc.adj.)
[kro-shech-nyj]
Tiny
💢Also colloquial:
• Мелкий (masc.adj.)
[mel-kiy]
SLT: Shallow
Petty, insignificant, tiny
• Мелочь пузатая (femin. noun + adj., common gender)
[me-lach pu-za-ta-ya]
SLT: A little thing with a big belly: а playful nickname for a child or cub
Now you know how to call your kittens or younger kids in Russian😉.
🎧🗣👇
#adjectives
#useful_vocabulary
#spoken_Russian
😎RCR | Support | Boost
👋Приветствую!
Не забывайте про витамины весной!
Травоядный 🆚️ Плотоядный
🔢 Травоядный
[tra-va-yad-nyj]
Herbivorous
🔢 Плотоядный
[pla-ta-yad-nyj]
Carnivorous
Etymology:
The suffix -ядный derives from the verb есть [yest'] (to eat). Therefore, these words literally mean grass-eating and flesh-eating:
Трав(а) (grass)+ linking 'о' + ядный (eating)
Плот(ь) (flesh) + linking 'о' + ядный (eating)
💢In colloquial Russian травоядный has one more, figurative or ironical meaning harmless, incapable of aggression:
• Да, не бойся Василия. Это он снаружи такой грозный, а вдуше он травоядный.
Yes, don't be afraid of Vasily. He may look intimidating on the outside, but inside he's a gentle soul.
📎 Please don't call your tough-looking husband/bf травоядный to avoid misunderstanding or arguments😅!
🎧🗣👇
#useful_vocabulary
#adjectives
#spoken_Russian
😎 Stay with @learnRCRussian
Средневековая живопись такая утончённая.
Тем временем коты...
Medieval painting is so refined.
Meanwhile, cats...
• Утончённый (masc.adj.)
[oo-tan-chyon-nyj]
Sophisticated, refined
#just_cats
#just_a_joke
#adjectives
😎RCR | Support | Boost