{"id":2492,"date":"2024-04-19T19:26:53","date_gmt":"2024-04-19T19:26:53","guid":{"rendered":"https:\/\/elo-x.eu\/?p=2492"},"modified":"2024-05-31T14:19:07","modified_gmt":"2024-05-31T14:19:07","slug":"algorithms-for-solving-hard-optimization-problems","status":"publish","type":"post","link":"https:\/\/elo-x.eu\/?p=2492","title":{"rendered":"Algorithms for solving hard optimization problems"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2492\" class=\"elementor elementor-2492\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-90bc3ec elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"90bc3ec\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f2b556f\" data-id=\"f2b556f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-86c9a5c elementor-widget elementor-widget-heading\" data-id=\"86c9a5c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-xl\">Algorithms for solving hard optimization problems<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1085760 my-divider elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"1085760\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-beeb054 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"beeb054\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-38efd90\" data-id=\"38efd90\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a52d48f elementor-widget elementor-widget-text-editor\" data-id=\"a52d48f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #352a87;\"><span style=\"font-size: 24px;\">Andrea Ghezzi,\u00a0University of Freiburg<br \/><\/span><\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-31bbb35 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"31bbb35\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d843487\" data-id=\"d843487\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-391b193 elementor-widget elementor-widget-text-editor\" data-id=\"391b193\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In my research, I focus on optimization methods and algorithms that aim to &#8220;solve&#8221; problems in different classes. All these problems share one thing, they are terribly hard to solve. On the one hand, we investigate algorithms for computing solutions of mixed-integer nonlinear programs (MINLPs), where the complexity lies in the combination of nonlinear and combinatorial optimization. On the other hand, we regard nonlinear programs (NLPs) that arise from nonlinear model predictive control (NMPC). Here the major hurdle is to solve NLPs online and on resourced-constrained hardware.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6c37975 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6c37975\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2c92c57\" data-id=\"2c92c57\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b7a88c2 my-divider elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"b7a88c2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6f16671 elementor-widget elementor-widget-heading\" data-id=\"6f16671\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Solving mixed-integer nonlinear programs<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-80ad4c4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"80ad4c4\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-66cbae4\" data-id=\"66cbae4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-82d499d elementor-widget elementor-widget-text-editor\" data-id=\"82d499d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>[1] Ghezzi*, Van Roy*, Sager, Diehl, &#8220;A sequential Benders-based mixed-integer quadratic programming algorithm&#8221; <em>&#8211; submitted, 2024<\/em><\/p>\n<p>[2] Ghezzi, Simpson, B\u00fcrger, Zeile, Sager, Diehl, &#8220;A Voronoi-based mixed-Integer Gauss-Newton algorithm for MINLP Arising in optimal control&#8221;, ECC 2023&nbsp;<\/p>\n<p><em>* Equal contribution<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8722eb8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8722eb8\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-72a2899\" data-id=\"72a2899\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-957f7c1 elementor-widget elementor-widget-text-editor\" data-id=\"957f7c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u00a0<\/p><p>For continuous decision spaces, nonlinear programs (NLPs) can be efficiently solved via sequential quadratic programming (SQP) and, more generally, sequential convex programming (SCP). These algorithms linearize only the nonlinear equality constraints and keep the outer convex structure of the problem intact. We aim to develop algorithms that extend the SQP\/SCP methodology to mixed-integer nonlinear programs (MINLPs) and leverage the availability of efficient mixed-integer quadratic programming (MIQP) solvers.\u00a0<\/p><p>Our latest algorithm, S-B-MIQP, presented in [1], is a heuristic method without any global optimality guarantee, it converges to the exact integer solution when applied to convex MINLP with a linear outer structure. The conducted numerical experiments on existing benchmarks demonstrate that the proposed algorithm is competitive with other open-source solvers for MINLP. Finally, we demonstrate via numerical simulations that the developed algorithm work out-of-the-box for mixed-integer optimal control problems (MIOCPs) transcribed into MINLPs via direct methods. These problems are characterized by numerous nonlinear equality constraints, a major hurdle for generic MINLP solvers.<\/p><p><b>Checkout our open-source MINLP toolbox package:\u00a0<\/b><a href=\"https:\/\/github.com\/minlp-toolbox\/minlp-algorithms\">minlp-toolbox<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-73c1594\" data-id=\"73c1594\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-705973c elementor-widget__width-initial elementor-widget elementor-widget-image\" data-id=\"705973c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"525\" height=\"263\" src=\"https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/benchmark_comb_nonconv-1024x512.png\" class=\"attachment-large size-large wp-image-2694\" alt=\"\" srcset=\"https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/benchmark_comb_nonconv-1024x512.png 1024w, https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/benchmark_comb_nonconv-300x150.png 300w, https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/benchmark_comb_nonconv-768x384.png 768w, https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/benchmark_comb_nonconv-1536x768.png 1536w, https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/benchmark_comb_nonconv-2048x1024.png 2048w\" sizes=\"100vw\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Benchmarking S-B-MIQP [1] with other open-source general purpose MINLP solvers on a subset of MINLP instances contained in the MINLPLib.<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3d736fa elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3d736fa\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3aee274\" data-id=\"3aee274\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0393100 my-divider elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"0393100\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2d893c3 elementor-widget elementor-widget-heading\" data-id=\"2d893c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Imitation learning from nonlinear model predictive control<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3d870f3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3d870f3\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2ecb947\" data-id=\"2ecb947\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d38de93 elementor-widget elementor-widget-text-editor\" data-id=\"d38de93\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>[3] Ghezzi*, Hoffman*, Frey, Boedecker, Diehl, &#8220;Imitation Learning from Nonlinear MPC via the Exact Q-Loss and its Gauss-Newton Approximation&#8221;, CDC 2023<\/p><p><em>* Equal contribution<\/em><br><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fff9796 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fff9796\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-24920a1\" data-id=\"24920a1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5a37d73 elementor-widget elementor-widget-text-editor\" data-id=\"5a37d73\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>We proposed a novel loss function for imitation learning from NMPC that &#8230;&nbsp;<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-643dfc9\" data-id=\"643dfc9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ac5f642 elementor-widget__width-initial elementor-widget elementor-widget-image\" data-id=\"ac5f642\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"525\" height=\"213\" src=\"https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-19-at-15.07.25-1024x416.png\" class=\"attachment-large size-large wp-image-2695\" alt=\"\" srcset=\"https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-19-at-15.07.25-1024x416.png 1024w, https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-19-at-15.07.25-300x122.png 300w, https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-19-at-15.07.25-768x312.png 768w, https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-19-at-15.07.25-1536x624.png 1536w, https:\/\/elo-x.eu\/wp-content\/uploads\/2024\/04\/Screenshot-2024-04-19-at-15.07.25-2048x832.png 2048w\" sizes=\"100vw\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Comparing learned policies against MPC policy on controlling an inverted pendulum on a cart (cartpole). Policies: left plot from top to bottom: Behavioral Cloning, exact Q-loss, approximated Q-loss, MPC. Left plot: policy rollout - applied control actions. Right plot: angular velocity - constraint satisfaction. <\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Algorithms for solving hard optimization problems Andrea Ghezzi,\u00a0University of Freiburg In my research, I focus on optimization methods and algorithms that aim to &#8220;solve&#8221; problems in different classes. All these problems share one thing, they are terribly hard to solve. On the one hand, we investigate algorithms for computing solutions of mixed-integer nonlinear programs (MINLPs), &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/elo-x.eu\/?p=2492\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Algorithms for solving hard optimization problems&#8221;<\/span><\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[],"class_list":["post-2492","post","type-post","status-publish","format-standard","hentry","category-projects"],"_links":{"self":[{"href":"https:\/\/elo-x.eu\/index.php?rest_route=\/wp\/v2\/posts\/2492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elo-x.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/elo-x.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/elo-x.eu\/index.php?rest_route=\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/elo-x.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2492"}],"version-history":[{"count":43,"href":"https:\/\/elo-x.eu\/index.php?rest_route=\/wp\/v2\/posts\/2492\/revisions"}],"predecessor-version":[{"id":2698,"href":"https:\/\/elo-x.eu\/index.php?rest_route=\/wp\/v2\/posts\/2492\/revisions\/2698"}],"wp:attachment":[{"href":"https:\/\/elo-x.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/elo-x.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2492"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/elo-x.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}