На лужайке перед домом мистер Джонсон
соорудил небольшую плиту, иа которой за один час можно поджарить 2
ромштекса. Его жена и дочь Бетси очень проголодались и хотят поесть как
можно скорей. Как быстрее всего поджарить 3 ромштекса? Мистер Джонсон. Чтобы поджарить с
двух сторон 1 ромштекс, требуется 20 мин (по 10 мин на каждую сторону).
Значит, за 20 мин можно приготовить 2 ромштекса. Еще 20 мин мне
понадобится, чтобы поджарить третий ромштекс, поэтому всего на
приготовление 3 ромштексов придется затратить 40 мин. Бетси. Папочка, ромштексы можно поджарить гораздо быстрее! Я только что придумала, как можно сэкономить 10 мин.
Какая удачная мысль позволила Бетси сократить приготовление обеда на 10 мин? Чтобы объяснить предложенное Бетси решение, обозначим ромштексы A, B и C, а их стороны — цифрами 1 и 2. За первые 10 мин следует поджарить стороны А1 и В1. Отложим ромштекс B в сторону и поджарим за следующие 10 мин стороны A2 и C1. К концу 20-й минуты ромштекс A будет готов. Еще через 10 мин поджарятся стороны B2 и C2. Таким образом, на приготовление всех 3 ромштексов уйдет всего 30 мин, что и утверждала Бетси.
Общая стратегия
Рассмотренная нами простая комбинаторная
задача относится к одному из разделов современной математики, известному
под названием «исследование операций». На ее примере хорошо видно, что
если серию операций необходимо произвести в кратчайший срок, то
оптимальная последовательность операций может оказаться не вполне
очевидной. Последовательность, которая на первый взгляд кажется
оптимальной, в действительности может допускать существенное
усовершенствование. В нашей проблеме удачная мысль сводится к тому, что
после того, как ромштекс поджарен с одной стороны, отнюдь не обязательно
тотчас же поджаривать его с другой стороны.
Как обычно, рассмотренная нами простая
задача допускает не одно обобщение. Например, условия задачи можно
варьировать, изменяя число ромштексов, которые можно одновременно
поджаривать на плите, число ромштексов, которые требуется поджарить, или
то и другое одновременно. Другой подход к обобщению задачи состоит в
увеличении числа сторон, с которых требуется «обжарить» тот или иной
предмет. Например, кому-нибудь может понадобиться окрасить со всех
сторон в красный цвет n кубов, окрашивая за один раз по одной грани k
кубов.
Исследование операций находит применение
при решении практических задач в торговле, промышленности, военном деле и
многих других областях человеческой деятельности. Чтобы по достоинству
оценить решение даже столь простой задачи, как рассмотренная нами задача
о наиболее быстром способе приготовления 2 ромштексов, рассмотрим
следующий вариант.
Из длинного списка хлопотливых домашних дел мистеру и миссис Джонс осталось выполнить три пункта:
1) произвести уборку на первом этаже (у семейства Джонсов имеется 1 пылесос, на уборку первого этажа уходит 30 мин);
2) подстричь газон перед домом (у семейства
Джонсов имеется 1 машинка для стрижки газона, на выполнение этого
задания необходимо затратить 30 мин);
3) накормить и уложить спать ребенка (на это также требуется затратить 30 мин).
Как следует распределить обязанности
супругам Джонс, чтобы завершить все работы по дому в кратчайший срок?
Если предположить, что мистер и миссис Джонс работают одновременно, то
трудно удержаться от искушения дать ответ: «На выполнение 3 пунктов
программы у супругов Джонс уйдет 60 мин». Но если одну из работ,
например уборку первого этажа, разделить на 2 равные части и выполнение
второй половины отложить (как в задаче с поджариванием ромштексов) до
завершения другой работы, то на выполнение намеченной программы у
супругов Джонс уйдет лишь ¾ времени (по сравнению с первым вариантом),
или 45 мин.
А вот более хитроумная задача на
исследование операций: требуется как можно быстрее обжарить с двух
сторон 3 ломтика хлеба и каждый из них с одной стороны намазать маслом. В
нашем распоряжении имеется тостер устаревшей модели с дверцами на
пружинках справа и слева. Тостер вмещает одновременно 2 ломтика хлеба и
поджаривает их только с одной стороны. Чтобы поджарить тосты с двух
сторон, необходимо открыть дверцы и перевернуть ломтики на другую
сторону.
Чтобы положить ломтик хлеба в тостер,
требуется затратить 3 с. Еще 3 с уходит на то, чтобы вынуть каждый
ломтик из тостера, и 3 с требуется для того, чтобы повернуть ломтик на
другую сторону, не вынимая его из тостера. Каждую из этих операций
необходимо производить двумя руками. Это означает, что ли одну из них
нельзя выполнить одновременно над двумя ломтиками хлеба. Кроме того,
пока мы кладем ломтик хлеба в тостер, вынимаем его оттуда или
переворачиваем, его нельзя намазать маслом. Ломтик хлеба поджаривается с
одной стороны за 30 с. Намазать ломтик хлеба маслом можно за 12 с.
Каждый тост требуется намазать маслом
только с одной стороны. Намазывать маслом неподжаренную сторону
запрещается. Ломтик хлеба, поджаренный и намазанный маслом с одной
стороны, можно снова положить в тостер, чтобы поджарить с другой
стороны. Сразу после включения тостер нагревается до рабочей
температуры. Сколько времени потребуется, чтобы поджарить с двух сторон 3
ломтика хлеба и каждый из них намазать маслом?
Нетрудно спланировать все операции так,
чтобы 3 ломтика поджаренного хлеба с маслом были готовы за 2 мин. Но 9 с
можно сэкономить, если вам удастся набрести на следующую счастливую
идею: ломтик хлеба можно поджарить с одной стороны не до конца, затем
вынуть из тостера и дожарить позже. При таком подходе время на
приготовление 3 ломтиков поджаренного хлеба с маслом удается сократить
до 114 с. Но даже для тех, кому удается подобрать ключ к решению,
составление оптимального графика выполненных операций остается далеко не
легкой задачей. Что же касается бесчисленных проблем на составление
самых экономичных последовательностей операций в различных областях
человеческой деятельности, то они требуют для своего решения сложных
математических методов, обращения к ЭВМ и современной теории графов. |