{"id":1379,"date":"2023-06-01T08:30:20","date_gmt":"2023-06-01T08:30:20","guid":{"rendered":"https:\/\/nag.com\/?page_id=1379"},"modified":"2024-12-16T13:36:04","modified_gmt":"2024-12-16T13:36:04","slug":"mixed-integer-nonlinear-programming-minlp","status":"publish","type":"page","link":"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/","title":{"rendered":"Mixed Integer Nonlinear Programming (MINLP)"},"content":{"rendered":"\n<div class=\"gbc-title-banner ta ta-lg ta-xl\" style='background-color: #082d48ff; color: #ffffffff; border-radius: 0px; '>\n    <div class=\"container\" style='border-radius: 0px; '>\n        <div class=\"row justify-content--center\" style='color: #ffffffff;'>\n            <div class=\"col-12\"  >\n                <div class=\"wrap pv-4 \" style=\"0px\">\n                                <div class=\"col-12 col-md-12 col-lg-10 col-xl-8  banner-content\"  >\n    \n                                             <h1>Mixed Integer Nonlinear Programming (MINLP)<\/h1>\n                    \n                    <div class=\"mt-1 mb-1 content\"><\/div>\n\n                    \n                                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<!-- Spacer -->\n<div class=\"pt-4 pt-lg-4 pt-xl-4\" ><\/div>\n\n<div class=\"container content-area-default \">\n    <div class=\"row justify-content--center\">\n        <div class=\"col-12 col-md-12 col-lg-10 col-xl-8\">\n            <p>Mixed\u00a0integer programming problems are defined as those where some or all of the decision variables are only allowed to be integers. This is typically required in a range of real world applications in allocation and planning problems where the discrete variables represent quantities, such as the number of individual shares to be held, or the number of pipelines need, or the number of oil-spill cleaning locations to be deployed, and require integer values for the solution.<\/p>\n<p>Many applications lead to mathematical models which can be written as Mixed Integer Linear Programming (MILP) or as Mixed-Integer Quadratic Programming (MIQP) problems \u2013 that is problems with linear constraints and with linear or with quadratic objective functions. However, for some this might not be enough to capture the key characteristics of a real problem. In these cases fully nonlinear models are needed \u2013 so a solver has to handle the combinatorial difficulty of optimizing over discrete variable sets together with the issues of handling nonlinear functions.<\/p>\n<p>Such models, where a MINLP solver is useful, arise in scientific, engineering, and financial applications. Examples can be found in many areas including:<\/p>\n<ul>\n<li>portfolio optimization<\/li>\n<li>design of distribution networks<\/li>\n<li>flight path optimization<\/li>\n<li>optimal response to catastrophic oil spills<\/li>\n<li>protein folding<\/li>\n<\/ul>\n<p><span data-teams=\"true\"><i>n<\/i>AG introduces at Mark 30.3 a new interface <a href=\"_wp_link_placeholder\" data-wplink-edit=\"true\">handle_solve_minlp<\/a> (h02dd) for the MINLP solver in Chapter H of the <em>n<\/em>AG Library, integrated to the <i>n<\/i>AG Optimization Modelling Suite. This new routine gives access to all of the suite facilities and uses the same interface as all the compatible solvers, simplifying experimentation significantly. The solver is based on research by Prof. Klaus Schittkowski of University of Bayreuth.<\/span> The underlying algorithm is a modified Sequential quadratic programming (SQP) stabilised by using trust regions. It can deal with both convex and nonconvex problems and problems with possibly expensive function evaluations. In addition, it is not assumed that the mixed integer problem has to be relaxable; the function evaluations are requested only at integral points. This may be considered as a distinctive feature of the solver since the usual approaches rely on the relaxation of the discrete variables.<\/p>\n<p>(Footnote: If optimization solvers are required for mathematical models that involve only continuous variables then the algorithms in Chapters E04 or E05 of the <span class=\"nag-n-override\" style=\"margin-left: 0 !important;\"><i>n<\/i><\/span>AG Library should be preferred.)<\/p>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Spacer -->\n<div class=\"pt-4 pt-lg-4 pt-xl-4\" ><\/div>","protected":false},"excerpt":{"rendered":"<p>Mixed\u00a0integer programming problems are defined as those where some or all of the decision variables are only allowed to be integers. This is typically required in a range of real world applications in allocation and planning problems where the discrete variables represent quantities, such as the number of individual shares to be held, or the number of pipelines need, or the number of oil-spill cleaning locations to be deployed, and require integer values for the solution.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"content-type":"","footnotes":""},"class_list":["post-1379","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Mixed Integer Nonlinear Programming (MINLP) - nAG<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mixed Integer Nonlinear Programming (MINLP) - nAG\" \/>\n<meta property=\"og:description\" content=\"Mixed\u00a0integer programming problems are defined as those where some or all of the decision variables are only allowed to be integers. This is typically required in a range of real world applications in allocation and planning problems where the discrete variables represent quantities, such as the number of individual shares to be held, or the number of pipelines need, or the number of oil-spill cleaning locations to be deployed, and require integer values for the solution.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/\" \/>\n<meta property=\"og:site_name\" content=\"nAG\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-16T13:36:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nag.com\/wp-content\/uploads\/2024\/02\/NAG-Logo-White-On-Blue.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"12770\" \/>\n\t<meta property=\"og:image:height\" content=\"4353\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@NAGTalk\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/\",\"url\":\"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/\",\"name\":\"Mixed Integer Nonlinear Programming (MINLP) - nAG\",\"isPartOf\":{\"@id\":\"https:\/\/nag.com\/#website\"},\"datePublished\":\"2023-06-01T08:30:20+00:00\",\"dateModified\":\"2024-12-16T13:36:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/nag.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mixed Integer Nonlinear Programming (MINLP)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nag.com\/#website\",\"url\":\"https:\/\/nag.com\/\",\"name\":\"NAG\",\"description\":\"Robust, trusted numerical software and computational expertise.\",\"publisher\":{\"@id\":\"https:\/\/nag.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nag.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nag.com\/#organization\",\"name\":\"Numerical Algorithms Group\",\"alternateName\":\"NAG\",\"url\":\"https:\/\/nag.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/nag.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png\",\"contentUrl\":\"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png\",\"width\":1244,\"height\":397,\"caption\":\"Numerical Algorithms Group\"},\"image\":{\"@id\":\"https:\/\/nag.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/NAGTalk\",\"https:\/\/www.linkedin.com\/company\/nag\/\",\"https:\/\/www.youtube.com\/user\/NumericalAlgorithms\",\"https:\/\/github.com\/numericalalgorithmsgroup\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mixed Integer Nonlinear Programming (MINLP) - nAG","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/","og_locale":"en_US","og_type":"article","og_title":"Mixed Integer Nonlinear Programming (MINLP) - nAG","og_description":"Mixed\u00a0integer programming problems are defined as those where some or all of the decision variables are only allowed to be integers. This is typically required in a range of real world applications in allocation and planning problems where the discrete variables represent quantities, such as the number of individual shares to be held, or the number of pipelines need, or the number of oil-spill cleaning locations to be deployed, and require integer values for the solution.","og_url":"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/","og_site_name":"nAG","article_modified_time":"2024-12-16T13:36:04+00:00","og_image":[{"width":12770,"height":4353,"url":"https:\/\/nag.com\/wp-content\/uploads\/2024\/02\/NAG-Logo-White-On-Blue.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@NAGTalk","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/","url":"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/","name":"Mixed Integer Nonlinear Programming (MINLP) - nAG","isPartOf":{"@id":"https:\/\/nag.com\/#website"},"datePublished":"2023-06-01T08:30:20+00:00","dateModified":"2024-12-16T13:36:04+00:00","breadcrumb":{"@id":"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/nag.com\/mixed-integer-nonlinear-programming-minlp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nag.com\/"},{"@type":"ListItem","position":2,"name":"Mixed Integer Nonlinear Programming (MINLP)"}]},{"@type":"WebSite","@id":"https:\/\/nag.com\/#website","url":"https:\/\/nag.com\/","name":"NAG","description":"Robust, trusted numerical software and computational expertise.","publisher":{"@id":"https:\/\/nag.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nag.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/nag.com\/#organization","name":"Numerical Algorithms Group","alternateName":"NAG","url":"https:\/\/nag.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nag.com\/#\/schema\/logo\/image\/","url":"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png","contentUrl":"https:\/\/nag.com\/wp-content\/uploads\/2023\/11\/NAG-Logo.png","width":1244,"height":397,"caption":"Numerical Algorithms Group"},"image":{"@id":"https:\/\/nag.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/NAGTalk","https:\/\/www.linkedin.com\/company\/nag\/","https:\/\/www.youtube.com\/user\/NumericalAlgorithms","https:\/\/github.com\/numericalalgorithmsgroup"]}]}},"_links":{"self":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/pages\/1379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/comments?post=1379"}],"version-history":[{"count":3,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/pages\/1379\/revisions"}],"predecessor-version":[{"id":54058,"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/pages\/1379\/revisions\/54058"}],"wp:attachment":[{"href":"https:\/\/nag.com\/wp-json\/wp\/v2\/media?parent=1379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}