Кіріспе
Қысқа байланыс желілерінде қосымша төбелер туралы
Комбинаторлық математикада Штайнер ағашы мәселесі немесе Якоб Штайнер есімімен аталған ең төменгі Штайнер ағашы мәселесі – комбинаторлық оптимизациядағы проблемалар класын білдіретін жалпы термин. Штайнер ағашы мәселелері әртүрлі жағдайларда қойылса да, олардың барлығы белгілі бір объектілер жиыны үшін және алдын ала анықталған мақсатты функция үшін оңтайлы байланысты талап етеді. Штайнер ағашы мәселесі терминімен жиі синоним ретінде қолданылатын белгілі бір түрі – графтардағы Штайнер ағашы мәселесі. Берілген бағытталмаған графта, оның қабырғаларының салмағы теріс емес және төбелердің ішкі жиыны (әдетте терминалдар деп аталады), графтардағы Штайнер ағашы мәселесі барлық терминалдарды қамтитын (бірақ қосымша төбелерді де қамтуы мүмкін) ең төменгі салмақты ағашты және оның қабырғаларының жалпы салмағын азайтуды талап етеді. Тағы бір танымал түрлері – Эвклидтік Штайнер ағашы мәселесі және тікбұрышты ең төменгі Штайнер ағашы мәселесі. Графтардағы Штайнер ағашы мәселесін басқа екі белгілі комбинаторлық оптимизация мәселесінің жалпылауы ретінде қарастыруға болады: (теріс емес) ең қысқа жол мәселесі және ең төменгі жайылмалы ағаш мәселесі. Егер графтардағы Штайнер ағашы мәселесінде дәл екі терминал болса, онда ол ең қысқа жолды табуға дейін тоғысып қалады. Ал егер барлық төбелер терминалдар болса, онда графтардағы Штайнер ағашы мәселесі ең төменгі жайылмалы ағашқа тең болады. Дегенмен, теріс емес ең қысқа жол және ең төменгі жайылмалы ағаш мәселелері полиномиалдық уақытта шешілсе, Штайнер ағашы мәселесі үшін мұндай шешім белгісіз. Оның шешімдік түрі, яғни берілген кірісте белгілі бір шектен төмен салмақты ағаш бар ма жоқ па деген сұрақ, NP-толық, бұл оптимизациялық түрі, яғни берілген графтағы ең төменгі салмақты ағашты табу, NP-қиын екенін білдіреді. Шындығында, шешімдік түрі Карптың бастапқы 21 NP-толық мәселесінің бірі болды. Графтардағы Штайнер ағашы мәселесі схемалық орналасуда немесе желілік дизайнда қолданылады. Алайда, практикалық қолданыстар көбінесе өзгерістерді қажет етеді, бұл Штайнер ағашы мәселесінің көптеген түрлеріне әкеледі. Штайнер ағашы мәселесінің көптеген түрлері NP-қиын, бірақ кейбір шектеулі жағдайларды полиномиалдық уақытта шешуге болады. Ең нашар жағдайдағы күрделілігіне қарамастан, бірнеше Штайнер ағашы мәселесінің түрлері, соның ішінде графтардағы Штайнер ағашы мәселесі және тікбұрышты Штайнер ағашы мәселесі, тіпті ірі масштабты нақты әлемдік мәселелер үшін де практикада тиімді шешіледі.
Евклидтік Штайнер ағашы
Бастапқы мәселе Евклидтік Штайнер ағашы проблемасы немесе геометриялық Штайнер ағашы проблемасы ретінде белгілі болған түрінде қойылды: Жазықтықта N нүкте берілген болса, мақсаты – оларды ең аз жалпы ұзындығы бар сызықтармен байланыстыру, осылайша кез келген екі нүкте тікелей немесе басқа нүктелер мен сызық сегменттері арқылы бір-бірімен байланыса алатындай ету. Бұл мәселені алғаш рет 1811 жылы Жозеф Диз Гергонн былай формулировкалады: «Жазықтықта белгілі орындарда орналасқан бірнеше қалалар бар; мәселе – оларды жалпы ұзындығы ең аз болатын каналдар жүйесімен байланыстыру». Байланыстыратын сызық сегменттері тек соңғы нүктелерде ғана қиылыспайды және ағаш құрайды, сондықтан проблеманың осы атауы берілген. N = 3 жағдайындағы мәселе ұзақ уақыт бойы зерттелді және тез арада барлық N берілген нүктелерге жалғанатын, ең аз жалпы ұзындығы бар бір орталықты жұлдыз тәрізді желіні табу мәселесіне дейін кеңейтілді. Дегенмен, толық Штайнер ағашы проблемасы Гаусс хатында тұжырымдалған болса да, оның алғашқы толық зерделенуі 1934 жылы Войтех Ярник және басқалар жазған чех тіліндегі мақалада болды. Бұл мақала ұзақ уақыт бойы назардан тыс қалды, бірақ ол кейіннен басқа зерттеушілерге, соның ішінде проблеманың жазықтықтан жоғары өлшемдерге жалпылануына жатқызылған «Штайнер ағаштарының барлық негізгі қасиеттерін» қамтиды. Евклидтік Штайнер проблемасы үшін графқа қосылған нүктелердің (Штайнер нүктелері) дәрежесі үш болуы керек, ал мұндай нүктеге түсетін үш қабырға үш 120 градустық бұрыш құруы керек (Ферма нүктесін қараңыз). Осыдан Штайнер ағашындағы Штайнер нүктелерінің максималды саны N - 2-ге тең, мұнда N – бастапқы берілген нүктелердің саны. (Бұл қасиеттердің барлығы Гергоннмен бұрыннан анықталған.) N = 3 үшін екі мүмкін жағдай бар: егер берілген нүктелер құрайтын үшбұрыштың барлық бұрыштары 120 градустан кіші болса, шешім Ферма нүктесінде орналасқан Штайнер нүктесімен беріледі; әйтпесе, шешім үшбұрыштың 120 градус немесе одан да үлкен бұрышта кездесетін екі қабырғасымен беріледі. Жалпы N үшін Евклидтік Штайнер ағашы проблемасы NP қиын, сондықтан полиномиалдық уақыт алгоритмін қолдану арқылы оңтайлы шешім табуға бола ма, жоқ па, белгісіз. Алайда, Евклидтік Штайнер ағаштары үшін полиномиалдық уақытқа жуықтап шешу схемасы (PTAS) бар, яғни полиномиалдық уақыт ішінде жақын оңтайлы шешім табуға болады. Евклидтік Штайнер ағашының NP толық екендігі белгісіз, себебі оның NP күрделілік класына жататындығы белгісіз.
Тікелей Штайнер ағашы
Тікелей Штайнер ағашы мәселесі – жазықтықтағы геометриялық Штайнер ағашы мәселесінің бір түрі, онда евклидтік қашықтық тікбұрышты қашықтықпен алмастырылады. Бұл мәселе электрондық дизайнды автоматтандырудың физикалық жобалау кезінде туындайды. VLSI тізбектерінде сымдарды тарту көбінесе дизайн ережелерімен тік және көлденең бағыттарда ғана жүргізілуімен шектеледі, сондықтан тікбұрышты Штайнер ағашы мәселесі екі терминалынан артық нүктелері бар желілерді тартуды модельдеу үшін қолданылуы мүмкін.
Штайнер ағашы графиктер мен нұсқаларда
Штайнер ағаштары салмақты графтар аясында кеңінен зерттелді. Прототипі – графтардағы Штайнер ағашы мәселесі. G = (V, E) – теріс емес жиек салмағы c бар бағытталмаған граф болсын, ал S ⊆ V – терминалдар деп аталатын төбелердің ішкі жиыны болсын. Штайнер ағашы – G-дегі S-ті байланыстыратын ағаш. Мәселе екі түрде келеді: Штайнер ағаштарымен байланысты оптимизация мәселесінде міндет – ең төмен салмақты Штайнер ағашын табу; шешімді табу мәселесінде жиек салмақтары бүтін сандар болып табылады және міндет – жалпы салмағы алдын ала белгіленген k табиғи санынан аспайтын Штайнер ағашының бар-жоғын анықтау. Шешімді табу мәселесі Карптың 21 NP-толық мәселесінің бірі; демек, оптимизация мәселесі NP-қиын. Графтардағы Штайнер ағашы мәселелері ғылыми зерттеулер мен өнеркәсіптегі әртүрлі мәселелерге қолданылады, оның ішінде көптүрлі маршрутизация және биоинформатика. Бұл мәселенің ерекше жағдайы – G толық граф болғанда, әрбір v ∈ V төбесі метрикалық кеңістіктегі нүктеге сәйкес келеді және әрбір e ∈ E жиегі үшін w(e) жиек салмақтары кеңістіктегі қашықтықтарға сәйкес келеді. Басқаша айтқанда, жиек салмақтары үшбұрыш теңсіздігін қанағаттандырады. Бұл нұсқа метрикалық Штайнер ағашы мәселесі деп аталады. (Метрикалық емес) Штайнер ағашы мәселесінің берілген мысалын полиномиал уақытта метрикалық Штайнер ағашы мәселесінің эквивалентті мысалына түрлендіруге болады; түрлендіру жуықтау коэффициентін сақтайды. Евклидтік нұсқа PTAS-ты қабылдаса да, метрикалық Штайнер ағашы мәселесі APX-толық екені белгілі, яғни P = NP болмаса, полиномиал уақытта 1-ге еркін жақын жуықтау коэффициенттерін алу мүмкін емес. Минималды Штайнер ағашын ; коэффициенті шегінде жуықтайтын полиномиал уақыт алгоритмі бар, бірақ коэффициенті шегінде жуықтау NP-қиын. Штайнер ағашының 1 және 2 қашықтықтағы шектеулі мәселесі үшін 1,25 жуықтау алгоритмі белгілі. Карпинский мен Александр Зеликовский Штайнер ағашы мәселелерінің тығыз жағдайлары үшін PTAS құрды. Граф мәселесінің ерекше жағдайында, квази-екі бөлікті графтар үшін Штайнер ағашы мәселесінде S-ге G-дегі әрбір жиектің кем дегенде бір ұшын қосу қажет. Штайнер ағашы мәселесі жоғары өлшемдерде және әртүрлі беттерде зерттелді. Штайнердің минималды ағашын табу алгоритмдері сфера, тор, проекциялық жазықтық, кең және тар конустарда және басқаларында табылды. Штайнер ағашы мәселесінің басқа жалпыламалары – k жиекпен байланысты Штайнер желісі мәселесі және k төбемен байланысты Штайнер желісі мәселесі, мұнда мақсат – k жиекпен немесе k төбемен байланысты графты табу, кез келген байланысты графты емес. Тағы бір жақсы зерттелген жалпылама – тірі қалу желісін жобалау мәселесі (SNDP), онда әрбір төбе жұбын берілген санмен (мүмкін 0) жиек немесе төбелердің ажыратылған жолдарымен қосу міндеті тұрады. Штайнер мәселесі метрикалық кеңістіктердің жалпы жағдайында және мүмкін шексіз көп нүктелер үшін де қойылды.
however, approximating within a factor is NP hard. For the restricted case of Steiner Tree problem with distances 1 and 2, a 1.25 approximation algorithm is known. Karpinski and Alexander Zelikovsky constructed PTAS for the dense instances of Steiner Tree problems. In a special case of the graph problem, the Steiner tree problem for quasi bipartite graphs, S is required to include at least one endpoint of every edge in G.
The Steiner tree problem has also been investigated in higher dimensions and on various surfaces. Algorithms to find the Steiner minimal tree have been found on the sphere, torus, projective plane, wide and narrow cones, and others. Other generalizations of the Steiner tree problem are the k edge connected Steiner network problem and the ''k'' vertex connected Steiner network problem, where the goal is to find a k edge connected graph or a k vertex connected graph rather than any connected graph. A further well studied generalization is the survivable network design problem (SNDP) where the task is to connect each vertex pair with a given number (possibly 0) of edge or vertex disjoint paths. The Steiner problem has also been stated in the general setting of metric spaces and for possibly infinitely many points.
Штайнер ағашына жақындау
Жалпы график Штайнер ағашы мәселесін 1981 жылы Ку және авторлар жариялағандай, терминалдық төбелерден туындаған график метрикалық жабылуының кіші ағашының ең төмен салмақты ағашын есептеу арқылы жуықтауға болады. График G-нің метрикалық жабылуы – G-дегі төбелер арасындағы ең қысқа жол қашықтығымен салмақталған толық график. Бұл алгоритм салмағы оптималды Штайнер ағашы салмағының 2 − 2/t факторының ішінде болатын ағаш жасайды, мұнда t – оптималды Штайнер ағашындағы жапырақтар саны; бұл оптималды Штайнер ағашы бойынша саяхатшы сатушының айналымын қарастыру арқылы дәлелдеуге болады. Бұл жуықталған шешімді O(|S||V|²) полиномдық уақытта есептеуге болады, алдымен метрикалық жабылуды есептеу үшін барлық жұптар арасындағы ең қысқа жолдар мәселесін шешу арқылы, содан кейін ең төмен салмақты ағаш мәселесін шешу арқылы. Штайнер ағашын графиктерде жуықтау үшін тағы бір танымал алгоритмді 1980 жылы Такахаси және Мацуяма жариялады. Олардың шешімі Штайнер ағашын кездейсоқ төбеден бастап, ағаштан S жиынындағы әлі қосылмаған ең жақын төбеге дейінгі ең қысқа жолды қайта-қайта қосу арқылы біртіндеп құрайды. Бұл алгоритмнің жұмыс уақыты O(|S||V|²) және салмағы 2 − 2/|S| оптималды жуыққа дейін ағаш жасайды. 1986 жылы Ву және авторлар барлық жұптар арасындағы ең қысқа жолдарды алдын ала есептеуді болдырмау арқылы жұмыс уақытын күрт жақсартты. Олар Крускал алгоритміне ұқсас тәсіл қолданады, ең төмен салмақты ағашты есептеу үшін бір-біріне қосылмаған |S| ағаштар жиынынан бастап, оларды бір мезгілде «өсіреді», Дикстра алгоритміне ұқсас ендік бірінші іздеуді қолданады, бірақ бірнеше бастапқы төбелерден басталады. Іздеу кезінде қазіргі ағашқа жатпайтын төбе кездескенде, екі ағаш біріктіріледі. Бұл процесс бір ғана ағаш қалғанша қайталанады. Басымдық кезегін жүзеге асыру үшін қалып (деректер құрылымы) және әрбір кіретін төбенің қай ағашқа жататынын қадағалау үшін бірікпеген жиынтық деректер құрылымын пайдалану арқылы бұл алгоритм O(|E| log |V|) жұмыс уақытын жетеді, бірақ Ку және авторлардың 2 − 2/t салмақ қатынасын жақсартпайды. Бірқатар мақалалар 2 − 2/t қатынасын жақсартатын жуықтау қатынастары бар ең төмен Штайнер ағашы мәселесі үшін жуықтау алгоритмдерін ұсынды. Бұл тізбек 2000 жылы Робинс пен Зеликовскийдің алгоритмімен аяқталды, ол ең төмен шығынды терминалдық кеңейту ағашын итеративті жақсарту арқылы қатынасты 1,55-ке жақсартты. Алайда, жақында Byrka және авторлар сызықтық бағдарламалауды жеңілдету және итеративті, кездейсоқ дөңгелектеу деп аталатын әдіс қолдану арқылы жуықтауды дәлелдеді.
Штайнер ағашының параметрленген күрделілігі
Жалпы график Штайнер ағашы мәселесі Дрейфус-Вагнер алгоритмі арқылы, терминалдар саны параметр ретінде қарастырылғанда, шешілуге болатындығы белгілі. Дрейфус-Вагнер алгоритмінің орындалу уақыты , мұндағы – графтың төбелерінің саны, ал – терминалдар жиыны. Кез келген үшін уақытта орындалатын, немесе кіші салмақтар болған жағдайда, кез келген қабырғаның ең үлкен салмағы – уақытта орындалатын жылдам алгоритмдер де бар. Аталған алгоритмдердің кемшілігі – олар экспоненциалдық көлемді пайдаланады; уақыт және уақытта жұмыс істейтін полиномдық көлемді алгоритмдер бар. Жалпы график Штайнер ағашы мәселесінде, оңтайлы Штайнер ағашының қабырғаларының саны – болғанда, кез келген үшін уақытта орындалатын параметрленген алгоритмнің жоқ екені белгілі, егер Жиынтық жабу мәселесінде кейбір үшін, мұндағы және – жиынтық жабу мәселесінің мысалындағы элементтер саны және жиындар саны сәйкесінше, алгоритм болса. Сонымен қатар, егер оңтайлы Штайнер ағашының қабырғаларының санымен параметрленгенде және барлық қабырға салмақтары 1-ге тең болса, онда мәселе полиномдық ядроға ие емес екені белгілі.
Штайнер ағашының параметрленген шамалауы
Графтың Штайнер ағашы мәселесі терминалдар санымен параметрленбесе, полиномиялық ядроға ие болмайды, бірақ полиномиялық өлшемдегі жуық ядролық схеманы (PSAKS) қабылдайды: кез келген үшін полиномиялық өлшемдегі ядроны есептеуге болады, бұл шешім сапасында тек бір факторды жоғалтады. Графтың Штайнер ағашы мәселесін оптималдық шешімдегі терминал емес (Штайнер төбелері) саны бойынша параметрлеу кезінде мәселе W[1] қиын (жоғарыда айтылғандай, терминалдар саны бойынша параметрлеуге қарағанда). Сонымен қатар, мәселе APX-толық және сондықтан P = NP болмаса, PTAS-қа ие болмайды. Дегенмен, кез келген үшін уақыт ішінде жуықтап есептейтін параметрленген жуықтау схемасы бар. Сондай-ақ, осы параметрлеу үшін PSAKS бар. Болжам әлі де ашық. Мәселе үшін ең жақсы, кеңінен қабылданған жоғарғы шек – 1.2134.
For the rectilinear Steiner tree problem, the Steiner ratio is exactly , the ratio that is achieved by four points in a square with a spanning tree that uses three sides of the square and a Steiner tree that connects the points through the center of the square. More precisely, for distance the square should be tilted at with respect to the coordinate axes, while for distance the square should be axis aligned.
Тікбұрышты Штайнер ағашы мәселесі үшін Штайнер қатынасы дәл , бұл квадраттың төрт нүктесімен қол жеткізілетін қатынас, онда үш жағы қолданылатын және төрт бұрыштың ортасы арқылы нүктелерді байланыстыратын Штайнер ағашы бар. Нақтырақ айтқанда, қашықтық үшін квадратты координаттық осьтерге қатысты бұру керек, ал қашықтық үшін квадрат осьтерге сәйкес болуы керек.
For the rectilinear Steiner tree problem, the Steiner ratio is exactly , the ratio that is achieved by four points in a square with a spanning tree that uses three sides of the square and a Steiner tree that connects the points through the center of the square. More precisely, for distance the square should be tilted at with respect to the coordinate axes, while for distance the square should be axis aligned.