Квант

44

В понсках оптимального раскрой

Кандидат физико-математических наук
М. В. ВАЛК,
Г. М. ЛАНДМАН

Завод детских игрушек присутствил к массовому выпуску нового изделия, одна из деталей которого — небольшой многоугольник определяющий формы и размеров (рис. 1) из тонкойжести. На заводе имелся станок, на котором легко и быстро можно было нарезать из листа жести прямогольники любых заданных размеров. Поэтому технически было принято решение: нарезать сначала одинаковые прямогольные заготовки надлежащих размеров, а затем уже обрезать каждый такой прямогольник так, чтобы из него получить требуемую многоугольную деталь. А размеры прямогольников следует, естественно, выбрать так, чтобы отходы на обрезки были минимальными. Так возникла математическая задача, о решении которого мы расс克拉ем в данной заметке.

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

Примугольник, удовлетворяющий условияю этой задачи, мы будем называвать оптимальным. Если какой-либо прямогольник вместе в себе многоугольник M, а на контур прямогольника нет ни одной вершины многоугольника, то можно прямогольник улущить, т. е. заменить его другим прямогольником меньшей площади, также содержащим в себе многоугольник M. Для этого достаточно перевести параллельно самой себе каждую из четырех прямых, содержащих стороны прямогольника M так, чтобы они (после перемена) уже проходили через какие-то вершины многоугольника M. На рисунке 1 таким «улущенный» прямогольником (по сравнению с П) является П′.

Принято называть опорной прямой для данного многоугольника M любую прямую, которая содержит хотя бы одну точку контур многоугольника и не содержит ни одной его внутренней точки (например, на рисунке 1 прямые a и b — опорные для многоугольника M, а прямая c — не опорная). Примугольник, все четыре стороны которого лежат на опорных прямых для многоугольника M, будем называть описанным около M. Таким

45

Является прямогольник Π′\Pi' на рисунке 1. Как только мы для заданного многоугольника MM (рис. 1) выбрали опорную прямую (a)(a), мы тем самым уже однозначно задали прямогольник, описанный около MM. Описанный около MM прямогольник обладает, очевидно, тем свойством, что на каждой его стороне (быть может, в ее конце) помещается хотя бы одна вершина многоугольника (рис. 1). Из двух прямогольников, описанных около данного многоугольника MM, будем называть лучшим тот, который имеет меньше шифу площадь. Оптимальный прямогольник, о котором говорится в основной задаче, следует, очевидно, искать среди прямогольников, описанных около MM.

Технологи завода высказали две гипотезы:

Гипотеза I. Оптимальный прямогольник для многоугольника MM — это тот описанный прямогольник, у которого одна сторона содержит наиболее ширую сторону многоугольника.

Гипотеза II. Оптимальный прямогольник — тот описанный прямогольник, у которого одна сторона параллельна наиболее шириной многоугольника.

На этот этапе задача была предложена математику.

С чего начал математик

Matematик начал с совсем, казалось бы, неинтересного и малосодержательного вопроса: «А существенно ли вообще оптимальный прямогольник?»

Выберем на плоскости какую-нибудь точку OO и проведем через нее ось l0l_0 (рис. 2a). Затем проведем через OO произвольно луч l=lφl = l_\varphi и пусты он образует угол φ\varphi с осью l0l_0. Мы можем построить для многоугольника MM опорную прямую, параллельную лучу ll, и затем — тот (единистенный) описанный прямогольник PP, две стороны которого параллельны лучу ll; его площадь обозначим через S(φ)S(\varphi). Будем изменять угол φ\varphi; пусты этот угол растет от 0 до π\pi; при этом будет меняться и прямогольник PP, и мы получим все возможные прямогольники, описанные около MM; будет непрерывно изменяться и SS (т. е. при малом изменении угла φ\varphi мало изменится и величины S(φ)S(\varphi)). Но функция, непрерывная на некотором отрезке (в нашем случае — на отрезке [0; π\pi]), обязана принять при каком-то (хотя бы при одном) значении φ\varphi из этого отрезка своего наименьшего значения («Алгебра и начала аналiza 9—10», с. 89). Значит, найдется такой угол φ\varphi, что соответствующий описанный около MM прямогольник будет иметь наименьшую возможность площадь (будет оптимальным). Иначе говоря, среди прямогольников, описанных около многоугольника MM, называя имеется (хотя бы один) оптимальным.

Удостоверившись в существование решения, математик приступил к его поиску.

Рассмотрим произвольный многоугольник — невпуклый или выпуклый. Слушай невпуклого многоугольника, однако, легко свойства к случаю выпуклого многоугольника. В самом деле, пусты MM — невпуклый многоугольник. Расмотрим наименьший выпуклый многоугольник M′M', содержащий многоугольник MM (M′M' называют выпуклой оболочкой многоугольника MM, рис. 26). Легко понять, что прямогольник PP содержит в себе многоугольник MM в том и только том случае, когда он содержит его выпуклую оболочку M′M'. Следовательно, задача поиска оптимального прямогольника для многоугольника MM равносильна той же задаче для выпуклого многоугольника M′M'.

Чтобы освободятся с ней, попытаться сначала ее в простейшем частном случае, когда MM — треугольник.

Решение задачи для треугольника

Пусть MM — треугольник ABCABC, а PP — какой-либо прямогольник, описанный около MM. На каждой из четырех сторон прямогольника должна быть хотя бы одна вершина треугольника. Поэтому по крайней мере одна вершина треугольника «обслуживает» две

46

стороны прямогольника Π\Pi, являясь их общим концом. Однако остальные две вершины могут располагаться по-разному на сторонах (или внутри) прямогольника, и возможно 4 прициппально разных случая (рисунки 3, a−εa-ε) в зависимости от их расположения.

Обозначим площад треугольника ABCABC через σ\sigma, а через SS — площад прямогольника Π\Pi.

В случае σ\sigma имеем, очевидно: S=2σS=2\sigma.
В случае ε\varepsilon и ε\varepsilon): S>2σS>2\sigma.

Как обстоит дело в случае aa)? Проведем через BB параллель к стороне AKAK прямогольника и отметим точки FF и DD ее встречи со стороной треугольника и стороной прямогольника. Тогда
S=SAKBD+SBDNL>2SBFA+2SBFC=2σ,S=S_{AKBD}+S_{BDNL}>2S_{BFA}+2S_{BFC}=2\sigma,
т. е. S>2σS>2\sigma.

Видим, что оптимальный прямогольник возникает лишь в случае σ\sigma). Таким образом, среди описанных прямогольников, имеющих в себе заданный треугольник MM, оптимальным является такой, у которого основание совпадает со стороной треугольника; при этом площад оптимального прямогольникаровно ввода больше площади треугольника. Понято, что если треугольник — тупоугольный, то такой оптимальный прямогольник — единственный. В случае разностороннего остроугольного треугольника оптимальных прямогольников — три. Возможен и тот случай, когда оптимальных прямогольников два (например, если треугольник прямогольный).

Алгоритм получения оптимального прямогольника оченьен.

А как быть в случае четырехугольника?

Рассмотренный выше способ решения настоящего прост, что даже в голову не приходит искать друг способ. А между тем наш способ обладает одним кругпным недостатком: он не переносится на сluчай многоугольника, у которого больше трех сторон. Поэтому прикинем, какой другой, более перспективный, подход мог бы — в случае треугольника — привести нас к решению. В случае aa) мы могли бы вычислить суммарную площадь отрезаемых треугольников (обозначим ее через TT), выразив ее через угол tt (угол наклона стороны треугольника ABAB к опорной прямой AKAK) и через элементы треугольника; можно показать, что эта сумма имеет вид
T=T(t)=A1sin⁡2t+A2sin⁡(2t+θ2)+A3sin⁡(2t+θ3),T=T(t)=A_1\sin 2t+A_2\sin(2t+\theta_2)+A_3\sin(2t+\theta_3),
где A1,A2,A3,θ2,θ3A_1, A_2, A_3, \theta_2, \theta_3 — какие-то числа, которые не зависит от tt (а зависит только от элементов треугольника ABCABC). Затем мы могли бы попытаться отбросить те значения tt, для которых эта сумма завершено не принимает минимального значения. Этот способ в случае треугольника может показаться неоправданно громоздким, но в случае четырехугольника и других многоугольников он приводит к решению — и, как оказывается, не так уж сложно.

Сформируем в виде задач два простых факта, которые нам потребуется в дальнейшем (решения — в одном из следующих номеров).

Задание 1. Каждую сумму вида
T(t)=A1sin⁡(2t+θ1)+A2sin⁡(2t+θ2)+⋯+Amsin⁡(2t+θm)T(t)=A_1\sin(2t+\theta_1)+A_2\sin(2t+\theta_2)+\dots+A_m\sin(2t+\theta_m)
можно всегда привести к виду
T(t)=ρsin⁡(2t+θ),T(t)=\rho\sin(2t+\theta),
(1)
где ρ≥0\rho \geq 0 и числа ρ\rho и θ\theta зависит только от чисел A1,…,Am,θ1,…,θmA_1, \dots, A_m, \theta_1, \dots, \theta_m (но не зависит от tt).

Задание 2. Если для всех значений tt из некоторого интеграла вида (t0−ε;t0+ε)(t_0-\varepsilon; t_0+\varepsilon) (концы не входят) функция sin⁡(2t+θ)\sin(2t+\theta) неотрицательна, то найдется на этом интеграле такое значение t1t_1, что верно строгое неравенство:
sin⁡(2t1+θ)<sin⁡(2t+0).\sin(2t_1+\theta)<\sin(2t+0).
(2)

Случай произвольного nn-угольника

Пусть MM — произвольный выпуклый nn-угольник (n≥4n \geq 4), а Π0\Pi_0 — ка-

47

кой-нибуд описанный около него прямогольник. Сначала рассмотрим те случаи, когда ни одна сторона многоугольника MM не лежит на стороне прямогольника Π0\Pi_0. При таком требовании могут на контур прямогольника Π0\Pi_0 оказаться не более четырех вершин многоугольника MM. При этом возможны следующие три варианта:

I. Две вершины многоугольника MM служат концами диагонали прямогольника Π0\Pi_0, а остальные вершины MM — внутри Π0\Pi_0, рис. 4, а).

II. Одна вершина многоугольника MM служит вершиной прямогольника Π0\Pi_0, две вершины многоугольника MM являются внутренними точками двух сторон Π0\Pi_0, а остальные вершины MM — внутри Π0\Pi_0, рис. 4, в).

III. Какие-то четыре вершины многоугольника MM являются внутренними точками четырех сторон прямогольника Π0\Pi_0, а остальные вершины многоугольника MM лежат внутри Π0\Pi_0, рис. 4, в).

Все три варианта рассматриваются единобразным примемом: вычисляется площадь описанного прямогольника и выясняется, нельзя ли его путем «малого шевления» улушить, т. е. получить описанный прямогольник с меньшей площадью; если окажется, что можно, то рассматриваемый прямогольник Π0\Pi_0 зависит не оптимальный.*)

Мы рассмотрим здесь вариант I — наиболее простой. Обозначим через AA и CC те две вершины MM, которые служат концами диагонали описанного прямогольника Π0\Pi_0 (F0K0L0N0F_0K_0L_0N_0). Пусть ABAB — сторона MM, лежащая внутри Π0\Pi_0 (кроме конца AA); можно считать, что ABAB — в △F0K0L0\triangle F_0K_0L_0. Обозначим величины угла BAK0BAK_0 через t0t_0, величины угла CABCAB через λ\lambda. Вычисляем площадь SΠ0S_{\Pi_0}:

SΠ0=12AC2sin⁡(2t+2λ).S_{\Pi_0} = \frac{1}{2} AC^2 \sin (2t + 2\lambda).

В силу задачи 2 существует такой угол tt на интервале (t0−ε;t0+ε)(t_0 - \varepsilon; t_0 + \varepsilon), что sin⁡(2t+2λ)<sin⁡(2t0+2λ)\sin (2t + 2\lambda) < \sin (2t_0 + 2\lambda), а следовательно, SΠ0<SΠ0S_{\Pi_0} < S_{\Pi_0}. А это означает, что прямогольник Π0\Pi_0, появляющийся в варианте I, — не оптимальный: его можно «улушить». Разбор оставшихся двух случав мы оставляем читателю в качестве задач.

Задание 3. Докажите, что в варианте III — прямогольник Π0\Pi_0 не оптимальный.

Задание 4. Докажите, что и в варианте II — прямогольник Π0\Pi_0 не оптимальный.

Видим, что пока описанный прямогольник не содержит ни одной стороны многоугольника MM (см. варианта).

*) Подробно о примере «малого шевления» см. «Квант», 1979, № 4, с. 4 или книгу Балк М. В., Балк Г. Д. Пошк решения, М.: Детская литература, 1983, с. 86.

Рис. 4.

Рис. 5.

48

ты I, II, III), он не может оказаться оптимальным. Но оптимальный прямоугольник, как мы уже знаем, существует. Таким образом математик получил следующий алгоритм решения.

Алгоритм решения основной задачи

  1. Если данный nn-угольник MM — выпуклый, то начерти все описанные прямоугольники, содержащие хотя бы одну сторону многоугольника (таких прямоугольников не более nn).
  2. Вычисли плошади этих прямоугольников и выберя среди прямоугольников все такие, чья плошадь — наименьшая. Каждый из них является оптимальным прямоугольником для расматриваемого nn-угольника. Других оптимальных прямоугольников не существует.
  3. Если многоугольник MM невыпуклый, то сначала построй для него выпуклую оболочку M′M', а затем найди для многоугольника M′M' оптимальный прямоугольник — он будет и оптимальным прямоугольником для многоугольника MM.

Когда понск упрощается
Мы видели, что нахождение оптимального прямоугольника для данного выпуклого nn-угольника MM состоит к перебору не более, чем nn прямоугольников. Имеются важные случаи, когда этот перебор упрощается. Мы их формируем в виде задач. Здесь следует учеть, что у выпуклого nn-угольника, отличного от прямоугольника, не более трех нетупых углов (в противном случае сумма углов не будет равной 180∘180^\circ (n−2n-2)).

Задача 5. Пусть в некотором выпуклом многоугольнике MM имеется лишь одна сторона, к которой прилегают два нетупых угла. Доказите, что тогда среди прямоугольников, описанных около MM, имеется лишь один оптимальный — наименьшая. Если такой существует, то как его найти?

  1. Пусть MM — заданный выпуклый nn-угольник. Пусть {A1,A2,…,Ak}\{A_1, A_2, \dots, A_k\} — всевозможные выпуклы kk-угольника с заданным угламми a1,a2,…,aka_1, a_2, \dots, a_k (a1+a2+⋯+ak=(k−2)na_1 + a_2 + \dots + a_k = (k-2)n), описанные около nn-угольника MM. Доказите, что если среди этих kk-угольников имеется такой, чья плошадь минимальная, то хотя бы на одной его стороне содержится сторона nn-угольника MM (так что оптимальных kk-угольников не более, чем nn).