{"id":2465,"date":"2019-12-20T14:53:28","date_gmt":"2019-12-20T05:53:28","guid":{"rendered":"https:\/\/julialang.kr\/?p=2465"},"modified":"2019-12-20T14:53:30","modified_gmt":"2019-12-20T05:53:30","slug":"julia-julia-programming-for-operations-research-chap8-nonlinear-optimization-problems","status":"publish","type":"post","link":"https:\/\/julialang.kr\/?p=2465","title":{"rendered":"[Julia] Julia Programming for Operations Research : Chap8 &#8211; Nonlinear Optimization Problems"},"content":{"rendered":"\n<p>\ube44\uc120\ud615 \ubc29\uc815\uc2dd\uc758 \ucd5c\uc801\ud654 \ubb38\uc81c\ub97c \ub2e4\ub8e8\uace0 \uc788\ub2e4.<\/p>\n\n\n\n<p><strong>\uc608\uc81c\ub294 Jupyter notebook \uc785\ub2c8\ub2e4.<\/strong><\/p>\n\n\n\n<p><strong>\ud30c\uc77c\uc740 \u2013>\u00a0<a href=\"https:\/\/julialang.kr\/wp-content\/uploads\/2019\/12\/chap08_Nonlinear_Optimization_Problems.html\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"\uc5ec\uae30 (\uc0c8\ud0ed\uc73c\ub85c \uc5f4\uae30)\">\uc5ec\uae30<\/a><\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nonlinear Optimizer Solvers<\/h3>\n\n\n\n<p>\ud658\uacbd<\/p>\n\n\n\n<ul><li> Julia v1.3.0 , JuMP v0.20.1, Ipopt v0.6.1<\/li><li>KNITRO v0.8.0 (<a href=\"https:\/\/github.com\/JuliaOpt\/KNITRO.jl\">https:\/\/github.com\/JuliaOpt\/KNITRO.jl<\/a>)<\/li><li>knitro-12.1.1-Linux-64 (<a href=\"https:\/\/www.artelys.com\/solvers\/knitro\/\">https:\/\/www.artelys.com\/solvers\/knitro\/<\/a>)<\/li><li>SCIP (<a href=\"https:\/\/scip.zib.de\/\">https:\/\/scip.zib.de\/<\/a>) <\/li><\/ul>\n\n\n\n<p>\uc5ec\uae30\uc11c \uc0ac\uc6a9\ub41c Non-Linear Solver\ub294 <\/p>\n\n\n\n<ul><li>Knitro &#8211; \uc720\ub8cc\ubc84\uc804, \ud559\uc0dd\ubc84\uc804\uc740 \uc81c\ud55c\ub41c \uc6a9\ub7c9\uc73c\ub85c 6\uac1c\uc6d4 , \ud480 \uae30\ub2a5\uc73c\ub85c 1\uac1c\uc6d4, Nonlinear Objective, Nonlinear Constraint, Mixed Integer-NLP\ub4f1\uc744 \uc9c0\uc6d0<\/li><li>Ipop &#8211; \uc624\ud508\uc18c\uc2a4, Nonlinear Objective, Nonlinear Constraint \uc9c0\uc6d0, Mixed Integer-NLP \ubbf8\uc9c0\uc6d0<\/li><li>SCIP &#8211; \uc624\ud508\uc18c\uc2a4, \uc0c1\uc5c5\uc801\uc6a9\ub3c4\ub294 \ubcc4\ub3c4 \ud611\uc758, Nonlinear Objective \ubbf8\uc9c0\uc6d0, Nonlinear Constraint, Mixed Integer-NLP \uc9c0\uc6d0<\/li><li>Bonmin,couenne \ub4f1\uc740 \uc5d0\ub7ec\ubc1c\uc0dd\uc73c\ub85c \ud14c\uc2a4\ud2b8 \ubabb\ud568<\/li><\/ul>\n\n\n\n<ul><li>https:\/\/ampl.com\/products\/solvers\/open-source\/<\/li><li>\uc704 url\uc5d0\uc11c bonmin,couenne \uc744 \ubc1b\uc544 \uc555\ucd95\uc744 \ud480\uace0 \uc801\ub2f9\ud55c \ud3f4\ub354 \uc608\ub97c\ub4e4\uc5b4 \/home\/ampl\uc5d0 \uc555\ucd95\uc744 \ud47c \ud30c\uc77c\uc744 \ubcf5\uc0ac\ud55c\ub2e4.<\/li><li>Julia v1.3.0 , JuMP v0.20.1, Ipopt v0.6.1<\/li><li>KNITRO v0.8.0 (https:\/\/github.com\/JuliaOpt\/KNITRO.jl)<\/li><li>knitro-12.1.1-Linux-64 (https:\/\/www.artelys.com\/solvers\/knitro\/)<\/li><li>SCIP (https:\/\/scip.zib.de\/)<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">KNITRO<\/h4>\n\n\n\n<ul><li>Nonliner optimizer (commercial)<\/li><li>knitro package\uac00 \uc124\uce58 \ub418\uc5b4 \uc788\uace0 \ub77c\uc774\uc120\uc2a4\uac00 \uc788\uc5b4\uc57c \ub3d9\uc791\ud568<\/li><li>\ub77c\uc774\uc120\uc2a4\ub294 \ud559\uc0dd\uc6a9\uc73c\ub85c \ubc1b\uc73c\uba74 \uc81c\ud55c\ub41c \ud06c\uae30\ub85c 6\uac1c\uc6d4\uac04 \uc0ac\uc6a9\uac00\ub2a5 \ud558\uba70<\/li><li>\ud480\uae30\ub2a5\uc740 1\uac1c\uc6d4 \uc0ac\uc6a9 \uac00\ub2a5\ud558\ub2e4.<\/li><li>Mixed Integer Nonlinear \ubb38\uc81c\ub97c \uc5b4\ub290 \uc815\ub3c4 \ud480 \uc218 \uc788\uc74c<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">SCIP<\/h4>\n\n\n\n<ul><li>SCIP julia interface\ub97c \uc124\uce58 \ud558\uae30\uc804\uc5d0 scip \ud328\ud0a4\uc9c0\uac00 \uba3c\uc800 \uc124\uce58 \ub418\uc5b4 \uc788\uc5b4\uc57c \ud55c\ub2e4.<\/li><li>\ud544\uc694\uc2dc (\uc18c\uc2a4 \ucef4\ud30c\uc77c\uc2dc) \uc544\ub798 \ud328\ud0a4\uc9c0\ub97c \uba3c\uc800 \uc124\uce58 \ud55c\ub2e4.<\/li><li>sudo apt-get install libreadline-dev <\/li><li>sudo apt install libgmp-dev<\/li><li>scip \ud328\ud0a4\uc9c0 : https:\/\/scip.zib.de\/#scipoptsuite<\/li><li>\ub9ac\ub205\uc2a4\uc758 \uacbd\uc6b0 \uc704 \uc0ac\uc774\ud2b8\uc5d0\uc11c \uc544\ub798 \ud30c\uc77c\uc744 \ubc1b\uc544 \uc124\uce58 \ud55c\ub2e4.<\/li><li>sudo dpkg -i SCIPOptSuite-6.0.2-Linux.deb<\/li><li>scip \ud328\ud0a4\uc9c0\uc758 lib,bin,include \ud30c\uc77c\ub4e4\uc740 &#8220;\/usr&#8221; \uc544\ub798 \uc124\uce58\ub41c\ub2e4.<\/li><li>julia\uc5d0\uc11c SCIP Interface \uc124\uce58\uc804\uc5d0 \uc544\ub798\uc640 \uac19\uc740 \ud658\uacbd \ubcc0\uc218\ub97c \uc124\uc815 \ud574\uc57c \ud55c\ub2e4.\n<ul><li>export SCIPOPTDIR=\/usr<\/li><li>.bashrc \ud30c\uc77c\uc5d0 \ub123\uc5b4 \uc900\ub2e4<\/li><li>source .bashrc<\/li><\/ul><\/li><li>\ud658\uacbd \ubcc0\uc218 \uc124\uc815 \uae4c\uc9c0 \ub05d\ub0ac\uc73c\uba74  https:\/\/github.com\/mrchaos\/SCIP.jl \uc5d0\uc11c SCIP interface \ud328\ud0a4\uc9c0\ub97c \uc124\uce58 \ud55c\ub2e4<\/li><li>https:\/\/github.com\/SCIP-Interfaces\/SCIP.jl \uc5d0 \uc694\uccad\ud55c \ub0b4\uc6a9\uc774 \ubc18\uc601\ub41c \uacbd\uc6b0\ub294 \uc774 \uc0ac\uc774\ud2b8\uc5d0\uc11c \ud558\uba74\ub41c\ub2e4.<\/li><li>scip julia interface site(forked and updated) : https:\/\/github.com\/mrchaos\/SCIP.jl\n<ul><li>main\uc5d0 merge \uc694\uccad\uc911 (2019.12.19) <\/li><li>\uba87\uac1c\uc758 \uc8fc\uc694 \ud30c\uc77c\uc774 \uc5c5\ub370\uc774\ud2b8 \ub428<\/li><li>\uc544\ub798 SCIP\uc608\uc81c\ub97c \uc131\uacf5\uc801\uc73c\ub85c \uc2e4\ud589 \ud558\uae30 \uc704\ud574\uc11c\ub294 mrchaos \uc0ac\uc774\ud2b8\uc758 SCIP\ub97c \uc124\uce58 \ud574\uc57c \ub41c\ub2e4.<\/li><li>Pkg&gt; add https:\/\/github.com\/mrchaos\/SCIP.jl <\/li><li>Julia&gt; using SCIP<\/li><li>\uc544\ubb34 \ubb38\uc81c \uc5c6\ub2e4\uba74 OK!<\/li><\/ul><\/li><li>Origianl scip julia interface site : https:\/\/github.com\/SCIP-Interfaces\/SCIP.jl<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Ipopt<\/h3>\n\n\n\n<ul><li>Nonliner optimizer (opensource)<\/li><li>Mixed Integer Nonlinear\ub294 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc74c<\/li><li>import Pkg; Pkg.add(&#8220;SCIP&#8221;)<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">bonmin,couenne<\/h3>\n\n\n\n<ul><li>Nonliner optimizer (opensource)<\/li><li>Mixed Integer Nonlinear \ubb38\uc81c\ub97c \uc5b4\ub290\uc815\ub3c4 \ud480 \uc218 \uc788\ub2e4\uace0 \ud558\ub294\ub370 \uc81c\ub300\ub85c \ub3d9\uc791\ud558\uc9c0 \uc54a\uc544 \ud14c\uc2a4\ud2b8 \ubabb\ud568<\/li><li>\uc81c\ub300\ub85c \ub3d9\uc791 \ud558\uc9c0 \uc54a\uc74c<\/li><li>AmplNLWriter v0.5.0<\/li><li>\uc544\ub798 \uc608\uc81c \uc18c\uc2a4\uc5d0\uc11c \uc0ac\uc6a9\ud55c optimizer\ub294 Ipopt\uc774\ub2e4. bonmin\uc774 \uc798 \ub3d9\uc791 \ud558\uc9c0 \uc54a\uc74c<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\ube44\uc120\ud615 \ubc29\uc815\uc2dd\uc758 \ucd5c\uc801\ud654 \ubb38\uc81c\ub97c \ub2e4\ub8e8\uace0 \uc788\ub2e4. \uc608\uc81c\ub294 Jupyter notebook \uc785\ub2c8\ub2e4. \ud30c\uc77c\uc740 \u2013>\u00a0\uc5ec\uae30 Nonlinear Optimizer Solvers \ud658\uacbd Julia v1.3.0 , JuMP v0.20.1, Ipopt v0.6.1 KNITRO v0.8.0 (https:\/\/github.com\/JuliaOpt\/KNITRO.jl) knitro-12.1.1-Linux-64 (https:\/\/www.artelys.com\/solvers\/knitro\/) SCIP (https:\/\/scip.zib.de\/) \uc5ec\uae30\uc11c \uc0ac\uc6a9\ub41c Non-Linear Solver\ub294 Knitro &#8211; \uc720\ub8cc\ubc84\uc804, \ud559\uc0dd\ubc84\uc804\uc740 \uc81c\ud55c\ub41c \uc6a9\ub7c9\uc73c\ub85c 6\uac1c\uc6d4 , \ud480 \uae30\ub2a5\uc73c\ub85c 1\uac1c\uc6d4, Nonlinear Objective, Nonlinear Constraint, Mixed Integer-NLP\ub4f1\uc744 \uc9c0\uc6d0 Ipop &#8211; \uc624\ud508\uc18c\uc2a4, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[20],"tags":[],"_links":{"self":[{"href":"https:\/\/julialang.kr\/index.php?rest_route=\/wp\/v2\/posts\/2465"}],"collection":[{"href":"https:\/\/julialang.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/julialang.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/julialang.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/julialang.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2465"}],"version-history":[{"count":1,"href":"https:\/\/julialang.kr\/index.php?rest_route=\/wp\/v2\/posts\/2465\/revisions"}],"predecessor-version":[{"id":2467,"href":"https:\/\/julialang.kr\/index.php?rest_route=\/wp\/v2\/posts\/2465\/revisions\/2467"}],"wp:attachment":[{"href":"https:\/\/julialang.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2465"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/julialang.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2465"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/julialang.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}