В общем, была задача на оптимизацию плана работ: есть набор заказов, и в каждом N тасков. Таски могут зависеть друг от друга или нет, имеют длительность и тип. Ещё есть M работников, каждый из которых может выполнять таски только определённых типов, причём, у каждого своя скорость.
Если все таски в заказе выполнены, фирма получает сколько-то денег. У заказа есть дедлайн, за просрочку штраф (за каждый день просрочки), который вычитается из цены заказа. И ещё фирма тратит деньги за каждый день своей работы независимо от того, как загружены её сотрудники (то есть просто платит зарплаты по сути). Ещё важен учёт праздников и выходных.
Нужно заработать на определённом наборе заказов и работников как можно больше денег. Полный текст задачи и код программы проверки есть в репозитории. Эта задача является изменённым заказом, который мы с напарником решали в реальной жизни: оптимизация работы печатных станков для типографии. Правда, тогда и мы справились так себе, и заказчик в итоге сначала захотел всё вручную сам делать, а потом и вовсе похоронил проект при смене директора.
!!! Не читайте дальше, если хотите сначала попробовать решить самостоятельно, потому что я сейчас опишу эффективные подходы и результаты.
________________________________________
Так вот. Мы с другим экспертом Андреем сразу сели и написали разные варианты, чтобы задать шкалу, по которой будем оценивать решения команд. За пару часов я собрал примитивный жадный алгоритм, который сортировал заказы по прибыльности и укладывал в сетку кое-как, это дало нам нижнюю оценку. Мой алгоритм заработал ~75 млн виртуальных рублей, мы решили для оценки поставить нижней границей 40 млн. То есть всё, что ещё ниже, оценивалось в ноль баллов за качество оптимизации.
Затем Андрей закрылся дома на три дня и вышел на свет со сложным жадным алгоритмом, который очень хитро сортировал заказы и очень хитро укладывал их в сетку, попутно выбирая разные способы этой укладки в зависимости от конкретного заказа. Это позволило заработать ~275 млн рублей. Мы сделали верхней границей для оценки 280 млн.
К сожалению, в итоге только две команды из десяти прошли нижнюю границу, заработав, соответственно, ~91 и ~105 млн. К верхней границе не приблизился никто. И у четырёх команд алгоритм вообще не смог уложить без нарушений задачи в сетку (то есть, например, произвольно менял длительности, накладывал задачи друг на друга, давал одному работнику две задачи в один момент и так далее). Важной ошибкой команд, на мой взгляд, являлся тот факт, что никто не воспользовался возможностью запустить алгоритм на несколько минут и дать ему поработать. По условиям задания, можно было тянуть до 5 минут на одну оптимизацию, но по факту решения команд отрабатывали за единицы и десятки секунд.
На самом конкурсе, пока команды работали, я решил попробовать сделать быстрое (по времени написания) но эффективное решение. Сначала попробовал жадную сортировку + доведение до лучшего варианта методом имитации отжига. В качестве нового состояния я просто менял местами заказы целиком. Этот вариант работал пару минут и дал мне около ~200 млн дохода. К слову, команда-лидер использовала такой же подход, просто не докрутила число итераций и температуру.
Ну и потом я взял готовую либу по реализации классической генетики с особями и скрещиванием. Особью был массив с приоритетами заказов (которые конечно же нужно было аккуратно уложить чистым алгоритмом). Тип скрещивания: scattered. Всего 15 поколений по 20 особей, и это за минуту-полторы давало ~230-240 млн. Считаю, что для конкурса это самый лучший выбор: пишется одним человеком за день и даёт почти максимум, при этом легко настраивается на нужную длительность работы, легко параллелится.
Ну а потом уже дома я посидел и накодил свой вариант сложного жадного с плавающим окном перебора отсортированных заказов и плавающей же укладкой по работникам. Такая штука за две минуты зарабатывает ~281 млн. Но за три дня в условиях стресса я бы такое не сделал, скорее всего.
#dev
✅Apple iPhone 17e
#ebay
✅ Oferta: 495,95€❌ PVP: 709,00€
El último teléfono de Apple, pensado para entrar en el ecosistema de iOS a un precio más asequible, ya se puede conseguir con descuento. Comparte casi el mismo hardware que el iPhone 17, pero con una sola cámara y algunos recortes más. Viene con el Chip A19 y una pantalla OLED super Retina XDR de 6,1". Además, parte de un almacenamiento de 256 GB, y está disponible en tres colores. Se trata de un producto usado
➡️https://ebay.us/jBskPq
📱 Más ofertas en @applesferaseleccion
🗣 Como socio de eBay, puedo recibir una compensación si realizas una compra
✅iPhone16E
#eBay
✅ Oferta: 429,00€❌ PVP: 599€
👌Pensado para entrar en el ecosistema de iOS a un precio más asequible, ha caído de precio de manera temporal. Comparte casi el mismo hardware que el iPhone 16, pero con una sola cámara y algunos recortes más, pero sigue siendo una experiencia fantástica para empezar con Apple. Producto de exposición del Outlet de MediaMarkt
➡️https://bit.ly/4fm0iOY
📣 Síguenos: @compradiccion
🌎compradiccion.com
📱Síguenos en TikTok: https://www.tiktok.com/
Como socio de eBay, puedo recibir una compensación si realizas una compra
📱 Funda transparente para iPhone 16 Plus
#ebay
✅ Oferta: 13,90€❌ PVP: 58,99€
El outlet de MediaMarkt también nos deja con esta funda transparente oficial de Apple para el iPhone 16 Plus. Es compatible con MagSafe, y es ideal para proteger nuestro dispositivo de golpes o caídas.
➡️https://ebay.us/B6YScI
📱 Más ofertas en @applesferaseleccion
🗣 Como socio de eBay, puedo recibir una compensación si realizas una compra
📱 Funda iPhone 16 Plus
#ebay
✅ Oferta: 9,99€❌ PVP: 44,99€
El outlet de MediaMarkt también nos deja con esta funda de silicona oficial de Apple para el iPhone 16 Plus. Es compatible con MagSafe, y es ideal para proteger nuestro dispositivo de golpes o caídas.
➡️https://ebay.us/rP9OXw
📱 Más ofertas en @applesferaseleccion
🗣 Como socio de eBay, puedo recibir una compensación si realizas una compra
⌚️Apple Watch SE (2024)
#ebay
✅ Oferta: 199,99€❌ PVP: 299,00€
El Apple Watch más económico cae de precio en el outlet de MediaMarkt, y es la oportunidad perfecta para adentrarse en el ecosistema de la compañía. Cuenta con una pantalla de 40 mm de vidrio Ion-X. Permite escuchar música, medir nuestra actividad física, controlar nuestro sueño, enviar ayuda si la necesitas y como no, responder mensajes o llamadas.
➡️https://ebay.us/ddgnWT
📱 Más ofertas en @applesferaseleccion
📱 Motorola Moto G35
#ebay
✅ Oferta: 102,00€ ❌ PVP: 175,99€
El Motorola Moto G35 es otro smartphone fantástico para el que busque gastarse poco dinero. Cuenta con un procesador Unisoc T760 que está pensado para el rendimiento justo para navegar y responder WhatsApps. Además, cuenta con una pantalla de 6,72" FHD+ junto con una batería de 5000 mAh. Es compatible con NFC y doble SIM.
➡️https://www.ebay.es/itm/267320043156
📣 Síguenos: @compradiccion
📱Síguenos en TikTok: https://www.tiktok.com/@compradiccion
🌎compradiccion.com
🗣 Como socio de eBay, puedo recibir una compensación si realizas una compra
📱 Samsung Galaxy A05s (128GB)
#ebay
✅ Oferta: 78,90€❌ PVP: 159,00€
Este dispositivo destaca por ofrece una pantalla de 6.7 pulgadas, así como un procesador Qualcomm Snapdragon 680 junto a los 4GB de RAM, lo que te garantiza un buen rendimiento dado su precio. Además, gracias a sus 128GB de memoria interna, tendrás espacio más que suficiente para guardar miles de fotos y aplicaciones. Se trata de un artículo abierto sin usar, ya que era de exposición.
➡️https://www.ebay.es/itm/397780230856
📣 Síguenos: @compradiccion
📱Síguenos en TikTok: https://www.tiktok.com/@compradiccion
🌎compradiccion.com
🗣 Como socio de eBay, puedo recibir una compensación si realizas una compra
📱iPhone 15 (128 GB)
#ebay
✅Oferta: 499,90€❌ PVP: 639,00€
MediaMarkt tiene a muy buen precio el iPhone 15 en su outlet, el smartphone de Apple que integra una pantalla Super Retina XDR OLED de 6,1 pulgadas, ofrece un brillo máximo de hasta 2.000 nits, cuenta con el chip A16 Bionic y su cámara principal es de 48 MP. Es un modelo completamente nuevo.
➡️https://www.ebay.es/itm/227306369914
📱 Más ofertas en @applesferaseleccion
🔌 Belkin Cargador USB de Pared Híbrido 25W con Batería Externa
#ebay
✅ Oferta: 29,90€❌ PVP: 45,00€
Este innovador dispositivo 2 en 1 de Belkin funciona como un cargador de pared súper rápido de 25W y, a la vez, integra una práctica power bank de 5000 mAh. Puedes usarlo en casa para cargar tu móvil a la máxima velocidad y, cuando salgas por la puerta, llevártelo en la mochila para tener energía extra en cualquier lugar sin depender de un enchufe. Además, incluye cabezales modulares para poder llevarlo a cualquier país.
➡️https://ebay.us/fn42aA
📣 Síguenos: @compradiccion
📱Síguenos en TikTok: https://www.tiktok.com/@compradiccion
🌎compradiccion.com
🗣 Como socio de eBay, puedo recibir una compensación si realizas una compra
✅APPLE iPad (2021 9ª gen)
#ebay
✅ Oferta: 249,00€❌ PVP: 429,00€
El iPad de 9ª generación baja de precio en su versión de 64 GB. Se trata de un modelo de exposición, pero está sin usar. A este precio, es una ganga, sobre todo porque viene con el chip A13 que a día de hoy todavía ofrece un rendimiento fantástico. Es un modelo de exposición, por lo que llegará abierto. Eso sí, nos garantizan que está sin usar.
➡️https://ebay.us/i2d4XG
📱 Más ofertas en @applesferaseleccion
⌚️Apple Watch SE (2024)
#ebay
✅ Oferta: 135,15€❌ PVP: 299,00€
Esta versión reacondicionada del reloj de Apple cae de precio en el outlet de MediaMarkt. Cuenta con la batería al 100% de salud, por lo que en ese sentido es como comprarlo nuevo. Por el resto, es el compañero ideal para el que busque un smartwatch con el que acompañar a su iPhone.
➡️https://ebay.us/zYECX9
📱 Más ofertas en @applesferaseleccion
🔌 Apple Adaptador de corriente USB-C de 20 W
#ebay
✅ Oferta: 17,00€❌ PVP: 25,00€
Carga tu iPhone o iPad a la máxima velocidad y con total seguridad. Este cargador oficial de Apple de 20 W con toma USB-C es perfecto para aprovechar la carga rápida de tus dispositivos y tenerlos al 100% en menor tiempo.
➡️https://www.ebay.es/itm/406839957187
📣 Síguenos: @compradiccion
📱Síguenos en TikTok: https://www.tiktok.com/@compradiccion
🌎compradiccion.com
ℹ️ Ofrecido por eBay
🗣 Como socio de eBay, puedo recibir una compensación si realizas una compra