Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » |*теория*| дефрагментируем события

Ответить
Настройки темы
|*теория*| дефрагментируем события
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Очередная безумная задачка: (объясняю по пунктам)
1. есть N обработчиков событий (пусть N=3).
2. На них поступают события - занятость обработчиком с момента времени a1 до момента a2.
3. Последовательность событий известна заранее (и может незначительно меняться до момента обработки).
4. Возможны простои (то есть не обязательно должно упаковываться вплотную)
5. Не важно, кто обработает
но надо как можно плотнее упаковать события ("дефрагментировать" свободное место)
допустимо рекурсивное решение задачи (было оптимальное решение, добавили, изменили или удалили одно событие),
допустимо неполное решение (дефрагментация на 95%)
пример заполнения:
Код: Выделить весь код
1: xxx    bbbb           1: xxx
2: xxxaaa    xxxx   ->   2: xxx       xxxx
3: xxx        xxx        3: xxxaaa bbbbxxx
в голову ничего не идёт :-(
пойдёт любая идея, ссылка или алгоритм

смотрел:
1. задачу в 8 ферзях - не то
2. задачу о тетрисе - решается полным перебором (а у меня N примерно 500 и примерно по 10 событий на обработчик, т.е. итого 5000 блоков)

Если поможет:
когда ставят задания как попало, часто возникает ситуация, когда нет свободного обработчика из-за фрагментации (а на самом деле можно всё растолкать и воткнуть задание). Работу выполняют люди с ОЧЕНЬ сильным человеческим фактором, вот и хочется и им помочь и предприятию и себе (достали звонками уже).
Ну и...
за полезные сообщения могу разработками поделиться ;-)

Отправлено: 17:02, 15-04-2007

 

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


pva
как то не очень нонятно объяснили...
может попытаетесь по понятнее объяснить?

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 20:19, 15-04-2007 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

pva pva вне форума Автор темы

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Нашёл похожую задачу - укладку прямоугольников на бесконечной полосе. Отличается тем, что у меня нельзя двигать вдоль полосы. Попробую перефразировать в этом духе:
Есть бесконечная полоса ширины N (целое). Есть несколько прямоугольников ширины 1, заданной длины L[i] (вещественное) и положения вдоль полосы x[i] (вещественное). Нужно расположить их так (меняя только y[i], целое), так чтобы они все поместились на полосе. Если все поместить невозможно, то разместить как можно большее их число.

Отправлено: 18:44, 19-04-2007 | #3


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


pva
У меня кажется есть решение (на основе т.н. динамического программирования). Только хочу уточнить некоторые условия, прежде чем идею попытаюсь развить. Я правильно понял, что (перефразируя начальны пост):
1. есть поток потяжённых во времени задач (задающихся начальной и конечной точкой во времени)
2. задачи могу по времени перекрываться
3. Для каждой задачи нужно назвать обработчик, на который она пойдёт, или просто сбросить её (не обрабатывать вообще)
4. После того как обработчик получил задачу он освободится (т.е. на него может быть назначена другая) только после того, как текущая полностью выполнится.
5. Требуется выполнить как можно большее число задач.
?

Так же интересуют ограничения по памяти и времени на всё решение задачи.

-------
http://ivank.ru


Последний раз редактировалось ivank, 20-04-2007 в 00:28.


Отправлено: 00:21, 20-04-2007 | #4

pva pva вне форума Автор темы

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Совершенно верно! По времени: чтобы на p4-1600 обрабатывалась не больше 5 сек, память не больше 50 МБ (под данные). Ограничения могут быть только вроде "непередвигаемых" заданий, то есть если сказали на обработчике №99, значит только на нём.

А можно формулировку критерия оптимизации? я что-то никак не могу составить.

Отправлено: 16:44, 23-04-2007 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » |*теория*| дефрагментируем события

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
EventID - Уведомление Ист. события: HHCTRL Категория события: Отсутствует. Код события: 1903 cleric1985_n Устранение критических ошибок Windows 7 27-11-2015 16:14
EventID - Источник события: SceCli, код события: 1202, предупреждение 0x534 Michael Устранение критических ошибок Windows 3 28-01-2009 13:25
EventID - Источник события: Virtual Disk Service, Код события: 6 oleg_an Устранение критических ошибок Windows 1 09-11-2007 18:05
EventID - [решено] Источник события:Windows Installer 3.1 Код события: 4379 ozzik Устранение критических ошибок Windows 2 31-10-2007 15:41
Категория события: Доступ к службе каталогов - Код события: 565 Kostyl Microsoft Windows NT/2000/2003 1 19-10-2005 08:33




 
Переход