Научная статья на тему 'Алгоритмы распределения врачебных направлений в медицинской организации'

Алгоритмы распределения врачебных направлений в медицинской организации Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
94
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
MEDICAL APPOINTMENTS / THE TASK OF PREVENTIVE MEDICAL EXAMINATION / INITIAL APPROACH AND IMPROVEMENT OF THE ROUTE / ВРАЧЕБНЫЕ НАПРАВЛЕНИЯ / ЗАДАЧА ПРОФИЛАКТИЧЕСКОГО МЕДИЦИНСКОГО ОСМОТРА / НАЧАЛЬНОЕ ПРИБЛИЖЕНИЕ И УЛУЧШЕНИЕ МАРШРУТА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ованесян Артур Арутюнович, Левичев Андрей Викторович

Проведен обзор алгоритмов и программных средств, применяемых в информационных системах медицинских организаций для распределения врачебных направлений.Поставлена задача поиска оптимального маршрута посещения пациентом врачебных кабинетов с учетом расписания работы врачей. Описан алгоритм поиска оптимального маршрута, состоящий из двух этапов: получения начального приближения и его улучшения. Для поиска начального приближения рассмотрены два сценария: с учетом времени ожидания приема и учетом времени на перемещение между кабинетами.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ованесян Артур Арутюнович, Левичев Андрей Викторович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Algorithms of distribution of medical appointments in a medical organization

The article deals with the problem of distribution of medical appointments in a medical organization, a review of algorithms and software used to solve it in medical information systems.The task was to find the optimal route for the patient to visit the doctor’s offices, taking into account the work schedule of the doctors. An algorithm for finding the optimal route consisting of two stages is described: obtaining an initial approximation and improving it. Two scenarios were considered for the search for the initial approximation: taking into account the waiting time for reception and taking into account the time for movement between cabinets.

Текст научной работы на тему «Алгоритмы распределения врачебных направлений в медицинской организации»

ISSN 2079-3316ПРОГРАММНЫЕ СИСТЕМЫ: ТЕОРИЯ И ПРИЛОЖЕНИЯ т. 10, №4(43), с. 163-180

ББК З966:В181.19:5с51 ГРНТИ 76.01.85,50.03.05,50.49.37 УДК 331.483.4:007:519.688

А. А. Ованесян, А. В. Левичев

Алгоритмы распределения врачебных направлений в медицинской организации

Аннотация. Проведен обзор алгоритмов и программных средств, применяемых в информационных системах медицинских организаций для распределения врачебных направлений.

Поставлена задача поиска оптимального маршрута посещения пациентом врачебных кабинетов с учетом расписания работы врачей. Описан алгоритм поиска оптимального маршрута, состоящий из двух этапов: получения начального приближения и его улучшения. Для поиска начального приближения рассмотрены два сценария: с учетом времени ожидания приема и учетом времени на перемещение между кабинетами.

Ключевые слова и фразы: врачебные направления, задача профилактического медицинского осмотра, начальное приближение и улучшение маршрута.

Введение

Врачебные направления —это комплекс узконаправленных рекомендаций медицинских специалистов для диагностики и/или лечения пациентов. Для эффективного исполнения направлений необходимо определить оптимальный маршрут прохождения назначенных пациенту медицинских услуг, выполнив запись пациента в расписание работы специалистов организации.

Для эффективного исполнения направлений необходимо определить оптимальный маршрут прохождения назначенных пациенту медицинских услуг, учитывая расписание работы специалистов. Это одна из самых трудоемких и рутинных задач медицинской организации.

Подобные задачи наиболее близки к составлению расписаний, рассмотренные в [1,2].

© А. А. Ованесян, А. В. Левичев, 2019

© Институт программных систем им. А.К. Айламазяна РАН, 2019

© Программные системы: теория и приложения (дизайн), 2019

Г» 10.25209/2079-3316-2019-10-4-163-180^^^^^^^^^^^^^^^^^^^! Нк-НЛ1

Планированию обслуживания пациентов в медицинских организациях посвящены работы [3,4]. В них рассмотрена задача составления плана прохождения медицинских услуг для группы пациентов с учетом случайных факторов.

В работе [5] для составления расписания обслуживания применено линейное программирование, там же приведено сравнение с эвристическими алгоритмами решения этой задачи. Методы линейного программирования лучше себя показали при меньшем количестве свободных талонов, либо при разных ежедневных графиках работы врача. Эвристические алгоритмы оказались более эффективны при равномерно загруженном расписании и повторяющемся графике работы врачей.

В исследовании [6] приведены два «близоруких» алгоритма планирования обслуживания пациентов с учетом их приоритетов. Показано, что критерий минимизации простоя медицинского оборудования снижает и среднее время ожидания обслуживания для пациента.

В работе [7] критерии связаны с экономическими показателями лечебного учреждения, и учитывают предпочтения врача.

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

К ним относятся такие подсистемы как Электронное расписание процедур сетевого программного комплекса «Здравница», «Назначение услуг» (КУС) информационной системы «Кинт: Управление санаторием», диспетчеризация назначений в «Санаториум» и ряд других.

Алгоритмы распределения медицинских направлений этих систем в открытом доступе недоступны, поэтому оценить их эффективность не представляется возможным. Однако, интерес производителей показывает актуальность данной задачи.

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

1. Постановка задачи и структура алгоритма решения

Одной из типовых задач распределения врачебных направлений является профилактический медицинский осмотр, при котором требуется пройти необходимое количество процедур с целью обнаружения у пациентов определенных заболеваний или удостовериться в их отсутствии. Нужно найти оптимальный по длительности маршрут прохождения пунктов обслуживания (ПО).

Дополнительные затраты времени складываются из двух факторов, один из которых может доминировать:

(1) Продолжительность передвижения

(2) Продолжительность ожидания обслуживания Продолжительность передвижения несущественна, а основные задержки связаны с временем ожидания приема в ПО.

Введем обозначения: Р — з-ыйПО, з = !,..,N.

Т — продолжительность обслуживания в з'-ом пункте.

— множество моментов времени, в которые з-ый ПО может принять очередного пациента.

Ьо — момент начала движения пациента.

— продолжительность перемещения пациента из г-го в з-ый пункт. Если посещение з-го пункта невозможно (нельзя пройти з'-й пункт после г-го, не проходя некоторого другого), то эта продолжительность сколь угодно велика; Зц = то; ¿¿^ = 5^.

V — индекс маршрута, т.е. последовательности прохождения ПО.

— продолжительность достижения пациентом з-го пункта при выборе v-го маршрута из заданного начального пункта.

Критерием оптимальности задачи является общая продолжительность обслуживания :

(1) Т * =шт ,

V

Она состоит из двух слагаемых:

1. Продолжительность перемещения пациента по всем заданным

пунктам обслуживания при выбранном v-ом маршруте вместе

с продолжительностью обслуживания в каждом пункте:

п

(2) Т^ = £ 5% + То,

где To = j Tj — продолжительность обслуживания во всех пунктах;

Та же величина от первого до j-о пункта:

(3) Tjv = ± (SVj + Ti).

=1

2. Суммарная продолжительность ожидания приема. Продолжительность ожидания приема в j-м пункте v-го маршрута

удовлетворяет рекуррентному соотношению:

j-1

(4) TojV = min[tj - to - Tj-i,v - VToiv], Toov = ÖVv.

i=0

Минимум ищется на множестве тех моментов tj, для которых значение Tojv неотрицательно, это множество зависит от выбранного маршрута.

Опишем структуру алгоритма, использованного для решения поставленной задачи с учетом времени ожидания обслуживания, набора доступного времени приема (слотов в расписании врача) и пр.:

1-й шаг. Найти начальный маршрут v0 и оценку снизу T0 для достижимого значения T*.

2-й шаг. Для найденного маршрута v0 рассчитать фактическую продолжительность обслуживания с учетом времени ожидания приема на каждом из ПО. Полученная суммарная продолжительность To заведомо больше, чем T*, Т.е. является оценкой сверху для величины критерия на искомом решении. Если разница оценок не превышает 10% от нижней оценки, то расчет заканчивают и найденный маршрут считают оптимальным. Если разница окажется больше, переходят к 3-му шагу.

3-й шаг. Улучшение найденного на первом шаге маршрута с использованием идеологии алгоритма блуждающей трубки Н.Н. Моисеева [8]. При этом маршрут варьируется так, чтобы легко можно было сравнить величину критерия на двух сравниваемых маршрутах.

2. Поиск начального маршрута

2.1. Продолжительность передвижения

Если отбросить условия расписания, то есть считать, что любой ПО всегда доступен и потери времени связаны только с перемещением между пунктами и временем обслуживания в каждом из них, то

поставленная задача окажется классической задачей коммивояжера (КЗ). При этом число отличных друг от друга маршрутов равно N!.

Алгоритмы решения КЗ известны, поэтому можно использовать имеющиеся решения [9,10]:

(1) Методы линейного программирования.

(2) Алгоритм имитации отжига.

(3) Кривые, заполняющие пространства.

(4) Модели для локального поиска.

(5) Алгоритмы ветвей-границ.

Для решения КЗ был выбран метод ветвей и границ. Общее количество рассматриваемых услуг (порядка десяти) позволяют использовать этот алгоритм [11]. Его основные этапы:

(1) Построить матрицу исходных данных. В строках указывается начальный ПО, в столбцах — следующий. Продолжительность перехода соответствует цифре на пересечении строки и столбца. Чтобы исключить переход в самого себя в соответствующей клетке проставлена бесконечность. Пример представлен в таблице 1а, где продолжительность указана в минутах.

(2) Найти в каждой строке минимум по столбцам. В таблице 1Ь он обозначен в последнем столбце как

Таблица 1

ПО Р1 Р2 Рз Р4 Р5 Рб ПО Р1 Р2 Рз Р4 Р5 Рб ¿г

Р1 то 5 11 9 6 8 Р1 то 5 11 9 6 8 5

Р2 4 то 8 7 3 5 Р2 4 то 8 7 3 5 3

Рз 10 7 то 8 4 5 Рз 10 7 то 8 4 5 4

Р4 8 6 9 то 4 2 Р4 8 6 9 то 4 2 2

Р5 5 2 5 5 то 6 Р5 5 2 5 5 то 6 2

Рб 7 4 6 3 6 то Рб 7 4 6 3 6 то 3

(а) Продолжительность передвиже- (Ь) Поиск минимума по столбцу для ния между ПО каждой строки

(3) Из всех значений в каждой строке матрицы вычесть найденный минимум ] (таблица 2а). После этого матрица будет содержать в каждой строке не менее одного нуля. А в остальных клетках строки приросты продолжительности по сравнению с минимальной.

(4) Найти минимум в столбцах получившейся матрицы по строкам. В таблице 2Ь он обозначен в последней строке как .

Таблица 2

ПО Р1 Р2 Рз Р4 Р5 Рб <к

Р1 ТО 0 6 4 1 З 5

Р2 1 ТО 5 4 0 2 З

Рз 6 З ТО 4 0 1 4

Р4 6 4 7 ТО 2 0 2

Р5 3 0 З З ТО 4 2

Рб 4 1 З 0 З ТО З

(а) Приросты продолжительности по сравнению с минимальной для каждой строки

ПО Р1 Р2 Рз Р4 Р5 Рб ¿г

Р1 ТО 0 6 4 1 3 5

Р2 1 ТО 5 4 0 2 3

Р3 6 3 ТО 4 0 1 4

Р4 6 4 7 ТО 2 0 2

Р5 3 0 3 3 ТО 4 2

Рб 4 1 3 0 3 ТО 3

¿з 1 0 3 0 0 0

(Ь) Определение минимального прироста по строкам для каждого столбца

(5) Из всех значений в каждом столбце получившейся матрицы вычесть минимум для этого столбца . После этого шага матрица будет содержать как минимум одно нулевое значение и в каждом столбце и в каждой строке (таблица За).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Таблица 3

ПО Р1 Р2 Рз Р4 Рб Рб ¿г ПО Р1 Р2 Рз Р4 Рб Рб ¿г

Р1 то 0 3 4 1 3 5 Р1 то 0(1) 3 4 1 35

Р2 0 то 2 4 0 2 3 Р2 0(1) то2 4 0(0) 23

Рз 5 3 то 4 0 14 Рз 5 3то 4 0(1) 14

Р4 5 4 4 то 2 0 2 Р4 5 44 то 2 0(3) 2

Рб 2 0 0 3 то 4 2 Рб 2 0(0) 0(0) 3 то 42

Рб 3 1 0 0 3 то 3 Рб 3 1 0(0) 0(3) 3 то3

¿3 1 0 3 0 0 0 ¿з 1 03 0 0 0

(а) Матрица приростов по столб- (Ь) Оценка дополнительных потерь при цам отказе от перехода для "нулевых" элементов

матрицы

(6) Для каждого нулевого значения в получившейся преобразованной матрице приращений найти «оценку». Ею будет сумма минимального элемента по строке и минимального элемента по столбцу в матрице приращений для того столбца и той строки, на пересечении которых оказался данный нуль. Эта сумма представляет собой оценку снизу для тех дополнительных потерь, которые получатся в случае отказа от перехода, соответствующего клетке матрицы, в которой находится рассматриваемый нуль. Полученная оценка записана рядом с нулем в скобках (таблица ЗЬ).

(7) Выбрать для перехода нулевое значение 5^- с наибольшей оценкой (таблица 4а) дополнительных потерь. Для выбранного перехода между двумя ПО Р^ ^ Р^ (таблица 4Ь) вычеркнуть ту строку и тот столбец, в пересечении которых переход определен. В клетку, соответствующую обратному пути, поставить бесконечность, так как возврат в пройденный ПО не предусмотрен.

Таблица 4

ПО Р1 Р2 Рз Р4 Р5 Рб ¿1

Р1 ТО 0 (1) 3 4 1 3 5

Р2 0(1) х 2 4 0(0) 2 3

Рз 5 3 ( 4 0(1) 1 4

Р4 5 4 4 х 2 X 2

Р5 2 0(0) 0(0) 3 X 4 2

Рб 3 1 0(0) 0(3) 3 X 3

¿3 1 0 3 0 0 0

(а) Выбор перехода, соответствующего максимуму оценки нуля

ПО Р1 Р2 Рз Р4 Ръ

Р1 то 5 11 9 6

Р2 4 х 8 7 3

Рз 10 7 х 8 4

Ръ 5 2 5 5 то

Рб 7 4 6 х 6

(Ь) Вид матрицы продолжительности перемещения после первой итерации

(8) Если не все переходы найдены, то вернуться ко 2-му пункту и вновь искать минимумы по строкам и столбцам и т.д. в новой матрице меньшей размерности(были убраны строка и столбец, соответствующие найденному переходу).

(9) Отметить найденные переходы в исходной таблице и посчитать сумму цифр в выделенных клетках матрицы — минимальную продолжительность маршрута.

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

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

Список услуг для типовой задачи формируется на основе профессиональных вредностей пациента по приказу Министерства здравоохранения Российской Федерации от 12 апреля 2011 г. № 302н. Для медицинской комиссии водителей на категорию А, В необходимо пройти терапевта (или врача общей практики), офтальмолога, психиатра, нарколога, невролога, оториноларинголога, электроэнцефалографию

(ЭЭГ, по направлению невролога), сдать анализы мочи на наличие психоатктивных веществ и крови на количественное и качественное определение карбогидрад-дефицитного трансферрина в ее сыворотке.

Всего 8 пунктов обслуживания (ПО). Данные направления по медицинской комиссии могут быть выданы врачом-терапевтом или в доврачебном кабинете. Для получения окончательного заключения, которое по результатам осмотра составляют в том же кабинете, маршрут может быть замкнутым, причем начальный пункт его определен — кабинет врача-терапевта.

В примере будем рассматривать только 6 ПО без анализов и ЭЭГ. Данные по ним представлены в таблице 5, нормы продолжительности обслуживания т^ в соответствии с приказом Министерства здравоохранения Российской Федерации от 2 июня 2015 г. № 290н. Множество моментов времени , когда ^'-й ПО может принять, задано. Продолжительность перемещения по ПО представлена . Множество моментов времени , когда ]-й ПО может принять, задано. Продолжительность перемещения по пунктам обслуживания в таблице 1а.

Таблица 5. Пункты обслуживания

№ Врач Р,

1 терапевт 15

2 офтальмолог 14

3 психиатр 10

4 нарколог 8

5 невролог 22

6 оториноларинголог 16

8:00, 8:20, 8:40, 9:00, 9:20, 9:40, 10:00, 10:20, 10:40

8:50, 9:10, 9:30, 9:50, 10:10, 10:30, 10:50

9:40, 9:55, 10:10, 10:25, 10:40, 10:55, 11:10, 11:25, 11:40, 11:55

10:40, 10:50, 11:00, 11:10, 11:20, 11:30, 11:40

10:00, 10:30, 11:00, 11:30, 12:00, 12:30, 13:00, 13:30

Ь

Тп , мин

Будем рассматривать незамкнутый путь. Используя рассмотренный выше алгоритм, получаем 6 маршрутов:

Р1 ^ Р2 ^ Р5 ^ Рз ^ Ре ^ Ра, Р2 ^ Р1 ^ Р5 ^ Рз ^ Ре ^ Ра, Рз ^ Ре ^ Ра ^ Р5 ^ Р2 ^ Р1, Ра ^ Ре ^ Рз ^ Р5 ^ Р2 ^ Р1, Р5 ^ Рз ^ Ре ^ Ра ^ Р2 ^ Р1, Ре ^ Ра ^ Р2 ^ Р1 ^ Р5 ^ Рз,

Ь = 21 минута; Ь = 23 минуты; Ь = 18 минут; Ь = 18 минут; Ь = 23 минуты; Ь = 24 минуты.

2.2. Вывод

Оптимальные маршруты соответствуют суммарному времени передвижения 18 минут.

3. Продолжительность ожидания обслуживания

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

Начальный момент обозначим через to. Общее число ПО равно N и для каждого известна продолжительность обслуживания Tj. Индексом i отметим пункт, который будет выбран первым. Этот выбор осуществляется по условию минимума суммы двух слагаемых: продолжительности ожидания приема в выбранном пункте и средней продолжительности ожидания приема, после окончания обслуживания в выбранном пункте. Этот суммарный показатель может быть вычислен для каждого из N ПО по формуле

1 N

(6) TO = (Soj + N-T E j),

v=1,v=j

где

S0j = min (tj - to), Sjv = .min (tv - to - Tj - Soj).

tj ^t 0 tv ^to + lj +ö 0j

Таким образом, Tj представляет собой сумму продолжительности ожидания приема в j-ом пункте и средней продолжительности ожидания приема после того, как пациент пройдет обслуживание в этом пункте. Второе слагаемое в правой части равенства (6) представляет собой среднее значение первого слагаемого в случае, если очередным ПО будет выбран j-ый.

После вычисления Tj пункта находят i = argminj Tj.

На последующих шагах расчет повторяют с той разницей, что i-й ПО исключают, так что число пунктов окажется на единицу меньшим, а начальный момент to заменяют на tj = to + Tj + l, где Tj — время обслуживания в i-м ПО, l — время перехода между пунктами.

3.1. Пример поиска начального маршрута для 2-го условия

Пусть начальный момент времени to = 8:00 соответствует началу работы лечебного учреждения, а l = 1 минута.

3.1.1. Первый шаг:

Врач-терапевт.

¿01 = 8 ¿12 = 8 ¿18 = 9

¿14 ¿15

00 - 8 50 - 8 40 - 8 10 : 40 - 8 10 : 00- 8

¿

10 : 50 8

00 = 0 (мин). 00 - 14 - 0 = 36 (мин). 00 - 10 - 0 = 90 (мин). 00 - 8 - 0 = 152 (мин). 00 - 22 - 0 = 98 (мин). 00 - 16 - 0 = 154 (мин).

То = 0 + 5(36 + 90 + 152 + 98 + 154) = 106 (мин). Врач-офтальмолог.

¿02 = 8 : 50 - 8 ¿21 = 9 : 20 - 8 ¿2з = 9 : 40 - 8 ¿2А = 10 : 40 - 8 ¿25 = 10 : 00 - 8 ¿2е = 10 : 50 - 8

00 = 50 (мин). 00 - 15 - 50 = 15 (мин). 00 - 10 - 50 = 40 (мин). 00 - 8 - 50 = 102 (мин). 00 - 22 - 50 = 48 (мин). 00 - 16 - 50 = 104 (мин)

Т02 = 50 + 5(15 + 40 + 102 + 48+ 104) = 111,8 (мин).

Врач-психиатр. ¿оз = 9 : 40 - 8 : 00 = 100 (мин). ¿з1 = 10 : 00 - 8 : 00 - 15 - 100 = 5 (мин). ¿з2 = 10 : 10 - 8 : 00 - 14 - 100 = 16 (мин). ¿зА = 10 : 40 - 8 : 00 - 8 - 100 = 52 (мин). ¿з5 = 10 : 30 - 8 : 00 - 22 - 100 = 28 (мин). ¿зе = 10 : 50 - 8 : 00 - 16 - 100 = 54 (мин). Т0з = 100 + 1 (5 + 16 + 52 + 28 + 54) = 131 (мин).

Врач-нарколог. ¿оа = 10 : 40 - 8 : 00 = 160 (мин).

¿41 = то , так как нет ни одного Ь1, для которого Ь1 > Ь0 + Т1 + ¿0А, ТА = то.

Врач-невролог. ¿05 = 10 : 00 - 8 ¿51 = 10 : 20 - 8 ¿52 = 10 : 30 - 8

¿5з = 10 : 10 - 8

¿54 = 10 : 40 - 8

00 = 120 (мин). 00 - 15 - 120 = 5 (мин). 00 - 14 - 120 = 16 (мин). 00 - 10 - 120 = 0 (мин). 00 - 8 - 120 = 32 (мин).

556 = 10 : 50 - 8 : 00 - 16 - 120 = 34 (мин). Т05 = 120 + 1 (5+ 16 + 0 + 32 + 34) = 137,4 (мин).

Врач-оториноларинголог. 506 = 10 : 50 - 8 : 00 = 170 (мин).

5б1 = те , так как нет ни одного значения ¿1, для которого было бы выполнено неравенство ¿1 > ¿о + Т + 5об, поэтому считаем То6 = те.

По условию г = ащшш^Т0 = То1 найден первый пункт обслуживания — врач-терапевт с моментом времени 8:00.

3.1.2. Второй шаг и далее:

На следующем шаге начальный момент ¿о заменяем на ¿1 = 8 : 00 + 15 + 1 = 8 : 16. Количество пунктов обслуживания равно 5.

Далее аналогично найдены следующие пункты обслуживания (ПО):

(1) ПО врач-офтальмолог с моментом времени 8:50.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

(2) ПО врач-психиатр —9:40.

(3) ПО врач-невролог —10:00.

(4) ПО врач-нарколог —10:40.

(5) ПО врач-оториноларинголог —10:50. В итоге получен начальный маршрут:

(7) V0 : Р1 ^ Р2 ^ Рз ^ Р5 ^ Р4 ^ Рб.

3.2. Выводы

Описаны два алгоритма поиска начального маршрута по двум условиям: решение классической задачи коммивояжера, алгоритм с вероятной продолжительностью ожидания. Найдены 3 начальных маршрута: 2 по первому условию и 1 по второму.

По первому условию (учитывается только время перемещения, но не рассматривается время ожидания приема) найдены начальные маршруты:

Рз ^ Рб ^ Р4 ^ Р5 ^ Р2 ^ Р1, Р4 ^ Рб ^ Рз ^ Р5 ^ Р2 ^ Р1.

Продолжительность передвижения между пунктами обслуживания (Ь = 18 минут) вместе с продолжительностью обслуживания в каждом пункте составляют Т^ = 18 + 85 = 103 минуты.

По второму условию (учитывается время ожидания приема по заданному расписанию работы врачей) получен начальный маршрут

с общей длительностью обслуживания Ти = 186 минут (в скобках указаны приемы в пунктах обслуживания):

Р1(8:00) ^ Р2(8:50) ^ Рз(9:40) ^ Р5(10:00) ^ Ра(10:40) ^ Ре(10:50).

4. Попытка улучшения маршрута

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

В нашем случае начальная траектория соответствует минимуму слагаемого Т^ ^ и любая ее вариация увеличивает это слагаемое. Переход на новую траекторию целесообразен, если уменьшение суммарной продолжительности ожидания Т0N^ больше, чем рост продолжительности перемещения (суммарная продолжительность обслуживания постоянна).

1-й шаг. Находят время ожидания вдоль начального маршрута для каждого пункта и выбирают пункт обслуживания, для которого время ожидания максимально. Если время ожидания сколь угодно велико, то выбирают другой начальный маршрут с большим временем передвижения.

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

3-й шаг. В новом маршруте вновь находят пункт с максимальным временем ожидания и переходят к шагу 2. Так до тех пор, пока вариации маршрута перестанут значимо уменьшать время обслуживания или пока общая продолжительность будет отличаться от заранее вычисленной нижней оценки менее, чем на заданную величину (в нашем примере 10%).

4.1. Продолжительность передвижения. Пример улучшения маршрута

У маршрутов с минимальной длиной Ь =18 минут время ожидания Тои сколь угодно велико, то есть маршруты не накладываются

в расписание пунктов обслуживания. За начальный был взят с Ь = 21 минута.

V0 : Р1 ^ Р2 ^ Р5 ^ Рз ^ Рб ^ Р4.

4.1.1. Оценка критерия оптимальности снизу

Оценка длины маршрут снизу равна продолжительности перемещения по начальному маршруту с учетом обслуживания в каждом пункте Т^о = 21 + 15 + 14 + 10 + 8 + 22 + 16 = 106 (мин).

4.1.2. Оценка критерия оптимальности сверху

(1) Т0о^ = 0 минут.

(2) Т11У = 0. То1„ = 8: 00 - 8: 00 - 0 - 0 = 0 (мин). Выбираем такой момент приема ¿1, для которого шш41 [¿1 - ¿о].

(3) Т21У = 15(т) + 5(£) = 20. То2„ = 8 : 50 - 8 : 00 - 15 - 5 = 30 (мин). Выбираем такой момент приема ¿2, для которого шт42 [¿2 - ¿о - Т1„ - (Т0о^ + Т01„)].

(4) Т3„ = 20 + 14(т) + 3(£) = 37. То3^ = 10 : 00 - 8 : 00 - 37 - 30 = 53 (мин).

(5) Т4^ = 37 + 22(т) + 5(£) = 64. То4^ = 10 : 40- 8 : 00 -64- (53 + 30) = 13 (мин).

(6) Т51У = 64 + 10(т) + 5(£) = 79. То5^ = 11 : 15 - 8 : 00 - 79 - (13 + 53 + 30) = 20 (мин).

(7) Т6^ = 79 + 16(т) + 3(£) = 98. То6^ = 11 : 40 - 8 : 00 - 98 - (20 + 13 + 53 + 30) = 6 (мин).

В результате продолжительность обслуживания равна Т0^о = 30 + 53 + 13 + 20+6 = 122 (мин). Оценка сверху составляет Т^о + Т0^о = 228 (мин). Разница оценок превышает 10%, переходим к алгоритму улучшения.

4.1.3. Алгоритм улучшения

Самое большая продолжительность ожидания Т0з^ = 53 минуты. Поменяем местами данный пункт с соседними:

V1 : Р1 ^ Р5 ^ Р2 ^ Рз ^ Р6 ^ Р4; V2 : Р1 ^ Р2 ^ Рз ^ Р5 ^ Р6 ^ Р4.

У первого маршрута + Т0^1 = 228 минут, у второго Т^2 + Т0^2 = 198 минут. Лучшим будет маршрут V2. Находим в этом маршруте пункт с наибольшей продолжительностью ожидания, и т.д.

В итоге найдено 10 маршрутов с общей продолжительностью ожидания 228 минут, 198 минут и 186 минут. Три из них представлены

ниже:

V0 : Р1(8:00) ^ Р2(8:50) ^ Р5 (10:00)

^ Рз(10:40) ^ Рб(11:15) ^ Ра(11:40),

Т^о + Та„о = 228 минут;

V2 : Р1(8:00) ^ Р2(8:50) ^ Рз(9:40)

^ Р5(10:00) ^ Рб(10:50) ^ Ра(11:10),

Т^2 + Т01,2 = 198 минут;

V8 : Р1(8:00) ^ Р2(8:50) ^ Рз(9:40)

^ Р5(10:00) ^ Ра(10:40) ^ Ре(10:50),

Т^в + Т0„в = 186 минут.

Оптимальным является маршрут V8 с длительностью обслуживания Т =186 минут.

4.2. Продолжительность ожидания обслуживания в попытке улучшения маршрута

4.2.1. Оценка критерия оптимальности снизу

Оценка длины маршрута снизу равна продолжительности перемещения по начальному маршруту с учетом обслуживания в каждом пункте ТЛио = 6 + 15 + 14 + 10 + 8 + 22 + 16 = 91 (мин).

4.2.2. Оценка критерия оптимальности сверху

. Оценка длины маршрута сверху составляет разницу между окончанием последнего талона и началом первого, равна 186 минутам. Общая продолжительность ожидания меньше оценки сверху на фиксированное время передвижения 6 минут: Т01/о = 186 — 6 = 180 (мин). Продолжительность ожидания для каждого пункта начального маршрута определяется по свободным слотам времени в расписании приемов врачей.

4.2.3. Итог попытки улучшения

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

5. Выводы

В первом условии с учетом продолжительности передвижения и во втором с минимизацией времени ожидания найден одинаковый оптимальный маршрут с общей длительностью обслуживания 186 минут:

Р1(8:00) ^ Р2(8:50) ^ Рз(9:40) ^ Р5(10:00) ^ Ра(10:40) ^ Ре(10:50).

Заключение

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

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

Список литературы

[1] С. С. Войтенков, Е. С. Денисов. «Применение теории расписаний в грузовых автомобильных перевозках», Развитие теории и практики автомобильных перевозок, транспортной логистики, Сборник научных трудов кафедры «Организация перевозок и управление на транспорте» (с международным участием), СибАДИ, Омск, 2017, с. 325-334.

[2] Д. И. Коган, И. Х. Сигал. «Учет временных характеристик для одного класса задач построения расписаний работы перемещающегося процессора», Автоматика и телемеханика, 2015, №12, с. 121-134. |§1 d

t

[3] Ch. Zacharias, M. Armony. "Joint panel sizing and appointment scheduling in outpatient care", Management Science, 63:11 (2016), pp. iv-v, 3531-3997. d t

[4] N. Liu. "Optimal choice for appointment scheduling window under patient no-show behavior", Production and Operations Management, 25:1 (2016), pp. 128-142. I t

[5] Y. Gocgun, M. L. Puterman. "Dynamic scheduling with due dates and time windows: an application to chemotherapy patient appointment booking", Health Care Management Science, 27:1 (2014), pp. 60-76. t

[6] C. Yan, J. Tang, B. Jiang, R. Y. K. Fung. "Sequential appointment scheduling considering patient choice and service fairness", International Journal of Production Research, 53:24 (2015). t

[7] Joren Marynissen, Erik Demeulemeester. "Literature review on multi-appointment scheduling problems in hospitals", European Journal of Operational Research, 272:2 (2019), pp. 407-419. t

[8] Н. Н. Моисеев. Элементы теории оптимальных систем, Наука, М., 1975, 528 с. t

[9] И. В. Лысенко, В. О. Бутенко. «Анализ возможностей решения задач дискретной оптимизации средствами компьютерной математики», Системи обробки тформацп, 2013, №5 (112), с. 96-101.

[10] В. О. Борознов. «Исследование решения задачи коммивояжера», Вестн. Астрахан. гос. техн. ун-та. Сер. управление, вычисл. техн. информ., 2009, №2, с. 147-151.

[11] А. А. Лазарев, Е. Р. Гафаров. Теория расписаний. Задачи и алгоритмы, МГУ, М., 2011, 222 с. |

Поступила в редакцию 28.05.2019 Переработана 11.11.2019

Опубликована 06.12.2019

Рекомендовал к публикации к.т.н. Я. И. Гулиев

Пример ссылки на эту публикацию:

А. А. Ованесян, А. В. Левичев. «Алгоритмы распределения врачебных направлений в медицинской организации». Программные системы: теория и приложения, 2019, 10:4(43), с. 163-180. d 10.25209/2079-3316-2019-10-4-163-180 © http://psta.psiras.ru/read/psta2019_4_163-180.pdf

Об авторах:

Артур Арутюнович Ованесян

Аспирант Исследовательского центра медицинской информатики Института программных систем им. А.К Айламазяна РАН.

ЧИ 0000-0003-2252-6356 e-mail: ovanesyan@interin.ru

Андрей Викторович Левичев

Аспирант Исследовательского центра медицинской информатики Института программных систем им. А.К Айламазяна РАН.

[Da 0000-0003-4060-6309 e-mail: levichev@interin.ru

CSCSTI 76.01.85,50.03.05,50.49.37 UDC 331.483.4:007:519.688

Artur A. Ovanesyan, Andrey V. Levichev. Algorithms of distribution of medical appointments in a medical organization.

Abstract. The article deals with the problem of distribution of medical appointments in a medical organization, a review of algorithms and software used to solve it in medical information systems.

The task was to find the optimal route for the patient to visit the doctor's offices, taking into account the work schedule of the doctors. An algorithm for finding the optimal route consisting of two stages is described: obtaining an initial approximation and improving it. Two scenarios were considered for the search for the initial approximation: taking into account the waiting time for reception and taking into account the time for movement between cabinets.

Key words and phrases: medical appointments, the task of preventive medical examination, initial approach and improvement of the route.

2010 Mathematics Subject Classification: 60K30; 60K25, 92C50

References

[1] S. S. Voytenkov, Ye. S. Denisov. "Application of the schedule theory in freight car transportation", Razvitiye teorii i praktiki avtomobil'nykh perevozok, transportnoy logistiki, Sbornik nauchnykh trudov kafedry «Organizatsiya perevozok i upravleniye na transporte" (s mezhdunarodnym uchastiyem), SibADI, Omsk, 2017, pp. 325-334. Î

[2] D. I. Kogan, I. Kh. Sigal. "Accounting for the time characteristics of a class of scheduling problems for moving processor", Avtomatika i telemekhanika, 2015, no.12, pp. 121-134. I gif

[3] Ch. Zacharias, M. Armony. "Joint panel sizing and appointment scheduling in outpatient care", Management Science, 63:11 (2016), pp. iv—v, 3531—3997.

[4] N. Liu. "Optimal choice for appointment scheduling window under patient no-show behavior", Production and Operations Management, 25:1 (2016), pp. 128-142.

[5] Y. Gocgun, M. L. Puterman. "Dynamic scheduling with due dates and time windows: an application to chemotherapy patient appointment booking", Health Care Management Science, 27:1 (2014), pp. 60-76.Î

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

[6] C. Yan, J. Tang, B. Jiang, R.Y. K. Fung. "Sequential appointment scheduling considering patient choice and service fairness", International Journal of Production Research, 53:24 (2015).Î

© A. A. Ovanesyan, A. V. Levichev, 2019

© Ailamazyan Program Systems Institute of RAS, 2019

© Program Systems: Theory and Applications (design), 2019

DO 10.25209/2079-3316-2019-10-4-163-180^^^^^^^^^^^^^^^^^^^! lY&l

180

ARTUR A. OVANESYAN, ANDREY V. LEYIOHEY

[7] Joren Marynissen, Erik Demeulemeester. "Literature review on multi-appointment scheduling problems in hospitals", European Journal of Operational Research, 272:2 (2019), pp. 407-419.f

[8] N.N. Moiseyev. Elements of the theory of optimal systems, Nauka, M., 1975, 528 pp.f

[9] I. V. Lysenko, V. O. Butenko. "Analysis of the possibilities of the solving of the discrete optimization problems by means of systems of computer mathematics", Information Processing Systems, 2013, no.5 (112), pp. 96—101. .url:

[10] V. O. Boroznov. "Research of the task solution of the traveling salesman", Vestn. Astrakhan. gos. tekhn. un-ta. Ser. upravleniye, vychisl. tekhn. inform., 2009, no.2, pp. 147-151. iUrl

[11] A. A. Lazarev, Ye. R. Gafarov. Schedule Theory. Problems and Algorithms, MGU, M., 2011, 222 pp.f

Sample citation of this publication:

Artur A. Ovanesyan, Andrey V. Levichev. "Algorithms of distribution of medical appointments in a medical organization". Program Systems: Theory and Applications, 2019, 10:4(43), pp. 163-180. (In Russian).

10.25209/2079-3316-2019-10-4-163-180 url: http://psta.psiras .ru/read/psta2019_4_163- 180.pdf

i Надоели баннеры? Вы всегда можете отключить рекламу.