Implementace řešiče pro úlohy kvadratického programování s podporou GPU

Místo
Anotace

Kvadratické programování (QP) představuje jednu z nejdůležitějších tříd konvexních optimalizačních úloh. Jedná se o problémy, kde je cílová funkce kvadratická a omezení jsou lineární. Přestože se na první pohled jedná o jednoduché rozšíření lineárního programování (LP), QP má výrazně širší modelovací schopnosti a v praxi se využívá v celé řadě klíčových oblastí:

  • Ve strojovém učení se QP objevuje například ve formě Support Vector Machines (SVM), kde umožňuje efektivní trénování robustních klasifikátorů.
  • V telekomunikaci a síťové optimalizaci - optimalizace přenosových výkonů, rozvrhování v síti, alokace kanálů, interference management.
  • V optimalizace výroby a logistice - optimalizace tras s penalizací změn (např. robustní optimalizace rozvozu), skladování a distribuce – penalizace přetížení nebo odchylek od cílových zásob.
  • V ekonomii a financích modeluje rozložení investic s ohledem na minimalizaci rizika.
  • Ve vědeckých výpočtech se používá pro stabilizaci inverzních problémů nebo při aproximaci řešení parciálních diferenciálních rovnic pomocí Galerkinovy metody.
  • V robotice - slouží pro optimalizaci pohybu (trajectory planning) – hladké trajektorie s minimalizací zrychlení a s omezeními.

Síla QP spočívá v tom, že dokáže zachytit kompromis mezi dvěma cíli – například minimalizací chyby a velikostí řešení (tzv. Tichonova regularizace) – pomocí kvadratické penalizace. Tato vlastnost jej činí ideálním nástrojem pro široké spektrum inženýrských a vědeckých problémů.

Moderní kvadratické úlohy však často obsahují tisíce až miliony proměnných, zejména v kontextu datových úloh nebo online řízení. Proto je klíčové vyvíjet škálovatelné a efektivní algoritmy, které umožní jejich řešení i na moderních výpočetních platformách, jako jsou grafické procesory (GPU). Zvlášť vhodné jsou metody prvního řádu, jako je Primal–Dual Hybrid Gradient (PDHG), které umožňují iterativní řešení i velmi rozsáhlých úloh s minimálními nároky na paměť.

Cíle práce (konkrétní zadání se domluví individuálně se studentem):

  • Seznámit se s PDHG variantou pro úlohu kvadratického programování a prostudovat teorii týkající se PDHG metody.
  • Seznámit se současnou implementací PDHG pro lineární programování v knihovně TNL.
  • Rozšířit tento řešič o možnost řešení úloh QP.
  • Otestovat řešič na vhodné úloze, např. SVM pro klasifikaci dat.
  • Porovnat výsledný řešič s alternativními knihovnami.

Přínosy pro studenta:

  1. Získá znalosti o důležité, prakticky používané oblasti optimalizace.
  2. Získá zkušenosti s implementací numerických algoritmů v jazyce C++ a moderními vlastnostmi tohoto jazyka.
  3. Bude pracovat na tématu, které má reálné využití ve vědě i průmyslu.

Zdroje:

  1. Lu, Haihao, and Jinwen Yang. "A practical and optimal first-order method for large-scale convex quadratic programming." arXiv preprint arXiv:2311.07710 (2023).
  2. Applegate, David, et al. "Practical large-scale linear programming using primal-dual hybrid gradient." Advances in Neural Information Processing Systems 34 (2021): 20243-20257.
KOS