Алгоритм WSPT: Приоритет задачам с высоким весом и малым временем обработки

18.04.25

Разработка - Математика и алгоритмы

Алгоритм WSPT (Weighted Shortest Processing Time) — это простой и эффективный метод диспетчеризации задач, направленный на минимизацию средневзвешенного времени завершения. Он предписывает сортировать задачи по убыванию отношения их веса (важности, стоимости) к времени обработки. Таким образом, в первую очередь выполняются задачи с наибольшим “весом” на единицу времени обработки. WSPT особенно полезен в ситуациях, когда важна своевременность выполнения наиболее приоритетных задач, и он легко реализуется на практике, становясь хорошей отправной точкой для более сложных алгоритмов. Статья для начинающих программистов.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Алгоритм WSPT
.epf 7,76Kb
0
0 Скачать (1 SM) Купить за 1 850 руб.

        В сердце производственной эффективности и оптимизации временных ресурсов лежит алгоритм, известный как WSPT, или Weighted Shortest Processing Time (взвешенное кратчайшее время обработки). Это правило, которое является краеугольным камнем теории расписаний, области, посвященной определению оптимального порядка выполнения задач, преследующих различные цели, такие как минимизация времени выполнения, максимизация пропускной способности или соблюдение сроков. WSPT, в частности, фокусируется на сценарии, где каждой задаче присваивается вес, представляющий ее относительную важность или приоритет, и где цель состоит в том, чтобы минимизировать среднее взвешенное время завершения всех задач. Это особенно актуально в ситуациях, когда одни задачи более критичны, чем другие, и их своевременное завершение имеет большее значение для организации. Представьте себе производственный цех, где изготавливаются детали для различных клиентов. Некоторые клиенты являются ключевыми партнерами, и их заказы имеют более высокий приоритет, чем заказы других, менее важных клиентов. WSPT позволяет цеху составить график производства таким образом, чтобы в первую очередь выполнялись заказы наиболее важных клиентов, тем самым минимизируя общее влияние задержек на наиболее важные отношения. Алгоритм WSPT, будучи элегантным и интуитивно понятным, имеет богатую историю и множество применений в самых разных областях, от производства и логистики до информационных технологий и управления проектами. Его эффективность, простота реализации и адаптивность сделали его ценным инструментом для лиц, принимающих решения, стремящихся оптимизировать порядок выполнения задач и повысить общую производительность. В последующих разделах мы углубимся в тонкости WSPT, исследуя его исторические корни, математические основы, практическое применение, сравнение с альтернативными методами и присущие ему сильные и слабые стороны.

        История возникновения алгоритма WSPT берет свое начало в ранних работах по теории расписаний, которые зародились в середине 20-го века. Хотя точную дату изобретения WSPT назвать сложно, концепция приоритезации задач на основе их важности и времени обработки постепенно формировалась по мере развития исследований в области управления производством и операциями. Первые работы по теории расписаний были сосредоточены на простых правилах диспетчеризации, таких как FCFS (First-Come, First-Served — первым прибыл, первым обслужен) и SPT (Shortest Processing Time — кратчайшее время обработки). FCFS, как следует из названия, назначает приоритет задачам в порядке их поступления, что является простым и справедливым подходом, но часто приводит к неоптимальным результатам с точки зрения времени выполнения. SPT, с другой стороны, отдает приоритет задачам с самым коротким временем обработки, что, как было доказано, минимизирует среднее время выполнения для всех задач. Однако SPT не учитывает относительную важность задач, что может привести к задержкам в выполнении критически важных задач, даже если их время обработки немного больше, чем у менее важных задач. Именно потребность в учете важности задач привела к разработке алгоритма WSPT. Формально, WSPT можно выразить с помощью следующей формулы: вычислить отношение веса (wi) каждой задачи к ее времени обработки (pi) и упорядочить задачи в порядке убывания этих отношений. Другими словами, задача с более высоким отношением веса ко времени обработки будет иметь более высокий приоритет. Математически это можно представить следующим образом: Приоритет задачи i = wi / pi где: wi = вес или важность задачи i pi = время обработки задачи i Затем задачи сортируются в порядке убывания приоритета. Ранние применения WSPT были в основном в производственной среде, где требовалось планировать порядок обработки различных деталей или продуктов. Со временем, по мере развития вычислительной техники и теории расписаний, WSPT нашел применение в самых разных областях, включая управление проектами, информационные технологии и логистику. Сегодня WSPT остается ценным инструментом для лиц, принимающих решения, стремящихся оптимизировать порядок выполнения задач и повысить общую производительность в сложных и динамичных условиях.

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

        Сравнение алгоритма WSPT с другими методами планирования необходимо для понимания его сильных сторон, ограничений и относительной пригодности для различных сценариев. Как упоминалось ранее, одним из самых простых и распространенных методов планирования является FCFS (First-Come, First-Served). FCFS прост в реализации и обеспечивает справедливость, поскольку задачи обрабатываются в порядке их поступления. Однако FCFS не учитывает время обработки или важность задач, что часто приводит к неоптимальным результатам с точки зрения времени выполнения и удовлетворенности клиентов. Другим распространенным методом планирования является SPT (Shortest Processing Time). SPT отдает приоритет задачам с самым коротким временем обработки, что, как было доказано, минимизирует среднее время выполнения для всех задач. Однако SPT не учитывает важность задач, что может привести к задержкам в выполнении критически важных задач, даже если их время обработки немного больше, чем у менее важных задач. Алгоритм WSPT, как упоминалось ранее, является расширением SPT, которое учитывает важность задач, назначая каждой задаче вес, представляющий ее относительный приоритет. WSPT отдает приоритет задачам с самым высоким отношением веса ко времени обработки, что позволяет лицам, принимающим решения, находить баланс между минимизацией времени выполнения и выполнением критически важных задач. По сравнению с FCFS и SPT, WSPT обеспечивает более гибкий и адаптивный подход к планированию, позволяя лицам, принимающим решения, учитывать широкий спектр факторов и находить оптимальное решение для конкретных условий. Помимо FCFS и SPT, существует множество других методов планирования, которые можно использовать в различных сценариях. Один из них - EDD (Earliest Due Date), который отдает приоритет задачам с самым ранним сроком выполнения. EDD эффективен для минимизации максимальной задержки, то есть максимального времени, на которое задача задерживается по сравнению со своим сроком. Однако EDD не учитывает время обработки или важность задач, что может привести к неоптимальным результатам с точки зрения среднего времени выполнения или удовлетворенности клиентов. Другим методом планирования является LRPT (Longest Remaining Processing Time), который отдает приоритет задачам с самым длинным оставшимся временем обработки. LRPT используется для минимизации количества задач, которые задерживаются по сравнению со своим сроком выполнения. Однако LRPT не учитывает важность задач или общее время выполнения, что может привести к неоптимальным результатам с точки зрения удовлетворенности клиентов или общей эффективности системы.

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

       Несмотря на свои преимущества, алгоритм WSPT имеет и некоторые ограничения, о которых следует знать при его применении. Во-первых, он предполагает, что время обработки и веса задач известны заранее и не меняются. Во-вторых, WSPT не учитывает наличие нескольких ресурсов или ограничения ресурсов. Он предполагает, что все ресурсы доступны для выполнения любой задачи в любой момент времени. В реальных условиях это не всегда так, поскольку ресурсы могут быть ограничены по количеству, типу или местоположению. В-третьих, WSPT не учитывает возможность прерывания задач. Он предполагает, что как только задача начинается, она должна быть завершена без перерывов. В реальных условиях это не всегда так, поскольку задачи могут быть прерваны из-за возникновения более важных задач, поломок оборудования или других непредвиденных такие как математическое программирование, теория ограничений или машинное обучение, чтобы найти оптимальное решение. Актуальность алгоритма WSPT для применения в "1С:Предприятие" зависит от конкретных потребностей и условий организации. "1С:Предприятие" — это широко распространенная платформа для, WSPT может быть ценным дополнением к существующим инструментам. WSPT может быть реализован в "1С:Предприятие" с использованием встроенного языка программирования, что позволит автоматизировать процесс планирования и принимать более обоснованные решения об управлении. Использование WSPT в "1С простота, гибкость и хорошие характеристики производительности делают его привлекательным выбором для многих задач планирования, но важно учитывать его ограничения и убедиться, что он подходит для конкретных условий организации.

     

       В мире кулинарного производства, как и в любой другой отрасли, успех во многом зависит от эффективности планирования и организации рабочих процессов. Представьте себе кухню ресторана, где одновременно поступают заказы на приготовление самых разных блюд. Необходимо не только обеспечить высокое качество каждого блюда, но и сделать это в кратчайшие сроки, чтобы удовлетворить аппетиты посетителей и избежать недовольства. Для решения этой задачи можно применить различные подходы, и одним из наиболее распространенных является алгоритм WSPT (Weighted Shortest Processing Time), который позволяет оптимизировать последовательность выполнения заказов с учетом времени их подготовки.

1. Этапы производства (кулинария):
   - ПодготовкаПродуктов
   - ТермическаяОбработка
   - ОформлениеБлюда
   - Упаковка

2. Оборудование и производительность (кулинария):
   - Этап: ПодготовкаПродуктов
     - КухонныйКомбайн1: 10 блюд/час
     - КухонныйКомбайн2: 12 блюд/час
   - Этап: ТермическаяОбработка
     - Плита1: 5 блюд/час
     - Плита2: 6 блюд/час
     - Пароконвектомат: 8 блюд/час
   - Этап: ОформлениеБлюда
     - СтолОформления1: 15 блюд/час
     - СтолОформления2: 18 блюд/час
   - Этап: Упаковка
     - УпаковочныйАппарат1: 20 блюд/час
     - УпаковочныйАппарат2: 22 блюд/час

3. Сгенерированные заказы:
   - Заказ №2: Блюдо2 (Количество: 60, Время подготовки: 30 минут)
   - Заказ №9: Блюдо9 (Количество: 60, Время подготовки: 30 минут)
   - Заказ №10: Блюдо10 (Количество: 60, Время подготовки: 30 минут)
   - Заказ №6: Блюдо6 (Количество: 60, Время подготовки: 90 минут)
   - Заказ №8: Блюдо8 (Количество: 10, Время подготовки: 30 минут)
   - Заказ №5: Блюдо5 (Количество: 10, Время подготовки: 30 минут)
   - Заказ №7: Блюдо7 (Количество: 10, Время подготовки: 30 минут)
   - Заказ №1: Блюдо1 (Количество: 10, Время подготовки: 90 минут)
   - Заказ №3: Блюдо3 (Количество: 10, Время подготовки: 90 минут)
   - Заказ №4: Блюдо4 (Количество: 10, Время подготовки: 90 минут)

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

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

Результат алгоритма нашего примера заказов (также на скриншоте с подписью "пример"):

Анализ последовательности выполнения заказов (WSPT):
---------------------------------------------------
Оптимальная последовательность выполнения заказов:
   - Заказ №2: Блюдо2 (Количество: 60, Время подготовки: 30 минут)
   - Заказ №9: Блюдо9 (Количество: 60, Время подготовки: 30 минут)
   - Заказ №10: Блюдо10 (Количество: 60, Время подготовки: 30 минут)
   - Заказ №6: Блюдо6 (Количество: 60, Время подготовки: 90 минут)
   - Заказ №8: Блюдо8 (Количество: 10, Время подготовки: 30 минут)
   - Заказ №5: Блюдо5 (Количество: 10, Время подготовки: 30 минут)
   - Заказ №7: Блюдо7 (Количество: 10, Время подготовки: 30 минут)
   - Заказ №1: Блюдо1 (Количество: 10, Время подготовки: 90 минут)
   - Заказ №3: Блюдо3 (Количество: 10, Время подготовки: 90 минут)
   - Заказ №4: Блюдо4 (Количество: 10, Время подготовки: 90 минут)
   - Cреднее время выполенения: 54 минут

       Применение WSPT к нашему примеру дает следующую последовательность: сначала выполняются Заказ №2, Заказ №9 и Заказ №10, каждый из которых требует 30 минут на подготовку 60 порций. Далее следует Заказ №6, для которого требуется 90 минут на подготовку 60 порций. Затем выполняются заказы с небольшим количеством порций: Заказ №8, Заказ №5 и Заказ №7, каждый из которых требует 30 минут на подготовку 10 порций. В завершение выполняются Заказ №1, Заказ №3 и Заказ №4, требующие 90 минут на подготовку 10 порций.

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

Готовую обработку прикладываю к статье, работает на всех 1с 8.3 на управляемых формах.

Статья для начинающих программистов, для понимания алгоритмов.

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

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.13.82

Взвешенное кратчайшее время обработки WSPT оптимизация последовательность заказы приоритет вес трудоемкость сроки производство.

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 1C:Бухгалтерия Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    6820    stopa85    12    

39

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    12597    user1959478    56    

37

Математика и алгоритмы Разное Платформа 1С v8.3 1C:Бухгалтерия Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    6568    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    14834    8    SpaceOfMyHead    20    

63

Математика и алгоритмы Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    7842    RustIG    9    

29

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

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

23.11.2022    7002    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9885    7    kalyaka    11    

45