Алгоритмы для жизни: Простые способы принимать верные решения (Гриффитс, Кристиан) - страница 94

Далее мы рассмотрим только один крошечный класс такой литературы, где в отличие от переплетного дела или прачечной необходимо планировать работу одного устройства. Существенная для нас проблема планирования действительно касается только одного устройства – нас самих.

Справляемся с дедлайнами

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

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

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

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

Мы привыкли к тому, что, например, для каждой задачи существует срок исполнения и допустимая величина просрочки. Таким образом, мы можем ввести термин «максимальное опоздание выполнения набора задач» – наибольший среди этих задач срыв установленного срока исполнения (именно это будет учтено вашим работодателем при оценке вашей деятельности). Для розничных покупателей или заказчиков услуг, например, максимальная задержка выполнения задачи соответствует самому долгому времени ожидания для клиента.

Если вам хотелось бы минимизировать время такой максимальной задержки, следует начать с выполнения задачи, срок исполнения которой наступит в первую очередь, и двигаться по направлению к задаче, которую можно выполнить максимально нескоро. Стратегия, известная как «скорая дата исполнения», на самом деле во многом интуитивна. (Например, в сфере оказания услуг, когда срок исполнения задачи для каждого клиента начинается с момента, когда тот вошел в дверь, такая стратегия предполагает обслуживание клиентов в порядке их появления.) Но некоторые выводы удивительны. Например, абсолютно не важно, сколько потребуется времени на выполнение каждой конкретной задачи: на план это никак не влияет, поэтому, по сути, вам это и не нужно знать. Все, что важно, – это знать, когда задание должно быть исполнено.