В общем, была задача на оптимизацию плана работ: есть набор заказов, и в каждом N тасков. Таски могут зависеть друг от друга или нет, имеют длительность и тип. Ещё есть M работников, каждый из которых может выполнять таски только определённых типов, причём, у каждого своя скорость.
Если все таски в заказе выполнены, фирма получает сколько-то денег. У заказа есть дедлайн, за просрочку штраф (за каждый день просрочки), который вычитается из цены заказа. И ещё фирма тратит деньги за каждый день своей работы независимо от того, как загружены её сотрудники (то есть просто платит зарплаты по сути). Ещё важен учёт праздников и выходных.
Нужно заработать на определённом наборе заказов и работников как можно больше денег. Полный текст задачи и код программы проверки есть в репозитории. Эта задача является изменённым заказом, который мы с напарником решали в реальной жизни: оптимизация работы печатных станков для типографии. Правда, тогда и мы справились так себе, и заказчик в итоге сначала захотел всё вручную сам делать, а потом и вовсе похоронил проект при смене директора.
!!! Не читайте дальше, если хотите сначала попробовать решить самостоятельно, потому что я сейчас опишу эффективные подходы и результаты.
________________________________________
Так вот. Мы с другим экспертом Андреем сразу сели и написали разные варианты, чтобы задать шкалу, по которой будем оценивать решения команд. За пару часов я собрал примитивный жадный алгоритм, который сортировал заказы по прибыльности и укладывал в сетку кое-как, это дало нам нижнюю оценку. Мой алгоритм заработал ~75 млн виртуальных рублей, мы решили для оценки поставить нижней границей 40 млн. То есть всё, что ещё ниже, оценивалось в ноль баллов за качество оптимизации.
Затем Андрей закрылся дома на три дня и вышел на свет со сложным жадным алгоритмом, который очень хитро сортировал заказы и очень хитро укладывал их в сетку, попутно выбирая разные способы этой укладки в зависимости от конкретного заказа. Это позволило заработать ~275 млн рублей. Мы сделали верхней границей для оценки 280 млн.
К сожалению, в итоге только две команды из десяти прошли нижнюю границу, заработав, соответственно, ~91 и ~105 млн. К верхней границе не приблизился никто. И у четырёх команд алгоритм вообще не смог уложить без нарушений задачи в сетку (то есть, например, произвольно менял длительности, накладывал задачи друг на друга, давал одному работнику две задачи в один момент и так далее). Важной ошибкой команд, на мой взгляд, являлся тот факт, что никто не воспользовался возможностью запустить алгоритм на несколько минут и дать ему поработать. По условиям задания, можно было тянуть до 5 минут на одну оптимизацию, но по факту решения команд отрабатывали за единицы и десятки секунд.
На самом конкурсе, пока команды работали, я решил попробовать сделать быстрое (по времени написания) но эффективное решение. Сначала попробовал жадную сортировку + доведение до лучшего варианта методом имитации отжига. В качестве нового состояния я просто менял местами заказы целиком. Этот вариант работал пару минут и дал мне около ~200 млн дохода. К слову, команда-лидер использовала такой же подход, просто не докрутила число итераций и температуру.
Ну и потом я взял готовую либу по реализации классической генетики с особями и скрещиванием. Особью был массив с приоритетами заказов (которые конечно же нужно было аккуратно уложить чистым алгоритмом). Тип скрещивания: scattered. Всего 15 поколений по 20 особей, и это за минуту-полторы давало ~230-240 млн. Считаю, что для конкурса это самый лучший выбор: пишется одним человеком за день и даёт почти максимум, при этом легко настраивается на нужную длительность работы, легко параллелится.
Ну а потом уже дома я посидел и накодил свой вариант сложного жадного с плавающим окном перебора отсортированных заказов и плавающей же укладкой по работникам. Такая штука за две минуты зарабатывает ~281 млн. Но за три дня в условиях стресса я бы такое не сделал, скорее всего.
#dev
Outiside: известный учёный считает, что стареть необязательно
Звучит как фраза из научно-фантастического фильма, но не для известного учёного Дэвида Синклера, одного из ведущих в мире специалистов по старению. Профессор Гарварда, вошедший в список 100 самых влиятельных людей мира в 2014 году по версии журнала Time, согласен с тем, что в какой-то момент все должны умереть, но он утверждает, что мы можем удвоить продолжительность своей жизни и жить здоровой и активной жизнью до конца своих дней.
«Простуда, тяжелая тренировка и время от времени голодание - все это задействует то, что Синклер называет цепью выживания нашего тела, в которой сиртуины приказывают клеткам усилить свою защиту, чтобы поддерживать организм (вас) в живых. Хотя теория цепи выживания Синклера еще не доказана в условиях испытаний, существует множество исследований, которые предполагают, что упражнения, переохлаждение и снижение калорийности помогают замедлить побочные эффекты старения и предотвратить болезни, связанные со старением. В частности, голодание было хорошо подтверждено другими исследованиями: в различных исследованиях и мыши, и дрожжи, которых кормили ограниченными диетами, живут намного дольше, чем их сытые коллеги. Двухлетний эксперимент на людях в 1990-х годах показал, что у участников, которые придерживались ограниченной диеты, из-за которой они оставались голодными, часто снижалось артериальное давление, уровень сахара в крови и уровень холестерина. Последующие исследования на людях показали, что сокращение калорий на 12 процентов замедляет биологическое старение на основе изменений биомаркеров крови».
https://theidealist.ru/agingisoptional/
#Outside#наука#человек#старение
Outside: новое исследование раскрывает то, что на самом деле происходит с вашим телом после ультрамарафона на 160 км
Что остаётся от человеческого тела после 160 километров боли, высот и недостатка сна? Новое исследование разобрало ультрамарафон не только на калории, но и на дни восстановления: сколько энергии уходит на финиш, а сколько — на то, чтобы снова встать с кровати. Оказывается, настоящее испытание начинается не на дистанции, а после неё — когда организму нужно залатать себя изнутри, восполнить тысячи сожжённых калорий и восстановить водный баланс. И всё это — без тренировок, но с невероятным "послевкусием" стресса, которое не улетучивается неделями. Эта статья — взгляд внутрь человека, который дошёл до предела, и за него заглянул.
«Тренировка — это тяжело. Но и восстановление организм воспринимает как полноценную работу. Не забывайте подкармливать своё тело, чтобы оно справилось»
https://theidealist.ru/after160/
#Outside#наука#человек#бег
Outside: как потерпевшие кораблекрушение люди 10 дней выживали в открытом море
25 ноября 2019 года Крис Карни и его команда из двух человек отправились в в путешествие на парусной лодке с мотором из Японии в Гавайи. Крис и товарищи были опытными моряками, а лодка - вполне современной. Но море может преподнести любые сюрпризы, и в результате сильного шторма люди оказались на весьма потрёпанном прироой судне посреди огромного океана, без связи, с минимумом воды и еды, почти без надежды. Им уалось выжить Крис считает, что главными помощниками в беде стали разум и хладнокровие. Его история - в сегодняшнем материале.
«Очень повезло, что судно выдержало. Если бы у нас была пролом, лодка затонула бы примерно через 30 секунд. Нам было холодно, всё промокло. Ни сухой одежды, ни сухих кроватей. Мы сидели на голодном пайке, вроде пяти миндальных орехов в день. Ограничив то немногое количество воды и еды, которое у нас осталось, мы решили, что сможем прожить 40 или 50 дней. Раньше я никогда не сталкивался со смертью лицом к лицу. Все знают, что они умрут. Но никому не приходит в голову думать о том, что смерть наступит через 50 дней».
https://theidealist.ru/shipwreck/
#Outside#человек#море#кораблекрушение#выживание
Ура. Я дома, я на связи!
В ближайшее время всем отвечу☺️
Имеретинские были прекрасны, по всем связанным вопросам с маршрутом пишите в личку.
Из нового подвернул ногу и теперь снова длительное восстановление ☹️
#mountain#lake#outdoor#outside#caucasus
#alpina#buff
Уже в начале июня мы возвращаемся в Красную Поляну и есть свободные дни для походов по маршрутам одного дня, и поездок в Абхазию.
А так же уже можно бронировать многодневные туры, места есть и разлетаются как горячие пирожки.
И да мы готовы организовать поход под запрос и даты которые вам удобны🙏🏻
#походы#туризм#горы#кавказскийзаповедник#mountain#outdoor#outside#trekking
Одним днём в Норвегию смотался😍
Как вам видео?
#mountain#mountainhome#outside#outdoor#adventurelife#wildrussia#wildlife#adventure#explore#summervibe#vibes
Все любители комфорта были услышаны! На Розе Хутор построили крутой, комфортный кемпинг. А не вот эти вот ваши палатки, спальники, котелки, горелки.
Уже 1 июля открывается высокогорный кемпинг Нахазо. Где можно будет провести время на природе, оторваться от работы и получить максимальный заряд. Я думаю, что каждый любит те моменты, когда: неспешно просыпаешь, завтракаешь, проводишь время с самим собой или семьей, друзьями! А также гуляешь, кушаешь, сидишь на краю горы перед крутым спуском и впитываешь горные красоты. Отключаешь голову, расслабляешься и начинаешь просто получать удовольствие от жизни.
Моя жена @kristin044ka была там недавно и осталась в полном восторге. Говорит, что подобного нет нигде в России. Я вот уже горю желанием посмотреть на это место, а вы?
@kirillumrikhin📸
@rosakhutor
#rosakhutor#mountainresort#mountainhotels#mountaincamping#mountain#landscape#outdoor#outside#trekking#hikking#caucasus
Как сэкономить на снаряжении, и когда лучше взять в аренду?
Сейчас покупать снаряжение для активного отдыха стало довольно накладно. А если вы занимаетесь сноубордом/лыжами, туризмом, велосипедом и т.д. - то встаёт ещё вопрос и хранения 🙈
Но вместо того, чтобы грустить, рассмотрим лайфхаки.
Сейчас реально выгодно брать снарягу в аренду, т.к. покупать новое может быть накладно. Особенно, рекомендую аренду, когда вы первый раз идёте в поход или пробуете катание на сноуборде - есть возможность оценить снаряжение, чтобы получить понимание: а нужно ли вам ходить в горы в будущем? И если нужно - какой именно рюкзак, палатку, спальник - вы хотите купить, дабы не переплачивать и не жалеть о покупке.
Поэтому я всё чаще стал рекомендовать пользоваться отличным сервисом аренды снаряжения от @kant_sport в Москве. Это удобно, т.к можно гарантировано взять качественное, чистое снаряжение за разумные деньги. К тому же сейчас в прокате доступно 150 позиций от ледорубов, спальников до велосипедов с лонгбордами. Круто, не правда ли?
Ну и наконец, даже сейчас можно купить снаряжение за отличную цену, а также использовать промокод на скидку. Напомню, что для покупателей магазина @kant_sport у меня есть промокод, он действует в магазине и сервисе. Пользуясь моим промокодом вы поддерживаете меня. Пиши в Direct, поделюсь скидкой)
#rent#outdoor#outside#sportislife#большеспортаярчежизнь#кантспорт#прокат#арендаснаряжения
#snowboard#bike#bicycle#sup#rafting#skate#alpinism#ski