УДК 519.2
ПОСТРОЕНИЕ ОПТИМАЛЬНОЙ ТРАССЫ ОГРАНИЧЕННОЙ КРИВИЗНЫ В НЕОДНОСВЯЗНОЙ ОБЛАСТИ
ПЛЕХОВА А. А.
Предлагаются условия оптимальности и метод решения задачи о построении в неодносвязной многоугольной области кратчайшей гладкой трассы, составленной из дуг окружностей, отрезков и сопрягающих их клотоид.
1. Постановка базовой задачи на классе SCK
Рассмотрим класс линий SCK , составленных из отрезков (Si), фрагментов клотоид (Kt) и дуг окружностей (Ci) вида
p = S\K\C\K'iS2K2C2K2S3 ... KnCnK'nSn+i , n > 1, (1) которые в общих точках удовлетворяют условию трансверсальности. Радиусы этих окружностей r и параметры клотоид а считаем фиксированными,
причем фрагменты клотоид Kt, K■, примыкающие к
одной дуге Ci, конгруэнтны и рассматриваются на интервале от точки с нулевой кривизной (в точке сопряжения с отрезком) до точки с требуемым радиусом кривизны. Угол поворота клотоиды на
этом интервале не превышает п/2 .
Пусть Pt,sCK [ A, B] — множество линий класса SCK , которые лежат в классе эквивалентности путей [т], представленном ломаной минимальной длины т, а L(p) — длина пути р.
Базовая задача SCK . Для данной ломаной т = ACB найти
Р* = arg min L(p); (2)
p є Рт, SCK[A,b].
Поскольку ломаная т — кратчайшая в [г], из [1] следует, что решение задачи (2), если существует, содержит минимум один (n = 1) фрагмент вида (1). Обобщение этой задачи на случай многофрагментного (n > і) пути вида (1) назовем стандартной задачей
на классе SCK^.
Рассмотрим клотоиду, заданную натуральным уравнением
a
Р = -, (3)
s
где а — параметр; s — длина дуги; р — радиус кривизны, и расположенную на плоскости Zxy традиционным образом, т.е. так, что она касается оси абсцисс в начале координат z , где ее радиус кривизны равен бесконечности. Пусть ее фрагмент — дуга ZM расположена в I квадранте и касается в точке M
окружности O радиуса r .Тогда ее параметрическое уравнение имеет вид
( 2 A ( 2 A
x = J cos 0 s 2a VJ ds, У = J sin 0 s 2a VJ
Найдем координаты центра окружности O и точки M. Поскольку угол поворота Да кривой (3) на дуге ZM не превышает п/2, точка M лежит на дуге с угловой мерой п/2 относительно точки D', где OD — перпендикуляр к оси абсцисс. По определению кривизны к дуги имеем
, da
к = —,
ds
(5)
где а — угол касательной к оси абсцисс. Используя (3), получаем s/а = da/ds, а значит, угол поворота
клотоиды на фрагменте дуги ZM длины s = а / r составит
Да = -
2r 2
С учетом (4) координаты точки M равны
Sr
xM = j cos
0
Sr
( s2 ^
2a
V J
ds, sr =—, r
yM = j sin
0
( s 2 ^
2a
V
ds,
(6)
(7)
откуда получаем координаты точки O :
Гxo = xm - r sin^a);
[ y0 = Ум + r cos^a).
Проведем через нее окружность радиуса R = yo:
(8)
a г і s2 а / a
R = j sinl — Ids+r cos| —- . a V2a J V2r2J ,
(9)
a
а точку ее касания с осью абсцисс обозначим D .
Пусть A — произвольная точка на оси абсцисс, лежащая левее точки Z, а C' — произвольная точка на окружности O радиуса R, полярный угол которой YA относительно луча OD удовлетворяет условию Дa<YA <п/2 . Тогда по построению линия p = AD u arcDC' є SC однозначно определяет линию q = AZ u arcZM u arcMC' є SCK ; операцию перехода от p к q назовем сглаживанием (линии класса SC ) клотоидой.
2. Решение базовой задачи
Решение задачи (2) построим, опираясь на решение аналогичной задачи для класса SC [1].
Лемма. Если в базовой задаче SC точка C расположена внутри круга радиуса R на расстоянии r < R от центра, то условия связи и оптимальности примут вид
R - r sin(x-a)= a sina, (10)
a sina = Asin p, (11)
22
РИ, 1999, № 3
2x =a+8-p, (12)
где стороны и углы определены относительно точек A, B и C. В этом случае базовую задачу SC обозначим SCrR , а ее решение — p*rR .
Теорема. Если решение q* базовой задачи (2) для радиуса r существует, оно задается (нормальным или сингулярным)решением p*rR оптимизационной базовой задачи SC относительно параметров A, B,a,p,%
для радиусов r и R вида (9), определяемым условиями связи и оптимальности (10)-( 12), к которым применена процедура сглаживания клотоидой. При этом
разность длин кривых p*rR и q* равна AL = 2% + (A + B+a + p)(R-r), т.е. константе, а положение точек Z и м определяется относительно точки касания d и луча OD соответственно отрезком
длины х0 из (8) и углом Aa из (6).
Трудоемкость получения решения задачи на классе SCK по решению p*rR задачи на классе SC требует порядка 30-40 операций. При этом существенно важно, что при решении задачи (2) для общего случая (1) эти действия следует выполнять только один раз.
3. Решение задачи SCt
В этом случае оптимальная трасса имеет вид
p* = S1C1S2C2...C„S„+1, n > 1. (13)
Не теряя общности, положим, что решение (13) существует и все фрагменты
Фі = SiCiSi+1, St = Ei-iD, Ci = arcD-Ei,
трассы p* определяют нормальные решения. Для каждого из этих фрагментов остаются в силе условия связи и оптимальности [1] для точек, лежащих на касательных.
Алгоритм.
1.Пусть a — некоторый угол, задающий граничное условие задачи SCa для точек A и C1. Он
определяет окружность O1, положение которой удовлетворяет условиям связи и оптимальности, а также прямую E1E1 (для любой точки которой EJ фрагмент AD1 u arcD^1 u E1E1 является оптимальным
решением задачи SCa для A и E1), исходя из соотношений
х1
= a + arcsinl 1---sina
R
(14)
arcC^1 = n/2+a-x. (15)
2. Зная точку E1 и ориентацию касательной E1E(,
определяемую вектором, ортогональным к O1E1 , получаем окружность O2 , проходящую через C2 и касающуюся E1E1, а по ней — подобно пункту 1 — точку E2 и соответствующую касательную E2E’2, и т.д. до EnE’n .
3. Полученную трассу обозначим pa :
pa= AD1 u arcD^1 u E1D2 u... u EnBa ,
где Ba — точка на EnE'n такая, что EnBa= EnB.
По построению этого алгоритма получаем, что при Ba= B трасса pa доставляет решение задаче SC . Однако поскольку угол a выбран произвольно, угол p(a) = ABEnE'n , в общем, не равен нулю, но является непрерывной функцией малой вариации относительно угла a (и наоборот, так как точки A, B входят в постановку задачи симметрично). Поэтому в некоторой окрестности a=(a1,a2) начального угла a содержится решение поставленной задачи, т.е. такой угол a* є a , что в{а)= 0 . Для построения этой окрестности достаточно варьировать угол a с шагом Aa (a-1 =a-Aa, a1 =a + 2Aa,...), пока не получим пару прямых вида EnE'n и EnE"n, содержащих между собой точку B . Если шаг Aa достаточно мал, при некотором k = k* получим |p(a**)<A, где A —
требуемая точность решения. Если шаг Aa достаточно велик, на полученном интервале a с требуемой точностью A решение задачи минимизации p(a), aєa, можно эффективно получить методом хорд. При этом трудоемкость решения задачи SC в общем случае можно оценить величиной
KSC И102 n / A (операций) . (16)
Литература. 1. Плехова А.А. Метод оптимального решения базовой задачи о кратчайшем скруглении / Информатика. К.: Наук. думка, 1998. С.124-12б.
Поступила в редколлегию 28.08.99 Рецензент: д-р физ.-мат. наук Смеляков С.В.
Плехова Анна Анатольевна, аспирантка Института Проблем машиностроения НАН Украины. Научные интересы: методы оптимизации, геометрическое проектирование. Адрес: Украина, 310000, Харьков, ул. Калининградская, 9, тел. 10-27-82.
РИ, 1999, № 3
23