Имеется женская клиника которая 1 января начинает делать определенную популярную процедуру. Имеется слегка еластичный лимит на количество процедур — условно говоря капасити = 20 в неделю, но если пару недель будет 21 то ето не сильно страшно.
Известно что спрос на ету процедуру имеется и больше чем 20 человек в неделю, по крайней мере сейчас человек 200 женщин уже ждут с нетерпением.
Процедура может начаться только в первый день периода у женщины. Пациентке дана инструкция позвонить в первый день кровотечения и получить указания от медсестры.
Период у человеков детородного возраста бывает каждые 21-35 дней со средним 30 дней, СтДев 5.6 дней (если ето пригодится), у многих они нерегулярны, у некоторых бывают 3-6 раз в год.
Внимание вопрос — как организовать шедьюлинг пациентов который был бы честным и в общих чертах first come first served ?
Здравствуйте, Lepsik, Вы писали:
L>Внимание вопрос — как организовать шедьюлинг пациентов который был бы честным и в общих чертах first come first served ?
Если бы врачи прозревали будущее, то сделали бы так.
Выстроили пациентов в очередь.
Рассмотрели подмножество тех, у кого первый день приходится на один из дней ближайшей недели.
Взяли бы первые 20-21 человек.
Всем остальным — ждать дальше.
Собственно, это лучшее, что можно предложить.
Однако, интересно, выдержит ли клиника, если все 20 человек придутся на один и тот же день?
Логично предположить, что ограничение загрузки — это 3 человека в день (2 человека в воскресенье).
Поэтому можно сделать так же, как с недельным предвидением, только с суточным.
Берём из живой очереди первых 3, приходящихся на данный день. Если за прошлую неделю был недобор, то можем позволить себе расширить лимит на 1-2 человека.
Всем остальным — ждать дальше.
Здравствуйте, Lepsik, Вы писали:
L>... L>Внимание вопрос — как организовать шедьюлинг пациентов который был бы честным и в общих чертах first come first served ?
Слишком расплывчатое требование. Что такое "честно"? И как-то сильно теряет смысл требовать от очереди FIFO, если за день в очереди может быть только 3 элемента(человека).
Постой алгоритм "по звонку". Позвонили, сразу в очередь. Кто не успел, тот опоздал.
Так как обычно заводят карточку на пациента, то можно сделать приоритет постановки в очередь. Если пациентка не была на процедуре Х*30 дней, то может вытеснить из очереди другую с меньшим значением Х.
Думаю другие шедулеры не будут сильно честнее для очереди из 3-4 элемента.
Здравствуйте, Lepsik, Вы писали:
К>>Всем остальным — ждать дальше.
L>процедура должна начаться именно в первый день периода, иначе — давай до свидания до следущего месяца
Я именно это и имею в виду.
В понедельник идут первые трое из тех, у кого началось в этот понедельник. Но в общей очереди они могут быть хоть пятидесятыми. Потому что первым сорока девяти всё равно в этот понедельник в клинике делать нечего.
Но если кандидаты имеют положение в очереди — №50, №100, №150, №200, — то №200 не пролезет вперёд №50.