Вступ
В алгоритмах, як і в житті, негатив може бути перешкодою.
Розглянемо задачу знаходження найкоротшого шляху між двома точками на графі — мережі вузлів, з’єднаних зв’язками, або ребрами. Часто ці межі не є взаємозамінними: графік може представляти дорожню карту, на якій деякі дороги повільніші за інші або мають вищу плату за проїзд. Комп’ютерні фахівці враховують ці відмінності, поєднуючи кожне ребро з «вагою», яка кількісно визначає вартість переміщення по цьому сегменту — незалежно від того, чи ця вартість представляє час, гроші чи щось інше. З 1950-х років вони знають, як знаходити найкоротші шляхи, по суті, так швидко, як теоретично можливо, припускаючи, що всі ваги є додатними числами.
Але на деяких графіках ваги можуть бути від’ємними — подорож уздовж одного сегмента може компенсувати вартість проходження іншого. Розглянемо, наприклад, водія-доставника, який повинен збалансувати вартість бензину та мита (представлені додатними вагами) з доходом від транспортування пакетів (представлені від’ємними вагами). У таких випадках найшвидший відомий алгоритм найкоротшого шляху не працює. Десятиліттями швидкі алгоритми пошуку найкоротших шляхів на графах із від’ємною вагою залишалися недосяжними.
Тепер тріо комп’ютерників вирішило цю давню проблему. Їх новий алгоритм, який знаходить найкоротші шляхи через граф від заданого «вихідного» вузла до кожного іншого вузла, майже відповідає швидкості, яку досягли алгоритми позитивної ваги так давно.
Більше того, у новому підході використовуються математичні методи десятки років, уникаючи більш складних методів, які домінували в сучасних дослідженнях теорії графів.
«Я просто не міг повірити, що такий простий алгоритм існує», — сказав Максиміліан Пробст Гутенберг, комп’ютерний науковець у Швейцарському федеральному технологічному інституті Цюріха. «Все це там 40 років. Просто потрібен був хтось дуже розумний і сповнений рішучості, щоб усе спрацювало».
Межі жадібності
Історія починається в 1956 році, коли голландський комп’ютерний вчений Едсгер Дейкстра розробив швидкий алгоритм пошуку найкоротших шляхів на графі лише з позитивними вагами. Щоб зрозуміти це, уявіть, що ви починаєте з джерела та досліджуєте граф один вузол за раз, записуючи ваги нещодавно відкритих ребер по ходу. Кожного разу, коли ви відвідуєте вузол, робіть попередні оцінки найкоротших шляхів від джерела до кожного з сусідів нового вузла, оновлюючи будь-які існуючі оцінки, якщо ви знайшли новий коротший шлях. Щоб вирішити, який недосліджений вузол відвідати наступним, скористайтеся так званою жадібною стратегією: перейдіть до того, що ближче до джерела згідно з вашою поточною оцінкою.
З додатними вагами шлях, який проходить алгоритм Дейкстри для першого відвідування кожного вузла, справді найкоротший. Найлегше побачити, що це справедливо для самого першого кроку. Уявіть собі два вузли A і B, з’єднані ребром із вагою 2. Якщо A є вихідним вузлом, а кожне інше ребро, що дотикається до нього, має більшу вагу, тоді прямий шлях від A до B має бути найкоротшим можливим шляхом, що з’єднує ці дві точки. , оскільки перший сегмент будь-якого іншого шляху вже був би довшим. Подібні міркування працюють на кожному кроці. Алгоритм ніколи не озирається назад, тож він гарантовано завершить роботу після одного перегляду графіка — ось що робить його таким швидким.
Але від’ємні ваги створюють проблеми для жадібної стратегії Дейкстри. Зверніться до нашого водія-доставника. Прямий шлях від А до Б, який приносить невеликий прибуток, може принести менше грошей, ніж окружний шлях, який десь приносить велику винагороду. «Ви не можете приймати рішення лише на основі місцевої інформації», – сказав Санджив Ханна, фахівець з інформатики в Університеті Пенсільванії. «Можливо, вам доведеться зробити кілька, здавалося б, неоптимальних кроків, щоб нарешті отримати справжню винагороду».
Десятиліттями комп’ютерні вчені, працюючи над графіками з від’ємною вагою, намагалися порівняти швидкість алгоритму Дейкстри з аналогічними «комбінаторними» алгоритмами. Вони включають дискретні операції — наприклад, можливості підрахунку, зміну ваг і вибіркове видалення ребер — які відображають дискретну структуру основного графа. Проте прогрес сповільнився до 1990-х років. Зовсім недавно дослідники використовували алгоритми «безперервної оптимізації», які запозичили трюки з числення. На жаль, отримане прискорення було обмеженим і часто коштувало простоти.
Порушити цикл
Влітку 2021 року двоє комп’ютерників, які стали колегами в Копенгагенському університеті, Данупон Нанонгкай та Крістіан Вульф-Нільсен — шукали тему для спільного наукового проекту. «Крістіан сказав: «О, до речі, я був у відпустці, і тому намагався придумати щось дуже амбітне», — згадує Нанонгкай, який зараз працює в Інституті інформатики Макса Планка в Саарбрюкені, Німеччина. Вони зупинилися на проблемі найкоротших шляхів із від’ємною вагою та запросили Аарон Бернштейн Ратгерського університету, щоб приєднатися до них.
Усі троє дослідників були експертами в алгоритмах комбінаторних графів для інших проблем, і вони хотіли побачити, наскільки далеко їх можуть завести ці відносно давні підходи. «Насправді є певна свобода в роботі над проблемою, яка є амбітною та відкритою протягом тривалого часу», — сказав Бернштейн.
Тріо почало з тимчасового ігнорування підмножини можливих графіків: тих, що містять негативні цикли. Це шляхи, які повертаються туди, де вони почалися після проходження серії ребер, вага яких у сумі дає від’ємне число. У графі з від’ємними циклами, досяжними від початкової точки, поняття найкоротшого шляху руйнується, оскільки ви можете зробити відстань до будь-якого вузла настільки від’ємною (або настільки прибутковою), як вам заманеться, зробивши повторні кола навколо від’ємного циклу перед прямуючи до місця призначення.
Дослідники підозрювали, що довгі негативні шляхи головним чином ускладнюють проблему. Тож вони почали зосереджуватися на тісних кластерах сусідніх вузлів, які не можуть містити довгих негативних шляхів: це тому, що якщо дві точки з’єднані коротким позитивним шляхом, додавання довгого негативного шляху між ними створить негативний цикл. У тісному кластері «той факт, що всі близькі один до одного в позитивному сенсі, насправді дає вам корисну інформацію про негативні сторони», — сказав Бернштейн. «Це говорить вам, що речі не можуть бути надто негативними».
Більшість графів містять багато таких тісних кластерів, які лише слабко пов’язані один з одним. Якби дослідники змогли визначити всі кластери, вони підозрювали, що вони могли б розробити спосіб швидко знаходити найкоротші шляхи в кожному з них. Після цього їм буде легше з’єднувати окремі кластери та знаходити найкоротші шляхи на вихідному графіку. Але для цього знадобилося б швидко виявити області будь-якого графіка, вузли яких розташовані близько один до одного — чого вони не знали, як це зробити. Ключем виявилася техніка, яка виникла в зовсім іншій галузі теорії графів.
Розрізання графіків
У 1980-х роках комп’ютерні вчені розробили техніку під назвою декомпозиція з малим діаметром, щоб виділити тісні кластери на графі та визначити ребра, які потрібно видалити, щоб розділити ці кластери. Ця техніка дає можливість розділити графіки на незалежні секції. Він був винайдений для полегшення «розподілених» алгоритмів, у яких обчислення виконуються паралельно на різних частинах графа, тому він був менш очевидно корисним для алгоритмів найкоротших шляхів, які не мають цієї властивості.
Бернштейн, Нанонгкай і Вульф-Нільсен зрозуміли, що розкладання з малим діаметром може допомогти їм ідентифікувати кластери без особливого концентрованого негативу. На жаль, стандартні алгоритми декомпозиції з малим діаметром працюють лише на неорієнтованих графах, у яких кожне ребро можна обійти в обох напрямках. Тим часом проблема найкоротших шляхів із від’ємною вагою має сенс лише на орієнтованих графах, у яких кожне ребро є вулицею з одностороннім рухом. (Інакше один ненаправлений негативний край створив би негативний цикл, що складається з повторюваних стрибків туди-сюди через цей край.) Якби дослідники хотіли використовувати розкладання з малим діаметром, їм довелося б адаптувати його.
Це те, що вони зробили у своїй новій газеті. Натхненний минула робота в якому Бернстайн і Вульф-Нільсен співпрацювали з Пробстом Гутенбергом, вони розробили процедуру руйнування спрямованих графів, аналогічну розкладу малого діаметра. Процедура розбиває довільний орієнтований граф на серію тісних кластерів, використовуючи випадковий процес для видалення лише кількох ребер. Після цього ці кластери з’єднуються більш розрідженою мережею, у якій усі ребра спрямовані в одному напрямку. Така мережа називається орієнтованим ациклічним графом або DAG.
Подумайте про DAG як про потік, у якому вода може текти різними шляхами: деякі шляхи втікають із різних джерел, інші розходяться віялом у різних напрямках, а треті можуть розділятися на частини та знову зливатися разом. Але ніщо ніколи не тече назад, тому немає циклів; це значно полегшує роботу з DAG.
Дослідники давно знають, як швидко знаходити найкоротші шляхи на DAG навіть з від’ємними вагами. Таким чином, техніка розриву дозволила трьом дослідникам звести будь-який орієнтований граф до комбінації двох особливих випадків — DAG і вузьких кластерів — з кожним з яких легко працювати.
Новий алгоритм найкоротших шляхів неодноразово використовує процедуру дроблення, щоб розбити граф на тісно пов’язані кластери, з’єднані DAG. Потім ці кластери розбиваються все далі й далі. Наприкінці процесу кластери на самому внутрішньому рівні максимально тісно з’єднуються. Одна з причин, чому алгоритм настільки швидкий, полягає в тому, що для повного розкладання навіть дуже великого графіка не потрібно багато ітерацій, так само як скорочення великого числа до розумного розміру, якщо ви багаторазово ділите це навпіл.
Завдяки розбитому таким чином графіку дослідники могли швидко знайти найкоротші шляхи через кожну частину графіка. Для тісних кластерів на самому внутрішньому рівні структури вкладеного графа це було легко — у них практично не залишилося негативу. І дослідники вже знали, як знайти найкоротші шляхи на ділянках DAG, що з’єднують їх.
Нарешті, алгоритм додає ребра, усунуті в процесі руйнування, і обчислює їх вплив на найкоротші шляхи. Дослідники довели, що їхній процес випадкового видалення ребер майже завжди вимагав би лише кількох видалень, щоб усунути «назад» ребра — такого роду, який перетворив би їх DAG на граф із великими циклами. Це робило вкрай малоймовірним те, що будь-який найкоротший шлях проходив би через занадто багато таких зворотних сегментів, тому вони могли вирішити цей хитрий останній крок, об’єднавши два підручницькі методи з 1950-х років: алгоритм Дейкстри та перший алгоритм, розроблений для графів з від’ємною вагою.
«Це надзвичайно розумна композиція цих ідей», — сказала Кханна. Цей алгоритм є першим алгоритмом для графів із від’ємною вагою, який виконується в «майже лінійному» часі — це означає, що його час роботи майже пропорційний часу, необхідному лише для підрахунку всіх ребер, найшвидше, ніж тільки можливо.
А як бути з графіками з негативними циклами, які дослідники вирішили проігнорувати на початку? Додавши останні штрихи до свого алгоритму найкоротших шляхів, вони показали, що він також може працювати як швидкий алгоритм для точного визначення негативних циклів. Практично жоден графік не був поза його досяжністю.
Паралельні шляхи
Бернштейн представив результат команди на конференції «Основи комп’ютерних наук» у 2022 році, де їхній рукопис із описом нового алгоритму був визнаний однією з двох найкращих робіт. The інший папір також описав новий алгоритм із майже лінійним часом для вирішення давньої проблеми в теорії графів.
Цей алгоритм, розроблений Пробстом Ґутенбергом та п’ятьма іншими дослідниками, вирішував загальнішу проблему під назвою «потік мінімальних витрат», метою якої є оптимізація транспортування багатьма паралельними шляхами, і кожне ребро має максимальну пропускну здатність, а також відповідну вартість. . Проблеми найкоротших шляхів є окремим випадком потоку мінімальних витрат, тому новий алгоритм потоку мінімальних витрат також можна використовувати для вирішення проблеми найкоротших шляхів із від’ємною вагою за майже лінійний час, хоча й із радикально іншим підходом.
Команда, яка працює над потоком з мінімальними витратами, розробила свій швидкий алгоритм загального призначення, використовуючи складний синтез методів комбінаторної та безперервної оптимізації, що робить його громіздким на практиці, принаймні зараз. Комбінаторний алгоритм Бернштейна та його колег, хоча і обмежений більш конкретною проблемою, досягає свого майже лінійного часу виконання без шкоди для простоти.
«Це таке дивовижне в цьому документі», — сказав Пробст Гутенберг. «Ви можете пояснити це студенту бакалаврату, а також можете реалізувати це на своєму комп’ютері».
У результаті цей новий алгоритм відродив інтерес до комбінаторних підходів до інших проблем теорії графів. Залишається побачити, які проблеми можна швидко вирішити за допомогою суто комбінаторних алгоритмів, а які справді потребують безперервних методів, розроблених за останні 20 років.
«Це філософське питання, яке я намагаюся зрозуміти», — сказав Нанонгкай. «Ця проблема найкоротшого шляху дає надію».
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://www.quantamagazine.org/finally-a-fast-algorithm-for-shortest-paths-on-negative-graphs-20230118/
- 20 роки
- 2021
- 2022
- a
- МЕНЮ
- За
- рахунки
- досягнутий
- через
- насправді
- ациклічні
- пристосовувати
- Додає
- після
- проти
- алгоритм
- алгоритми
- ВСІ
- вже
- завжди
- честолюбний
- Древній
- та
- Інший
- крім
- підхід
- підходи
- навколо
- асоційований
- назад
- Balance
- заснований
- оскільки
- ставати
- перед тим
- почалася
- Вірити
- Bernstein
- КРАЩЕ
- між
- За
- Великий
- запозичувати
- Філія
- Перерва
- ламається
- Зламаний
- обчислює
- званий
- потужність
- випадок
- випадків
- певний
- СНД
- близько
- тісно
- кластер
- співпрацював
- колеги
- поєднання
- об'єднання
- Приходити
- обчислення
- комп'ютер
- Інформатика
- Концентрований
- конференція
- підключений
- З'єднувальний
- Вважати
- Складається
- безперервний
- Коштувати
- може
- створювати
- Поточний
- В даний час
- Вирізати
- циклів
- DAG
- десятиліття
- вирішене
- рішення
- доставка
- описувати
- призначення
- певний
- розвивати
- розвиненою
- DID
- Відмінності
- різний
- важкий
- прямий
- напрям
- відкритий
- відстань
- Ні
- Не знаю
- вниз
- водій
- нідерландська
- кожен
- заробляти
- легше
- Найпростіший
- край
- ефекти
- усунутий
- усувається
- включений
- повністю
- по суті
- оцінити
- Оцінки
- Навіть
- НІКОЛИ
- все
- існуючий
- існує
- experts
- Пояснювати
- Дослідження
- надзвичайно
- фасилітувати
- вентилятор
- ШВИДКО
- швидкий
- Федеральний
- кілька
- остаточний
- в кінці кінців
- знайти
- виявлення
- знахідки
- Перший
- перший раз
- потік
- Потоки
- Сфокусувати
- знайдений
- Підвалини
- Freedom
- від
- повністю
- далі
- ГАЗ
- Загальне
- Головна мета
- Німеччина
- отримати
- даний
- дає
- Go
- мета
- графік
- графіки
- Жадібний
- гарантований
- Гутенберг
- Половина
- жменя
- обробляти
- сталося
- Тема
- допомога
- вище
- надія
- Як
- How To
- Однак
- HTML
- HTTPS
- ідеї
- ідентифікувати
- здійснювати
- in
- Дохід
- незалежний
- індивідуальний
- інформація
- натхненний
- екземпляр
- Інститут
- інтерес
- Винайдений
- залучати
- IT
- ітерації
- приєднатися
- приєднання
- ключ
- Дитина
- Знати
- відомий
- великий
- більше
- рівень
- життя
- обмеженою
- рамки
- зв'язку
- місцевий
- Довго
- багато часу
- давній
- довше
- подивитися
- made
- зробити
- РОБОТИ
- Робить
- манера
- багато
- карта
- матч
- математичний
- Макс
- максимальний
- засоби
- Між тим
- Злиття
- методика
- може бути
- сучасний
- гроші
- більше
- рухається
- переміщення
- майже
- негативний
- сусіди
- мережі
- мережу
- Нові
- наступний
- вузол
- вузли
- поняття
- номер
- номера
- зсув
- ONE
- відкрити
- операції
- оптимізація
- Оптимізувати
- оригінал
- виникла
- Інше
- інші
- інакше
- пакети
- спаровування
- Папір
- документи
- Паралельні
- частина
- частини
- Проходження
- Минуле
- шлях
- Пенсільванія
- вибирати
- plato
- Інформація про дані Платона
- PlatoData
- точка
- точок
- позитивний
- можливостей
- це можливо
- практично
- практика
- представлений
- Проблема
- проблеми
- процес
- Прибуток
- прибутковий
- прогрес
- проект
- власність
- доведений
- забезпечує
- суто
- Поклавши
- Квантамагазин
- питання
- швидко
- радикально
- випадковий
- швидко
- досягати
- реальний
- зрозумів,
- причина
- розумний
- нещодавно
- зменшити
- відображати
- райони
- щодо
- залишився
- залишається
- повторний
- ПОВТОРНО
- представляти
- представлений
- представляє
- вимагати
- вимагається
- дослідження
- Дослідники
- відповідальний
- обмежений
- результат
- в результаті
- Винагороджувати
- дорога
- Маршрут
- прогін
- біг
- Rutgers University
- жертвуючи
- Зазначений
- то ж
- наука
- вчений
- Вчені
- Грати короля карти - безкоштовно Nijumi логічна гра гри
- розділам
- сегмент
- сегменти
- сенс
- Серія
- Врегульований
- кілька
- Короткий
- аналогічний
- простий
- простота
- з
- один
- Розмір
- невеликий
- So
- ВИРІШИТИ
- Розв’язування
- деякі
- Хтось
- що в сім'ї щось
- десь
- складний
- Source
- Джерела
- спеціальний
- конкретний
- швидкість
- ОРФОГРАФІЯ
- розкол
- standard
- старт
- почалася
- Починаючи
- Крок
- Як і раніше
- Історія
- Стратегія
- потік
- вулиця
- структура
- студент
- такі
- літо
- Швейцарський
- Приймати
- приймає
- взяття
- команда
- методи
- Технологія
- розповідає
- підручник
- Команда
- Графік
- Джерело
- їх
- речі
- три
- через
- час
- до
- разом
- занадто
- тема
- зворушливий
- перевезення
- Подорож
- біда
- правда
- ПЕРЕГЛЯД
- Опинився
- що лежить в основі
- розуміти
- університет
- оновлення
- використання
- відпустку
- фактично
- хотів
- вода
- webp
- вага
- Що
- Чи
- який
- ВООЗ
- в
- без
- Work
- робочий
- працює
- б
- років
- Ти
- вашу
- зефірнет
- Цюріх