Я ищу радио, рекламирующее алгоритм планирования / пример / опыт

Попробованное проведение небольшого количества исследования на следующем без удачи. Мысль, которую я спросил бы здесь в случае, если кто-то столкнулся с нею прежде.

Я помогаю управляемой волонтером радиостанции с их технологическими потребностями. Одно из главного, которое подошло, они хотели бы запланировать свою рекламу программно.

Существует много аккуратных и сложных механизмов правила там для рекламы, но все, в чем мы нуждаемся, является чем-то довольно простым (наряду с любым опытом, это стоит думать о).

Я хотел бы записать что-то в SQL, если это возможно, для контакта с этими объектами. Идеально, если бы кто-то записал что-то вроде этого для других средств рекламы (сеть, и т.д.) это было бы действительно полезно.

Объекты:

  • Реклама (состоящий из категории, # игр в день, дату начала, дата окончания или постоянная игра)
  • Категория рекламы (Ресторан, здоровье, Продовольственный магазин, и т.д.)

Для упрощения проблемы это будет изящным sql оператором. Получение там... :)

Я хотел бы смочь генерировать плей-лист в день с помощью вышеупомянутых двух объектов где:

  • Никакие две рекламы в той же категории не играется в x количестве рекламы друг друга.
  • (хороший иметь) может быть продвинута, высокая реклама продвижения

В это время нет никаких "слотов рекламы" для заполнения. Нет никаких соображений "времени суток".

Мы стоим в очереди реклама в течение дня и проходим их между песнями/шоу и т.д. Мы знаем, сколько в час мы должны заполнить и т.д.

Какие-либо мысли/идеи/ссылки/примеры? Я собираюсь продолжить смотреть и надо надеяться сталкиваться с чем-то вместо того, чтобы изучить это длинный путь.

8
задан Smooth Operator 5 June 2010 в 03:59
поделиться

2 ответа

Очень интересный вопрос, SMO. Сейчас это выглядит как проблема программирования ограничений, потому что вы ищете не оптимальное решение, а только такое, которое удовлетворяет всем указанным вами ограничениям. В ответ тем, кто хотел закрыть вопрос, я бы сказал, что им нужно немного изучить программирование с ограничениями. Это намного ближе к stackoverflow, чем любые сайты по исследованию операций.

Изучите программирование с ограничениями и планирование - готов поспорить, вы найдете аналогичную задачу слишком сладкой!

Пожалуйста, держите нас в курсе вашего прогресса.

1
ответ дан 6 December 2019 в 02:24
поделиться

Игнорирование запроса T-SQL на данный момент, поскольку это вряд ли лучший язык для написания этого ...

Один из моих любимых подходов к таким сложным задачам «компоновки», как этот это Simulated Annealing . Это хороший подход, потому что вам не нужно думать, КАК решить реальную проблему: все, что вы определяете, - это мера того, насколько хорош текущий макет (оценка, если хотите), а затем вы разрешаете случайные изменения, которые либо увеличиваются, либо уменьшаются. этот счет. На протяжении многих итераций вы постепенно уменьшаете вероятность перехода к худшему результату. Такой подход «имитационного отжига» снижает вероятность застревания в локальном минимуме.

Таким образом, в вашем случае функция оценки для данного макета может основываться на расстоянии до следующего объявления в той же категории и расстоянии до другого объявления той же серии. Если позже у вас возникнут соображения по времени суток, вы можете легко добавить их в функцию оценки.

Первоначально вы распределяете рекламные объявления последовательно, равномерно или случайным образом в пределах их временного окна (не имеет значения, какое именно). Теперь вы выбираете два слота и рассматриваете, что происходит со счетом, когда вы меняете содержимое этих двух слотов. Если какое-либо объявление выходит за пределы допустимого диапазона, вы можете немедленно отклонить изменение. Если оба все еще в пределах досягаемости, приведет ли это к лучшему общему баллу? Первоначально вы вносите изменения случайным образом, даже если они ухудшают ситуацию, но со временем вы уменьшаете вероятность того, что это произойдет, так что к концу вы монотонно продвигаетесь к лучшему результату.

Легко реализовать, легко добавить новые «правила», которые влияют на оценку, можно легко настроить время выполнения, чтобы принять «достаточно хороший» ответ, ...

Другой подход - использование генетического алгоритма, см. этот похожий вопрос: Best Fit Scheduling Algorithm это, вероятно, сложнее запрограммировать, но, вероятно, быстрее сойдется на хорошем ответе.

0
ответ дан 6 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: