From e4d9dc897a7b665585afeb3f89a905b67c7f4679 Mon Sep 17 00:00:00 2001 From: Matt W Date: Thu, 18 Feb 2021 11:15:32 -0500 Subject: [PATCH] Tidy docs file --- docs/.gitignore | 1 + docs/Dev/contributing/index.html | 2 - docs/Dev/future/index.html | 104 -------------- docs/McCormick/Figure_1.png | Bin 42355 -> 0 bytes docs/McCormick/Figure_2.png | Bin 43032 -> 0 bytes docs/McCormick/Figure_3.png | Bin 159801 -> 0 bytes docs/McCormick/implicit/index.html | 2 - docs/McCormick/operators/index.html | 2 - docs/McCormick/overview/index.html | 2 - docs/McCormick/type/index.html | 2 - docs/McCormick/usage/index.html | 36 ----- docs/Optimizer/bnb_back/index.html | 2 - docs/Optimizer/domain_reduction/index.html | 2 - docs/Optimizer/high_performance/index.html | 15 -- docs/Optimizer/optimizer/index.html | 2 - docs/Optimizer/relax_back/index.html | 2 - docs/Optimizer/starting/index.html | 126 ----------------- docs/Optimizer/udf_utilities/index.html | 2 - docs/SemiInfinite/SIPProbFormulation.png | Bin 34285 -> 0 bytes docs/SemiInfinite/SIPformulation.png | Bin 53901 -> 0 bytes .../semiinfinite/SIPProbFormulation.png | Bin 21285 -> 0 bytes .../semiinfinite/SIPformulation.png | Bin 26666 -> 0 bytes docs/SemiInfinite/semiinfinite/index.html | 130 ------------------ docs/cite/index.html | 4 - docs/full_Logo1.png | Bin 42733 -> 0 bytes docs/index.html | 2 - docs/readme/OptForm.svg | 1 - docs/readme/ProcessFormulation.svg | 1 - docs/readme/math-code.js | 20 --- docs/ref/index.html | 2 - docs/search/index.html | 2 - docs/search_index.js | 3 - docs/{ => src}/assets/arrow.svg | 0 docs/{ => src}/assets/documenter.css | 0 docs/{ => src}/assets/documenter.js | 0 docs/{ => src}/assets/search.js | 0 36 files changed, 1 insertion(+), 466 deletions(-) create mode 100644 docs/.gitignore delete mode 100644 docs/Dev/contributing/index.html delete mode 100644 docs/Dev/future/index.html delete mode 100644 docs/McCormick/Figure_1.png delete mode 100644 docs/McCormick/Figure_2.png delete mode 100644 docs/McCormick/Figure_3.png delete mode 100644 docs/McCormick/implicit/index.html delete mode 100644 docs/McCormick/operators/index.html delete mode 100644 docs/McCormick/overview/index.html delete mode 100644 docs/McCormick/type/index.html delete mode 100644 docs/McCormick/usage/index.html delete mode 100644 docs/Optimizer/bnb_back/index.html delete mode 100644 docs/Optimizer/domain_reduction/index.html delete mode 100644 docs/Optimizer/high_performance/index.html delete mode 100644 docs/Optimizer/optimizer/index.html delete mode 100644 docs/Optimizer/relax_back/index.html delete mode 100644 docs/Optimizer/starting/index.html delete mode 100644 docs/Optimizer/udf_utilities/index.html delete mode 100644 docs/SemiInfinite/SIPProbFormulation.png delete mode 100644 docs/SemiInfinite/SIPformulation.png delete mode 100644 docs/SemiInfinite/semiinfinite/SIPProbFormulation.png delete mode 100644 docs/SemiInfinite/semiinfinite/SIPformulation.png delete mode 100644 docs/SemiInfinite/semiinfinite/index.html delete mode 100644 docs/cite/index.html delete mode 100644 docs/full_Logo1.png delete mode 100644 docs/index.html delete mode 100644 docs/readme/OptForm.svg delete mode 100644 docs/readme/ProcessFormulation.svg delete mode 100644 docs/readme/math-code.js delete mode 100644 docs/ref/index.html delete mode 100644 docs/search/index.html delete mode 100644 docs/search_index.js rename docs/{ => src}/assets/arrow.svg (100%) rename docs/{ => src}/assets/documenter.css (100%) rename docs/{ => src}/assets/documenter.js (100%) rename docs/{ => src}/assets/search.js (100%) diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..3722ac63 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/docs/Dev/contributing/index.html b/docs/Dev/contributing/index.html deleted file mode 100644 index bea0f9eb..00000000 --- a/docs/Dev/contributing/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -How to Contribute · EAGO.jl: Easy Advanced Global Optimization

How to Contribute

How to Contribute

We're always happy to welcome work with additional collaborators and contributors. One of the easy ways for newcomers to contribute is by adding additional relaxations.

If you're interested in contributing in larger ways, please contact: Matthew Wilhelm

If you have any requests for additional functionality, bug fixes, or comments please feel free to open a new issue using Github issue tracker.

diff --git a/docs/Dev/future/index.html b/docs/Dev/future/index.html deleted file mode 100644 index c1dafc62..00000000 --- a/docs/Dev/future/index.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - Future Work · EAGO.jl: Easy Advanced Global Optimization - - - - - - - - - - - - - -
-
- -
-
Future Work
-
-

Future Work

-

Current Activity:

- - -

Other things on the wishlist (but not actively being worked on):

- - - - - -
- - - diff --git a/docs/McCormick/Figure_1.png b/docs/McCormick/Figure_1.png deleted file mode 100644 index b27217f2813fca83fb9edd99f5400ee9ed30a0d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42355 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

!U=Ep| zC2*T>k$?4PXMgQ7v+i4g14|7OLPiJps%N90(0Cz`8apADgXFHS#3G!+!lZzj+6UN~ zm0*RmT&{j*1^I?ECkO~a8C={F?IRLpV4q*R%)LsC*s@gW^JE|Ga91>m%*Wexo}O@aDR%T0*rYjBJXzmU%0kDBVTUW3rq_X@I%L{;vlrlw`LKFMuRNCp=Wy5y{^SnPx-X?*wjKz14Ze!7>c*WU5P>L4_y zTjj=7@r|4**6~+V#g(baX|ud)yU|^`C>Av@hN#vwNxc~V-St|o8=~iM+AG5{lv0jl zCzIOfT6uyRep#MSEkD_9zca|n0$lzQy$r`7BLL}7m0%>B9nP;ovnp47Kg8UoCJK;s zbDTLZ_K4=TOTf^wFLz&@UDNYK=-Y5ShP^A4sQru!C$zu=2?P$#lJHaU7WK{yRV^Nk zy1#j9rp-R_(Nu&>ajg87)(GX{59DqCpk1*lKFE*gMzl@|fz}LFr08wAK{cA^qBjeW z`jZz?)Z*#s>97*W9R?t1HXPK=z1LayqYLSHGLo}=e-Kwt2!GRKyN^a$ZsLvFX4FXX zk8x%Z7^wtV`?wAUUt;k#$jiCqcxbJ4@GyyTLz`h=y0L@cYsK$aXIT#A}tBFQbv&UOaSUW^O9k~yu^Q$lyrmt zhy|28VSR)ky`di@SV`s43e%X)p3X@wcQJ_7 zt(G-OsWvI~eqdr*0a51{$B~RlIK493{uNVH>+#s6X&i-Dj(Bbdv3Kz$z7VyOWnnZW z$*_L%NQcSu)921B5Kv#F*{RlZ@IgXParxzON{O2Z$TPZ!d ziTT=V*cdJPEU;x7)T4S;31)Y*>=4k6hHu6n<@?7~{t#~4gzqhi;W^cUIO)LP5e0Sg z?oDjr7nGAYDVel61~swGK*~NSw0{ZGlbt~^iZOTpKSCMtO8~~oa6ej^$TFIELFPSi zjGAIR?{zl$2xDDnX#86l;L)%L4r&Z8=?@-{D6}C1>K1)N=tu zJ&s4fx3m1BVvWLz+r^<3#3vt7bV#H$;%-49=T%TFU*6P|2B6r0bNEPhU}G zo>QBL_nQCM`T5yvu~cwncO!LqwRfvCcSU9yED?dl+>YV%UDhKI>?0@!s9))}{Tuex zNJA+|$xD4d8rXpTA1K=_06^Jhg#SQU0pXX)y?TEc+8@p#521mV;elUIM4zEBD#`GY zc^}L*3N6Ghg&n>J&V{qz{K<#^LA#P|oezeFSDuTSnQ&`pf)P*rqTbdO&iC?r_}kht ztKiNMMfuZG`vsZThYLThCo4@4YOMYX@A_*omA|+Sn~cv?6KEUUf;qqGroG1lrDAD7 zF6d`qy;oA(ZShRhdD=3^Is_7w`P<_|_MZO(0_1QW?Gk8ILe)UA^QBAAwvIFyNXh+69^1=Y;JKn!-M>)k%g{j;HN%a4ihdmw{ zXG8G41fLJx=nnraXfdt~Uj6WP>xq+;w=f>oQuMC|JM1c$tf|cqPLkF^c$wiqqb%Z6%|aH_HJ)s{AJ57~)lWodq{UHL83=86OaYI1`-L2*^Lr z4y!ox!)BYEq)u~!2qe>%+|C9ETCP1_r6)xP{7Fc7K#jc_6M*@RaNv(^7@azu{=~l2 zJ&v6J_Aw&jJJA~yQ(Gdhw{ah(o~zf*-u*}<1>)EneletSJPALhgxzjVcQou6Z?27o zoL14w{C1Kg{F1+-cl33p-)z#rX(UR;`Q2pWxUC!dk0`JUC~4(%Fx>prSWFrCj2z>% z9gMBR?_kVnUYr=5x(bDlwadeYabJr#yf`)%nOee7N+EnRd7G55;>j7qXugnt^mZ+3 zc$rttvDqA)bnqa`FOM(>KY_D*wJJ%cnSF)#hyz7VaaIaNAyo8cd+Bq3N#zspFcY#i z9TAFbX^-Q~Rl(xUKn!FJZ7EIX*Au5Neqa zKW9BkHwMwuZwz!2YGhQV6g;E_sQAY=xM`--sK=qg%xDuQq7GAd5?1^9*g$nIE0Mr-h50hXn7v@lqsUz{vjr~y_NbA3~g9HdMk09 z*+Y~f_eghSwVZ_id{l2XYif~`+U|lDVa}9F_Ke`vO%V)|3Bo+{vIT-&^*L)c}~)U?N;OWRh8C)zrAhDNA9C|D79%SJgk>r7ucSJ2>$UWk7rZ=kINDB zfYIHx0p4u8$AOL*$vnNSHL~lG6Q&3``SySlu z_oN@6!t*e$n~C=y=E>zT{F*zYiTvN|V&%_*i*Q)IETA73vWuZo)o;4aC;7Qq6W@;W zo@t(7c!@4I!EsPT4ZC88>s|wh4zmfh5Om!Aac(AB@PL==fd6Q1Q}GS{8V*dOZCBXF!^~N0x z_BU~w$V60ThJoiohZgv>gX^mNEuA(~vaq5=~yBRtY~KQIs&eOfKYp zOteYYI&Vc%-`9IYk=$FgAnl??V9w0)qF*y0^AvJBE;uyM+@klqxl9RZO0ZdNF~** z@I9tQ0TXCf^0D10bor-#Zu-lE$Qaor#M{TTS3WT)nOdChw34G;RT#G$<;V*oI~Q`m z@m?VEZCk}!*iW5-ro)_Pl+i$P68}wF>Hg_cyE2W6^PrE{ZN*T?ruG~K=slutz(7J|Boof7{7N>x-6|x`d`wpaeb;{`diA!4~mZ zttUh+Z&=2~jIGukaPM4c97R(HFsQiVe>MeU8x1slQvG_fSRk_DW;AF}Dc?P(4 za&mk8 z-|Q|Ie55@iz_hY1pehhkDO`7O?%9fnYPR~C^SeH%(1aIvT*_9Aq z+TQ#noMuEQBK;8z&*w)c_ql(~M4|pP_)xDt_h?~@C9^uK8nLc6l_i&*BBg4D6aghD zZVpw_fwbXN3l-D8!<&hJDp~n*6A4{3RufNy!iJW}i;u|b;Wsm{`#P$w1(KfL5Wtxg z@h$^D2)5)tm06hW6cVzc$k8$4*c8A*C_{9S+LC!zS~S6-&cKg~<8X0&rgoZ~rsuPD zhNzCUPcM^;A#2YONK=(A7iGwcHdMx8g#7tz=+Af??#5s(PCQA$i?BqnV{Ax;Y+P0o zXi=%sp+C#N>f!isc6Qd`P`~C>^aOHdwVaF=tVdapQ6_HJNGMV-*Voufpf<3^h?D>B ze`(vFVspoMU_J$+T{nh_LBb;Ew)}1#p_T+~de7E=$v6m5Ir^0+7*$Lok6}K1?#!Zn zEzV~9#ryn#7b?nhA3E_(Q|Q*i)3f`1HR78G`MLr^pyZt;F-SSh`42h!?zuvrNr$8=68W{ye0$uorY zZh>%gP*)6`Yb%naQe^}UZNCDI(cD4<<)(h?@M?2@D*uL2wJ74E>YDR-eoJ?&X6xoi z)Ezq<@1$0F?QR!~l2)SlhGHe->~>;?1vck{$}^4GvP5En3w?|K*0__Voxf@64MyGm%S3Wa@#o?!_af_|)H*HwgCxwp<3qesZ82x@fgBccd?5SdS$W;#9@ERbg{YrLHi~L7l$)9M8 zp|!h`;pWE%xGXsC$ziE`#QPbSgEn%8=ptp(_8%H5Udw!sm-@UZAgMR_a_1;?tMG;w zcIAsdMyZ$mbc-qQiE5a@X!3+xq5UPbI=|67RwE?;Mp6D!j^eIo?TC&-=q*#ZwrVi1u!x zS!{DT49O^{O_7Q%&?RYpb?vF{{(xmi=6Fy|Xry%*$n#H;{G_z|D$*E|fVcE*t1k~R zSXf5NXwimbJLZJ;pBl20X(WZ$G>H=L>6WtQs;gii8?ryF^Y8B4hmoOGWVF|vBYR7Hh8Ms=`I??$yh!#$H4g<8^z>((=SZ zF0)4{JI_ZjGxZM7&`OPp{aa%nj1o1E^(mD@NPPgVpL_F4$y|)I;_xpAW+gHw67w8; zzQu%+<0l{ZY_R0pw1J0Z~Nejc+>uXL5I18I5qCbpGkE@aU$sBgVVSth~1n zVZS`y{jw!w$eLuwQN~2;tq-P+osO4!GZ`&8iFtD|hD7?dVmNsio9XX6)uw3{K*S36 z1j%fQEZ--G-cJ3zyW1jCxm2r+Cg8}?S#>40?YyV)vTf5gBELA2%WeJe4?g~$w4-8O z-y+k4uO`jg^$imfLAPUcL=f%$)F%deg0^c3f$Uc-ba|7SA#vxEmw)wRcz#XJII;%Q zf5-<#xL+@4U|M8;Wmy3Xl@0QJ(r+`b>VkyahA!+MoQG9RQo4!h^DdjFvK?oFK#r7XA>z|Bo z02pL=Io+^rZC!Qx;#HCYS-{#W6hD~YbXXT`(I5r~S-P5=6!P_N{K~<1n|*%W4vxJd zzbsv(*wF+hnMG?l?n)Q8uisOY9e>L_eSU#RORcNuDJ9BTQSExo(9Dbt8$ktmW36wx zesZE4UL5{@{_VG`AgNpjE~L9HzRd)3xA*~t>7RZZNV2R1r$W_yHrMUFW+#K}-7CQkC z2~lrv07cMoJ(K+;(dXhGGE*9hH@%BlVCvg2LqHRuXQjf*TOBS!%yg|Pn)`JB6hUm>W?jDktP2fKejn@$flAAx8lcShGrtg$bj*AGJU9`_H*$O1N2m z-oKN^CQ_jyND-ZcOfIRg*6|XtRC~24!LLx;+~Q(454Qp32@^}z^*pqa5n(vS&+)7J}k**7!gs-N>GG_a^zO3EmSEIVFQ*AQ;2j$ ziGPhJn3r2sLA?7k+<13us)BbSXT+)xFntoPikWBcijnnKu|mzlLog^sWF^siu2l`6 zB2ME~KyM!EJ*_G=OrJdT2af#`7pUvRBs-dW8<&NEo~wN(KQi~D)tY02`ITxRyA4}> zKBsWxUu9M3Ph&TYNs?llEpCsj@2)<_LJaqPf*I@34o^#r+&@1k_f z_c*$r1`FMM%&X6}jdqa2w@;kvo7(NcvG=I6o3n0{)51irf#O!V*lxziAwuL_an(Y` zpA;+ihoVJI!M!OB3*~14iNcPo{7%gNc20g~tb4Xzo_{&UUEf$1a}Bgi*1n)+p~G)i za3*l>We)qpM@8LMk+(sR@Z3)LhcIzh(U7m(_fi$%)(rzl|51EXNnxvC%Ef-gU#$b0 zQT%y_;!2qlUI9I#sT)}zzQex#UIP~5rdaN8X7KB490lWoA&+{P(Y=WF*8OJi!$Izh zeeb2JLJCoy-hgM!V{g8CZ!R*xvxbNNNEv}Zl+WRc8Wulg;(%+ zvu@JluOk6mQ&l12ySO#GZr=4i!%gl@;@?g!n~!WBR>aV~3S$o(o*tFg5S1oNUWvsv9}4-&QkXbBf1Z;*sM_mr+1F>~tY^Ehc_>#U>hWR_&uCIN0>VP0 zW&v9fxgmU~@kYF0xuovDKZZ#^LTk z`qjgjhgHN4(t)!6)ojSTm6H30@{{9TUeh~w*~XfZ(wb>nvDgAiz8xF6^vG9w46)_h zg)~}YCZ@jvXUaF>ukzT7i~jwV5In3(z426rA1t#vB(<3VNu_Dq`8ioCh6Pu<&>LhU zncoo4v?!PWZ_n2ij)XwKuJ;S~Tj2 zx#J)BDzH{Y)Uke(E8?gpL7VUk`@sgT?c~<)3!}F3GpK)S*Vd?^4=3FDe5>Bq;p%j< z9Vwb+Aq$%xU05=e;J2o66k}mwNI~J{&?(2#+I?E6_Ix?czl|{{H`^YApKGE0+-^tm zVX=p7y?OIG*UCdTqF<&=4|Gi=NeBfIINoWMtU}~6hHTWr&V#cTGiSvf7k0i4gK8U zSGlfG!NAst`e08pEWzGvpHcW`Qh9z+Yb{`8(7MAggSh=TZSaggtg!8m@~FwkAyNuc zv*0&rIAXFpZBn~yj(G6CqZ1lN%%!~Pqu!@rtXemyS32daruGYYXykA;H)?sQy!J=t0V9I&FUp~W-5)1E-7_c~hU4t#3a9K-(%F@L z2cLeyy^31u*^j2bYc*6JIb?p%T-_E1tz>AWl%;cP7bi{zCZJ+A0%F&+K0+B4dr|a0 zoCmBuJ+t>_=A`HUsxm&E)Q4HryEn(FzLb}!n9KQnNdi)F03|Ex_D6MmYH;uctT=|;q^I^ge_;ITOx0#09@AjSVt-b*Od5Uf_{Y@D#OOG}9l$#O@$s9n;r)!OQL)Cx zv+?hMZ5TV$Q_(e$w}CEv!Z@S)vOs15H6e?;>`h5Em2I&}@#+?yR64OMNm%&3Gm2O5 z2E>^JZBtG0bgeh#VD91h;yZlA!IJg{h`@%t`-42%=s+a5r90O!&cIS5Pwjh8Z>Wju zLk8+R&hh7jBxA!jc6Pkfy_J=Sz0BdlHMo_Go<))0b1A#aOsb5UEQF7Q-Z#^(k`7S! zI}_zlO-=rJNboFGkH25sSO0T%y^edRbTqJhv>m@;4mDX`!)xaaBmB%R#FvDziU@Z$ zQGRzzSd3#6IuVMDSYawQ3l@0zj^2!#h-ID=_JrDEx zt=!wr))SPW6M?t6a`^4M>A-MGQjcP-RwBMoF`(J=rp!K=JPhdJ%BsrnY>qp(uk!Q2 zQ7|O~L(l3t=h*T0VDK-RuKgUd(Biv6R9k+t!M2nV9*?w17Z7aJP%V&nxI$%~I?qIC zo|@DU;Jro)zqSyru|jipwNmrU7+_f?z4VHtoF?8m(pk@MzMJtml!8sxmi9Qn1H9{} z*WY~$YK(v^b2B;oViyWfs?^3)RD3eOmLc2}tAA*kalfgJSCl`aH*M%9{1dNT`uqCo zM|xx{-HU(Jw7;$?bal#xj{M(RLKo7T#G{Ei_*Y415LhTQ>|DG?IGyV}t(Q{9QWj>O zHM2Dk^p0em=#n^)L|lgMB*ZhxKatY@HYTCOMRJ&!$qE0rV7eCOF!mCdobgiPH}>}S z*$P<8x@|JJ2s1;RfztOEG*@%JH7yupO3cJLX--xVsa8?_PpTn%q;ZX6I?)$a;s?d^ z&MJ6EDGTG=!<#scbkmt$+7m07hD~2Z_029B*zm`8DRi$qP-Skk#Q3Sc028zJUVm?Q z(ioSrqaR3*HZ_a)F+SV-@Am(e?Ff-CP+D^XC1{g%d%KZ(R-M3&P_S z`-p{oV9*&<%1gN<45m39HTyZX)#Dkqh7do@`(SG4E$NBpt&2VCNpY#v0(w>Ho>_8&q#FbatP6^>|<@ zKz$dj_7esQeBk8ClmzqRSIuUT--NWxm24bH=2jgd?`&mS$Q*MJa%f~?to0;EmO|UB z+*bb%C8jVPjrM6{6*<({?tg){xvLzhV)a1PEPEWxE|fh;D>!GlvN-1A+!tBY4desR zFzJrIUZK`Ctp8T^?2r6Qu{txu1l+qSDduxEanq|^Lkr5|%J#YZ&+0<#aaau9zbA7QjW>-Ltp6ZmOJ8sx1je!Dcf3zg#FEV*!)Uf}B( zyIYYhOH(5c|If`SB7!P*!l)Z%_RE_zc0bp zyF}P=j}PdvaSzYiFOw=Pt6;cP?c&+zriGpsH zYNJHBQ>2E(b;SNO^PzymVNf8GbPbhxlVL)F*;+kT=R1>L0IEa*#Yz3Oz>@c!kP z*6)=#a;4iNME*BgghSTGhTNHNlwFmP?-sD&DgtZDqZ>|I_mjgc6mwc})F%fv2^$;P z#)K~-8}b=Q|Ll1%e4>5dN?S+#;|-l#ppPP2GaKvh+TfoE;jl|oA<|>a<#MivFKXPs znuTXou`GL>r;HT*si5j@CL>jpy6->xW80rh)(@>cTyo7;)QSv-n3<;%?Hs8d)cWeG zS@1P~o(VwpI8x~^Z!hy5zEueR-;etL#@*?;br%j}2_wqDDC!nzG{_N(d6?K-Gp^H5@Jj^8_D6YU+2jH2tQ1L64wms9gR}>*5Mn@zM|!vSSoq7 z^r06TZRL**F&S3g54&h?mq!SqVhBJaqE?qLL~4e!SNJ;ioepj%to|uDv^)O$%4W(- z4p<%oM}HjcMB&t;+4(r39lx?Ku=&Nq8&L+VA^fjvnwN6@-eZ2uJ<|lmo$4i@46mc?4IBMi84LeY@xriBHHmZ7Y5ty zxgeOP-+4w;{?d#8n5WE;XWW3axW-Pd=e0H{{?%NQu!0Hu+M0i%p|>cmeD zOH-lT#69j@9M!#(%~7kcPzwtUVDZ1#(TbJLSmz}DIvlX&c#|hR?SHuMVBNl-q83|& z_Qov&f}n7cWS`i62R5^#K`+VHkku-&=H?bZdP#|&>oM*$t1FDjU(>YB-fPCkEspt( zTnsNxX2z~;@Yd}ap8EVT;jj9(y&S%iwqV`Bv$tJ;i+Ck=q(!&RZC+s{Yqa?m9RX|v zh;Nf8RahO8jlX(YMQHI+si3;to-`yyK#zE$7=@d?9aA z?dQ&QlB8pCKFwI55`~lPYF^*22lmd{F{ilz)Q`Tz+lx@??V#HO3E-W0Od|v#0bwn3 zd)F-lkYcdJzggYYRv_!=iDMIzXgZYmT=~2L5|=ce~Z+CW?<^bE}2p2|B!fW=(6)2 z1RA;@y{=Ao_+G?k?A?ncx=s^iHGkjkNHan+A2e!JiM-m=q)%CpmoU8&JJg`7fdE5( z<$09c52-ukLz3nLLZOQjwm?X4Hih$8k#pzw*F=SM$6+C_)J^g!_l{>DHuVt43!~!No z^GXTgU`Bm(-+PF`2MJjp)}@{xFoj&A2GJ*0M$3fro4T55^ja|!<oZ&kAMh9Q%J0HD|t39Yh!P3a(a7qR1*^JWrcLV6BHC2+&WcC;2hTU^=(#AP&mA_0@p9`OVY;= zyvHU5e=0wuw~e^20&XSjn_jxVs6Pi~Zb_}5OMhtaI55l$M@XVt)RPVXRliT`#z>zB zsAr28gG)M860&^{Ur5|vuGQbQ)zt~9zJAS06F0ndI_OLl6CM4dwe>D`8YjFPkR6pl zaVQj`rzkErxCmHoMGs#Q^raqsDK_g{aATe}xW4GF=coh2`!Yay{3Bdz(%|$G z6aoG7>sK^r)ory0eIfAS&bA!f=2`^G?~aU)60}Rlnt=P4$=T`py&#AgB|lb$Nh2V1 zftSy)*J+M8-n!aHF3^B>f{f_`fXLrs0aZsp==*;k{{LJCFk&Bst2bJ0vd5tzX4zhO z;YdkImohSZQb!zgsX$Y%-hp(MO~cqVkqq&amh_Aats~6tP#QF#92nbyaZ7=7TLu^4 z0l^%v9sJ9S2J8`dNLo){itWoqLqpRBm+x+`ATVu!ysLkpuyXqBpCEU`9c~0 zO71bK$IB7%Mb8b!K-??Fd{R@dmAWIYVP~o$1am|44La=4H}W;Jkib^Tdh zKDEDJ`hWFy?mtbPVH`hgQ6`v`T|g`Qd{E!4Fx|HahPAE3PVI>zZ&l~%o4;aDVGctM{Q6-T$-!YnW+@DWgj~0g(O2v1 z>gwuUPPD*VS>SUVKZ|;atpv`vZydqj=(na~n%S?|qUBAYi;-b6nYf^alAGmyNB0Dn z<|Ajh@d&xGvC)?M4&&K${x(&Z4=GWX5ID1@dR9W^86T79pUjqzfN<{trYhyWX&gge zu+yp~lAxQhY_{i}fl2^np^MtV!Qz*blVb@7cJEB#a2QP&D@&t}JU8MIq)gh-klvpW zDxVaRo#?y-thqDLw9_s?R=1Y{=HXZ;CyLU#RG`e&(wq*bhXe-)H(YFCRBSt)GYe+0 z5HUjnW5FE9V|6&QSbL*!W99=VmNYBDwU#o89z}d6s~NV3{NS%y90c)?t4dX zFnd#(b+*tw%>j76AiBOv#(J)@Zd9 zv|g}Zd;Ke;1iDDefaIc)-!avJ{!SP~+~Mv4pr+z;C%6E5JWx)lUe8B|!t{U)t*NM} z7!1aR_x3n32%P*=Ici(|>MBrbVhpbjDXL+~x8)vTJljno4a@kZRHuNv?Ech!whAH* zwFx5;4zDsT2a)(Ypz=Xy<#M^b--oz(#aZuaxAN>D`qsukTFVG4`mN4doP9q)u)U)j z;CQjxR^1KqJWM#_N*F=(11#YS0MZ(*4A56kwnrH8k5e5E!?h=YKrAA+8CUwa=8f4M z9FFkMa#}5P$&cf2ZBA*|Y5N)%aSXGU3quFQV<}OLD|VP#?>>ZrJ~25dNea_ydc-%* zxR6MsFSD|m3p&MSkSi{LFnaVTrA=gZ{%co<8|E+O^&Yy0!rwUBO$|jBGJpX2Q&CYR zz&Z3|acp+&ZNDtLOR*g<)}Up6G7vN2Tf>l8H0VLu6h7duJ7&lYPnqb#3MSAL1(%eR z7=}yR@AdYEH=V_Qo}8H(J7sv$JPO#8fcPXm&If5YTkTwNdQME^K@UBR!SA4(5<@);u2qEgA@wYzBgj#0udyA z1`94ga@Hx#dKnj*>+7Ekg z^@unb@@mvx$xszY4)4KRx0zNaxqxWc$J{cEDO9=*D}O5D{;pRpB6xrKm6pdM5D13; zG~UOGDH*^THH#B+gL18%HFp=s7=l7dY+;0G90kh4850;kj>Re^UjUAWVVcOV(t?w5 t0l#AHAN0?dSltdgWB+IQ{@?y4n2F(ai`20jR{Oz~5N2pZ$b%qG!QYXv-S7Ya diff --git a/docs/McCormick/Figure_2.png b/docs/McCormick/Figure_2.png deleted file mode 100644 index 5b56c3beb8c830218b18ac212ca33afe5074c199..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43032 zcmcG$2RxVm|1Yd9rBG%fL^2~HgruxWB&(2Qi|monkX4ecgbE>B_Dp6*A|r}y8QDAI zeqP_-?|;tyIREp%&$%DxzI#0S=39L(*Y&<$@7L?O-uYg+EJsepKt@7BLarb$t4cz$ zl^Z|9Nq6FR&b=e!z%ScvWfas%@xzt$wh#V)_g#4{TN0A}`ozyIiBbus_|4OH=QZuF zS{d0n>f0ES+|jqYYhh()VS4L`gQ1PBsg>msK|Vpg6Ff&u?CkD}@$>)pzrbf@W6V#p zGOJEPa)d-d_NdUW0vNR|Oorzq zBwQREjE$BiqUXdvd^pL);wc?;R3YeSl3$B+C-rmUO9iecd)5E>;(g2Q3|8WIR6{u) zQ4?PTy%(ZSkte=Ti~oG{Jn=;w*QK4@#1}`enF?wK5?>@K2ABI0UnpFA`Tx_ULMbRI zA1KDN9y#(_w#%w){et(t!zV;UJTo&>e{Fdt?%li639eEK!}Z=E-AgX~MO$0u7TT{{^^K11{FMr^>IDdxkeEN-W_+kvip7(*tVwWTxUx!xwjM)6Vvqe{1ZA! zSEt9{bVbZN(uR6U?(r8fG(C=vW;%BHRc~w3)$c!kgv;xdxCpzrxE!RRk+j$PyZFao zy0`rH?b~0o43&10GkD_OM@L5)C7hn`KERQ2`*V=ut~UO26<*}09VZ#zy?e)B#6@B^ z-tO=C%Z>K_{Jh=bpC2`T)ZC=|_aEcn*r}vcAAX}EeEgfTl;Q8MZ-h)+1`RdNzdu5s zQaqfJnwqmwDC)X=f=%w(V9`|RISq~Q)3(E$rWY<;$Tn$yTX{;v@+ZmbvyXO$D&FfZ z{=$6M($aFGrzG;@N9iygt+#;=e;4mKOng5()l<@0>h||)sO{{aLXXF$8%cZW^%@^a zHpP?!l$7P+dhRP~L&cnU2j5&8i+Q?>9F50Xlj_FbzGWr;w!@#UD%^5}uz9;uN_V|R zk;5M}4QECZVp{U84d&

jx(~dWc2iy4;?z> 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%0D05fDUDvV3-+D3@VV9-N`w}6 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 diff --git a/docs/McCormick/implicit/index.html b/docs/McCormick/implicit/index.html deleted file mode 100644 index adef1e28..00000000 --- a/docs/McCormick/implicit/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Relaxation of Implicit Functions · EAGO.jl: Easy Advanced Global Optimization


Relaxation of Implicit Functions

Relaxation of Implicit Functions

High-level functions

implicit_relax_h!

Relaxes the implicit function determined by h(x,p) with x in X and p in P. The reference point for the affine relaxations is pmid. The parameters generated from the relaxation at pmid are param and the basic parameters of the fixed point method are mc_opt.

implicit_relax_fg

Relaxes the functions f(x,p) and g(x,p) by relaxation the state variable x using the implicit function determined by h(x,p) with x in X and p in P. The reference point for the affine relaxations is pmid. The parameters generated from the relaxation at pmid are param and the basic parameters of the fixed point method are mc_opt.

implicit_relax_f

Relaxes the function f(x,p) by relaxation the state variable x using the implicit function determined by h(x,p) with x in X and p in P. The reference point for the affine relaxations is pmid. The parameters generated from the relaxation at pmid are param and the basic parameters of the fixed point method are mc_opt.

Subroutines

affine_exp!

Computates the affine relaxations of the state variable. Inputs are:

  • x: State variable relaxation
  • p::Vector{MC{N,T}}: Decision variable relaxation
  • p_ref::Vector{MC{N,T}}: Reference variable relaxation
  • xa::Vector{MC{N,T}}: Lower affine relaxation of the state variable
  • xA::Vector{MC{N,T}}: Upper affine relaxation of the state variable
  • z::Vector{MC{N,T}}: Affine function in X
  • nx: Number of state variables
  • lambda: Convex coefficient used to define z as a function of xa, xA

Populats the following vectors with results (xa,xA,z):

  • xa::Vector{MC{N,T}}: Lower affine relaxation of the state variable
  • xA::Vector{MC{N,T}}: Upper affine relaxation of the state variable
  • z::Vector{MC{N,T}}: Affine function in X

correct_exp!

Corrects the relaxation of the state variable x_mc if the affine relaxation, 'z_mc', exceeds the interval bounds xL or xU.

  • z_mc::Vector{MC{N}}: Affine relaxation
  • x_mc::Vector{MC{N}}: Relaxation of state variable
  • X::Vector{IntervalType}: Lower bound on state vector
  • nx::Int64: Size of the state vector
  • epsv::Float64: Tolerance for checking that subgradient exceeds bound
final_cut

An operator that cuts the x_mc object using the x_mc_int bounds in a differentiable or nonsmooth fashion to achieve a composite relaxation within x_mc_int.

gen_expansion_params!

Generates the relaxations at pref_mc that can be subsequentially used to compute affine relaxations for use in relaxing the implicit function.

mc_dense_krawczyk_cw!

Performs a single step of the dense-krawczyk componentwise parametric method after the inputs have been preconditioned.

mc_dense_newton_gs!

Performs a single step of the dense-newton gauss-siedel parametric method after the inputs have been preconditioned.

pmc_kernel!

Peforms the following steps in sequence:

  • Evaluates the function h!(H, x, xp, p, t) in place with x = z_mc, p = p_mc,

xp = xp_mc, t = flt_param and preconditions H using an interval midpoint preconditioner if precond = true.

  • Evaluates the function hj!(J, x, xp, p, t) in place with x = aff_mc, p = p_mc,

xp = xp_mc, t = flt_param and preconditions J using an interval midpoint preconditioner if precond = true.

  • Lastly, applies a Newton-type contractor method. The parametric GS Newton

contractor if cntr = :Newton and the componentwise Krawczyk contractor otherwise.

diff --git a/docs/McCormick/operators/index.html b/docs/McCormick/operators/index.html deleted file mode 100644 index 54bb5cd3..00000000 --- a/docs/McCormick/operators/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Currently supported operators · EAGO.jl: Easy Advanced Global Optimization

Currently supported operators

Currently supported operators

The operators currently supported are listed below. The operators with a check box have been subject to a large degree of scrutiny and have been implemented for both forward and reverse McCormick relaxations.

Univariate McCormick Operators

Arbitrarily differentiable relaxations can be constructed for the following operators:

  • [x] Inverse (inv)
  • [x] Logarithms (log, log2, log10)
  • [x] Exponential Functions (exp, exp2, exp10)
  • [x] Square Root (sqrt)
  • [x] Absolute Value (abs)

Both nonsmooth and Whitney-1 (once differentiable) relaxations are supported:

  • [x] Step Functions (step, sign)
  • [x] Trignometric Functions (sin, cos, tan)
  • [x] Inverse Trignometric Functions (asin, acos, atan)
  • [x] Hyperbolic Functions (sinh, cosh, tanh)
  • [x] Inverse Hyperbolic Functions (asinh, acosh, atanh)

Bivariate Operators: McCormick & McCormick

The following bivariant operators are supported for two MC objects. Both nonsmooth and Whitney-1 (once differentiable) relaxations are supported.

  • [x] multiplication (*)
  • [x] division (/)

Arbitrarily differentiable relaxations can be constructed for the following operators:

  • [x] addition (+)
  • [x] subtraction (-)
  • [x] minimization (min)
  • [x] maximization (max)

Bivariate Operators: McCormick & (Integer or Float)

Arbitrarily differentiable relaxations can be constructed for the following operators:

  • [x] addition (+)
  • [x] subtraction (-)
  • [x] multiplication (*)
  • [x] division (/)
  • [x] minimization (min)
  • [x] maximization (max)
  • [x] Exponentiation (pow, ^)
diff --git a/docs/McCormick/overview/index.html b/docs/McCormick/overview/index.html deleted file mode 100644 index a6ff2556..00000000 --- a/docs/McCormick/overview/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Overview · EAGO.jl: Easy Advanced Global Optimization

Overview

Overview

EAGO provides a library of McCormick relaxations in native Julia code. It supports relaxing functions using both nonsmooth McCormick relaxations (Mitsos2009), smooth McCormick relaxations (Khan2017), multi-variant McCormick relaxations (Tsoukalas2014), as well as subgradient-based interval refinement (Najman2017). For functions with arbitrarily differentiable relaxations, the differentiable can be modified by adjusting a constant value. Additionally, and nonvalidated validated interval bounds are supported via ValidatedNumerics.jl.

diff --git a/docs/McCormick/type/index.html b/docs/McCormick/type/index.html deleted file mode 100644 index 932c3dfe..00000000 --- a/docs/McCormick/type/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Types · EAGO.jl: Easy Advanced Global Optimization

Types

Types

MC

MC{N, T <: RelaxTag} <: Real is the McCormick (w/ (sub)gradient) structure which is used to overload standard calculations. The fields are:

  • cc::Float64: Concave relaxation
  • cv::Float64: Convex relaxation
  • cc_grad::SVector{N,Float64}: (Sub)gradient of concave relaxation
  • cv_grad::SVector{N,Float64}: (Sub)gradient of convex relaxation
  • Intv::Interval{Float64}: Interval bounds
  • cnst::Bool: Flag for whether the bounds are constant
RelaxTag

An abstract type the subtypes of which define the manner of relaxation that will be performed for each operator applied to the MC object. Currently, the struct NS which specifies that standard (Mitsos 2009) are to be used is fully supported. Limited support is provided for differentiable McCormick relaxations specified by struct Diff (Khan 2017) and struct MV struct MV (Tsoukalas 2011.)

Constructors for MC

EAGO.McCormick.MCMethod.
MC{N,T}(y::Interval{Float64})

Constructs McCormick relaxation with convex relaxation equal to y.lo and concave relaxation equal to y.hi.

MC{N,T}(y::Float64)

Constructs McCormick relaxation with convex relaxation equal to y and concave relaxation equal to y.

MC{N,T}(cv::Float64, cc::Float64)

Constructs McCormick relaxation with convex relaxation equal to cv and concave relaxation equal to cc.

MC{N,T}(val::Float64, Intv::Interval{Float64}, i::Int64)

Constructs McCormick relaxation with convex relaxation equal to val, concave relaxation equal to val, interval bounds of Intv, and a unit subgradient with nonzero's ith dimension of length N.

diff --git a/docs/McCormick/usage/index.html b/docs/McCormick/usage/index.html deleted file mode 100644 index b30075dd..00000000 --- a/docs/McCormick/usage/index.html +++ /dev/null @@ -1,36 +0,0 @@ - -Basic Usage · EAGO.jl: Easy Advanced Global Optimization

Basic Usage

Basic Usage

Bounding a function via smooth McCormick objects

In order to bound a function using a McCormick relaxation. You first construct structure that bounds the input variables then you construct pass these variables two a function.

In the example below, convex/concave relaxations of the function f(x)=sin(2x)+exp(x)-x are calculated at x = 1 on the interval [-2,3].

using EAGO, IntervalArithmetic
-
-# create MC object for x = 2.0 on [1.0,3.0] for relaxing
-# a function f(x) on the interval Intv
-
-f(x) = x*(x-5.0)*sin(x)
-
-x = 2.0                          # value of independent variable x
-Intv = Interval(1.0,4.0)         # define interval to relax over
-
-# create McCormick object
-xMC = MC{1,NS}(x,Intv,1)
-
-fMC = f(xMC)             # relax the function
-
-cv = fMC.cv              # convex relaxation
-cc = fMC.cc              # concave relaxation
-cvgrad = fMC.cv_grad     # subgradient/gradient of convex relaxation
-ccgrad = fMC.cc_grad     # subgradient/gradient of concave relaxation
-Iv = fMC.Intv           # retrieve interval bounds of f(x) on Intv

The plotting the results we can easily generate visual the convex and concave relaxations, interval bounds, and affine bounds constructed using the subgradient at the middle of X.

Figure_1

If we instead use the constructor xMC = MC{1,Diff}(x,Intv,1) in the above code, and then re-plot we arrive at the below graph

set_diff_relax!(1)

Figure_2

This can readily be extended to multivariate functions as shown below


-f(x) = max(x[1],x[2])
-
-x = [2.0 1.0]                                    # values of independent variable x
-Intv = [Interval(-4.0,5.0), Interval(-5.0,3.0)]  # define intervals to relax over
-
-# create McCormick object
-xMC = [MC{2,Diff}(x[i], Intv[i], i) for i=1:2)]
-
-fMC = f(xMC)            # relax the function
-
-cv = fMC.cv              # convex relaxation
-cc = fMC.cc              # concave relaxation
-cvgrad = fMC.cv_grad     # subgradient/gradient of convex relaxation
-ccgrad = fMC.cc_grad     # subgradient/gradient of concave relaxation
-Iv = fMC.Intv            # retrieve interval bounds of f(x) on Intv

Figure_3

diff --git a/docs/Optimizer/bnb_back/index.html b/docs/Optimizer/bnb_back/index.html deleted file mode 100644 index 2aac5009..00000000 --- a/docs/Optimizer/bnb_back/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -EAGO's Branch and Bound Routine · EAGO.jl: Easy Advanced Global Optimization

EAGO's Branch and Bound Routine

EAGO's Branch and Bound Routine

This component is meant to provide a flexible framework for implementing spatial branch-and-bound based optimization routines in Julia. All components of the branch-and-bound routine can be customized by the individual user: lower bounding problem, upper bounding problem.

Branch and Bound Node Storage

EAGO.NodeBBType.
NodeBB

Stores information associated with each node in Branch & Bound tree.

  • lower_variable_bounds::Vector{Float64}: Lower bounds of variable box.
  • upper_variable_bounds::Vector{Float64}: Upper bounds of variable box.
  • lower_bound::Float64: Lower bound of problem solution on nodeBB
  • upper_bound::Float64: Upper bound of problem solution on nodeBB
  • depth::Int64: Depth of node in B&B tree.
  • id::Int64: Unique id for each node.

Customizable subroutines

EAGO.add_cut!Method.
add_cut!(t::ExtensionType, x::Optimizer)

Adds a cut for each constraint and the objective function to the subproblem.

EAGO.branch_node!Method.
branch_node!(t::ExtensionType, x::Optimizer)

Creates two nodes from currentnode using information available the x and stores them to the stack. By default, relative width bisection is perfomed at a point `branchpntwhich is a convex combination (parameter: branch_cvx_factor) of the solution to the relaxation and the midpoint of the node. If this solution lies withinbranchoffset/widthof a bound then the branch point is moved to a distance ofbranchoffset/width` from the bound.

convergence_check(t::ExtensionType, x::Optimizer)

Checks for convergence of algorithm with respect to absolute and/or relative tolerances.

EAGO.cut_conditionMethod.
cut_conditioncut_condition(t::ExtensionType, x::Optimizer)

Checks if a cut should be added and computes a new reference point to add the cut at. If no cut should be added the constraints not modified in place are deleted from the relaxed optimizer and the solution is compared with the interval lower bound. The best lower bound is then used.

EAGO.fathom!Method.
fathom!(t::ExtensionType, d::Optimizer)

Selects and deletes nodes from stack with lower bounds greater than global upper bound.

lower_problem!(t::ExtensionType, x::Optimizer)

Constructs and solves the relaxation using the default EAGO relaxation scheme and optimizer on node y.

relax_objective!(t::ExtensionType, x::Optimizer, x0::Vector{Float64})

A rountine that only relaxes the objective.

relax_problem!(t::ExtensionType, x::Optimizer, v::Vector{Float64}, q::Int64)

A rountine that updates the current node for the Evaluator and relaxes all nonlinear constraints and quadratic constraints.

node_selection!(t::ExtensionType, x::Optimizer)

Selects node with the lowest lower bound in stack.

optimize_hook!(t::ExtensionType, x::Optimizer)

Provides a hook for extensions to EAGO as opposed to standard global, local, or linear solvers.

EAGO.postprocess!Method.
postprocess!(t::ExtensionType, x::Optimizer)

Default postprocess perfoms duality-based bound tightening on the y.

EAGO.preprocess!Method.
preprocess!(t::ExtensionType, x::Optimizer)

Runs interval, linear, quadratic contractor methods followed by obbt and a constraint programming walk up to tolerances specified in EAGO.Optimizer object.

EAGO.repeat_checkMethod.
repeat_check(t::ExtensionType, x::Optimizer)

Checks to see if current node should be reprocessed.

single_storage!(t::ExtensionType, x::Optimizer)

Stores the current node to the stack after updating lower/upper bounds.

termination_check(t::ExtensionType, x::Optimizer)

Checks for termination of algorithm due to satisfying absolute or relative tolerance, infeasibility, or a specified limit, returns a boolean valued true if algorithm should continue.

upper_problem!(t::ExtensionType, x::Optimizer)

Default upper bounding problem which simply calls solve_local_nlp! to solve the nlp locally.

Internal Subroutines

EAGO.cut_updateMethod.
cut_update(x::Optimizer)

Updates the internal storage in the optimizer after a valid feasible cut is added.

default_nlp_heurestic(x::Optimizer, y::NodeBB)

Default check to see if the upper bounding problem should be run. By default, The upper bounding problem is run on every node up to depth upper_bounding_depth and is triggered with a probability of 0.5^(depth - upper_bounding_depth) afterwards.

EAGO.interval_boundFunction.
interval_bound

Computes the natural interval extension of a MathOptInterface function s or ScalarQuadaraticFunction on a node y. Returns the lower bound if flag is true and the upper bound if flag is false.

interval_lower_bound!(x::Optimizer, y::NodeBB)

A fallback lower bounding problem that consists of an natural interval extension calculation. This is called when the optimizer used to compute the lower bound does not return a termination and primal status code indicating that it successfully solved the relaxation to a globally optimal point.

is_globally_optimal(t::MOI.TerminationStatusCode, r::MOI.ResultStatusCode)

Takes an MOI.TerminationStatusCode and a MOI.ResultStatusCode and returns the tuple (valid_result::Bool, feasible::Bool). The value valid_result is true if the pair of codes prove that either the subproblem solution was solved to global optimality or the subproblem solution is infeasible. The value of feasible is true if the problem is feasible and false if the problem is infeasible.

is_feasible_solution(t::MOI.TerminationStatusCode, r::MOI.ResultStatusCode)

Takes an MOI.TerminationStatusCode and a MOI.ResultStatusCode and returns true if this corresponds to a solution that is proven to be feasible. Returns false otherwise.

log_iteration!(x::Optimizer)

If 'loggingon' is true, the 'globallowerbound', 'globalupperbound', 'runtime', and 'nodecount' are stored every 'loginterval'. If 'logsubprobleminfo' then the lower bound, feasibility and run times of the subproblems are logged every 'log_interval'.

EAGO.same_boxMethod.
same_box(x::NodeBB,y::NodeBB, atol::Float64)

Checks that node x and y have equal domains withing a tolerance of atol.

solve_local_nlp!(x::Optimizer)

Constructs and solves the problem locally on on node y updated the upper solution informaton in the optimizer.

EAGO.set_dual!Method.
set_dual!(x::Optimizer)

Retrieves the lower and upper duals for variable bounds from the relaxed_optimizer and sets the appropriate values in the _lower_lvd and _lower_uvd storage fields.

update_relaxed_problem_box!(x::Optimizer, y::NodeBB)

Updates the relaxed constraint by setting the constraint set of v == x*,xLi <= xi, andxi <= xUi` for each such constraint added to the relaxed optimizer.

Functions for generating console output

EAGO.print_iteration!Function.
print_iteration!

Prints the iteration information based on verbosity. The header is displayed every header_interval, the iteration info is displayed every iteration_interval.

EAGO.print_node!Function.
print_node!

Prints node information for the B&B problem. Node id, bound, and interval box.

EAGO.print_results!Function.
print_results!

Prints the results of a single bounding problem.

EAGO.print_solution!Function.
print_solution!

Prints solution information for the B&B problem. Displays first node found, solution value, solution, and time spent solving subproblems.

diff --git a/docs/Optimizer/domain_reduction/index.html b/docs/Optimizer/domain_reduction/index.html deleted file mode 100644 index ea12f2fc..00000000 --- a/docs/Optimizer/domain_reduction/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Domain Reduction · EAGO.jl: Easy Advanced Global Optimization

Domain Reduction

Domain Reduction

Duality-Based Bound Tightening

Variable bound tightening based on the duality multipliers are supported.

EAGO.variable_dbbt!Function.
variable_dbbt!

Tightens the bounds of the _current_node using the current global upper bound and the duality information obtained from the relaxation.

Special Forms

Bound tightening for linear forms, univariate quadratic forms, and bivariate quadratic forms are also supported.

classify_quadratics!

Classifies constraints as univariate or bivariate and adds them to storage vectors.

EAGO.lp_bound_tightenFunction.
lp_bound_tighten

Performs the linear bound tightening.

univariate_kernel

Kernel of the bound tightening operation on univariant qudaratic functions. Called for each univariate function.

univariate_quadratic

Performs bound tightening on all univariate quadratic functions.

Constraint Propagation

EAGO contains a constraint propagation architecture that supported forward and reverse evaluation of set-valued functions on the directed acyclic graph (DAG). The interval contractor and reverse McCormick relaxation-based contractors are currently available.

EAGO.cpwalkFunction.
cpwalk

Performs forward-reverse pass on directed graph as part of constraint propagation.

Optimization-Based Bound Tightening

EAGO makes use of an optimization-based bound tightening scheme using filtering and greedy ordering as detailed in: Gleixner, A.M., Berthold, T., Müller, B. et al. J Glob Optim (2017) 67: 731. https://doi.org/10.1007/s10898-016-0450-4

aggressive_filtering!

Excludes OBBT on variable indices after a search in a filtering direction.

aggressive_obbt_on_heurestic

Routine that determines if aggressive filtering should be used. Currently, a user-specified option.

EAGO.bool_indx_diffFunction.
bool_indx_diff

Utility function used to set vector of booleans z to x & ~y. Avoids the generation of conversion of the BitArray created by broadcasting logical operators.

EAGO.obbtFunction.
obbt

Performs OBBT with filtering and greedy ordering as detailed in: Gleixner, A.M., Berthold, T., Müller, B. et al. J Glob Optim (2017) 67: 731. https://doi.org/10.1007/s10898-016-0450-4

trivial_filtering!

Excludes OBBT on variable indices that are tight for the solution of the relaxation.

diff --git a/docs/Optimizer/high_performance/index.html b/docs/Optimizer/high_performance/index.html deleted file mode 100644 index 3c06ffb0..00000000 --- a/docs/Optimizer/high_performance/index.html +++ /dev/null @@ -1,15 +0,0 @@ - -High-Performance Configuration · EAGO.jl: Easy Advanced Global Optimization

High-Performance Configuration

High-Performance Configuration

LP Solver Selection

By default, EAGO uses GLPK for solving linear subproblems introduced. Using a commercial linear solver is highly recommended such as Gurobi, CPLEX, or XPRESS is highly recommended. Both Gurobi and CPLEX are free for academics and installation information can be found through http://www.gurobi.com/academia/academia-center and https://www.ibm.com/developerworks/community/blogs/jfp/entry/CPLEXIsFreeForStudents?lang=en, respectively.

A non-default LP solver can then be selected by the user via a series of keyword argument inputs as illustrated in the code snippet below. The relaxed_optimizer contains an instance optimizer with valid relaxations that are made at the root node and is updated with affine relaxations in place. Options can be passed to this optimizer using keyword arguments when initializing EAGO using the withoptimizer syntax in JuMP by defining an Iterators.Pairs structure assigning it to the `relaxedoptimizer_kwargs` keyword argument. MOI.


-# Create opt EAGO Optimizer with CPLEX for use with MOI routines
-opt = EAGO.Optimizer(relaxed_optimizer = Gurobi.Optimizer(OutputFlag=0))
-
-# Create the same model m using an options dictionary in JuMP
-relaxed_optimizer_kwargs = Dict{Symbol, Any}()
-opt_dict[:relaxed_optimizer] = Gurobi.Optimizer()
-opt_dict[:relaxed_optimizer_kwargs] = Iterators.Pairs([:OutputFlag], [0])
-
-m = JuMP.Model(with_optimizer(EAGO.Optimizer; opt_dict...))
-
-# Create the same model m is keyword arguments in JuMP
-m = JuMP.Model(with_optimizer(EAGO.Optimizer; relaxed_optimizer = Gurobi.Optimizer(),
-                                              relaxed_optimizer_kwargs = Iterators.Pairs([:OutputFlag], [0])))

Ipopt Build

Ipopt is the recommended solver for upper bounding problems. Ipopt's performance is highly dependent on the linear algebra package used (up to 30x). By default MUMPS is used. It's recommended that you either compile Ipopt with HSL MA57 or the Pardiso linear algebra packages with a machine specific Blas library (for Intel users the JuliaPro MKL version is recommended). For information on this, see the below links:

  • Compiling Ipopt: https://www.coin-or.org/Ipopt/documentation/node13.html
  • Julia Specifics:
    • Pointing Ipopt to a compiled version:
      • Ipopt Package Info: https://github.com/JuliaOpt/Ipopt.jl
      • Discourse discussion: https://discourse.julialang.org/t/use-ipopt-with-custom-version/9176
    • Issues using Pardiso:
      • Ubuntu: https://github.com/JuliaOpt/Ipopt.jl/issues/106
      • Windows: https://github.com/JuliaOpt/Ipopt.jl/issues/83
  • HSL Website: http://www.hsl.rl.ac.uk/ipopt/
  • Pardiso Website: https://pardiso-project.org/
diff --git a/docs/Optimizer/optimizer/index.html b/docs/Optimizer/optimizer/index.html deleted file mode 100644 index 6e67dc24..00000000 --- a/docs/Optimizer/optimizer/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -EAGO Optimizer · EAGO.jl: Easy Advanced Global Optimization

EAGO Optimizer

EAGO Optimizer

The EAGO.Optimizer object holds all algorithm solution information. A description of all user-facing options has been provided in the docstring.

EAGO.Optimizer

EAGO.OptimizerType.
Optimizer

The main optimizer object used by EAGO to solve problems during the optimization routine. The following commonly used options are described below and can be set via keyword arguments in the JuMP/MOI model:

  • presolve_scrubber_flag::Bool: Replace code in user-defined functions which may prevent method overloading on Real subtypes (default = false).
  • presolve_to_JuMP_flag::Bool: Create and use DAG representations of user-defined function (default = false).
  • presolve_epigraph_flag::Bool: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Apply the epigraph reformulation to the problem (default = false).
  • presolve_cse_flag::Bool: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Enable common subexpression elimination for DAG (default = false).
  • presolve_flatten_flag::Bool: Rerranges the DAG using registered transformations (default = false)
  • cp_depth::Int64: Depth in B&B tree above which constraint propagation should be disabled (default = 1000).
  • cp_repetitions::Int64: Number of repetitions of forward-reverse passes to perform in constraint propagation (default = 3).
  • cp_tolerance::Float64: Disable constraint propagation if the ratio of new node volume to beginning node volume exceeds this number (default = 0.99).
  • cp_interval_only::Bool: Use only valid interval bounds during constraint propagation (default = false).
  • relaxed_optimizer::S: An instance of the optimizer used to solve the relaxed subproblems (default = GLPK.Optimizer()).
  • relaxed_optimizer_kwargs::Base.Iterators.Pairs: Keyword arguments for the relaxed optimizer.
  • obbt_depth::Int64: Depth in B&B tree above which OBBT should be disabled (default = 1000).
  • obbt_repetitions::Int64: Number of repetitions of OBBT to perform in preprocessing (default = 3).
  • obbt_aggressive_on::Bool: Turn aggresive OBBT on (default = false).
  • obbt_aggressive_max_iteration::Int64: Maximum iteration to perform aggresive OBBT (default = 2)
  • obbt_aggressive_min_dimension::Int64: Minimum dimension to perform aggresive OBBT (default = 2)
  • obbt_tolerance::Float64: Tolerance to consider bounds equal (default = 1E-9).
  • obbt_variable_values::Vector{Bool}: Variables to perform OBBT on (default: all variables in nonlinear expressions).
  • lp_depth::Int64: Depth in B&B tree above which linear FBBT should be disabled (default = 1000).
  • lp_repetitions::Int64: Number of repetitions of linear FBBT to perform in preprocessing (default = 3).
  • quad_uni_depth::Int64: Depth in B&B tree above which univariate quadratic FBBT should be disabled (default = -1).
  • quad_uni_repetitions::Int64: Number of repetitions of univariate quadratic FBBT to perform in preprocessing (default = 2).
  • quad_bi_depth::Int64: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Depth in B&B tree above which bivariate quadratic FBBT should be disabled (default = -1).
  • quad_bi_repetitions::Int64: Number of repetitions of bivariate quadratic FBBT to perform in preprocessing (default = 2).
  • subgrad_tighten::Bool: Perform tightening of interval bounds using subgradients at each factor in each nonlinear tape during a forward-reverse pass (default = true).
  • subgrad_tighten_reverse::Bool: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Used to enable/disable subgradient tightening of interval bounds on the reverse pass (default = true).
  • cut_max_iterations::Int64
  • cut_cvx::Float64: Convex coefficient used to select point for new added cuts. Branch point is given by (1-cut_cvx)*xmid + cut_cvx*xsol (default = 0.9).
  • cut_tolerance::Float64: Add cut if the L1 distance from the prior cutting point to the new cutting point normalized by the box volume is greater than the tolerance (default = 0.05).
  • objective_cut_on::Bool: Adds an objective cut to the relaxed problem (default = true).
  • upper_optimizer::T: Optimizer used to solve upper bounding problem (default = Ipopt.Optimizer())
  • upper_factory::JuMP.OptimizerFactory: OptimizerFactory used to build optimizer that solves the upper bounding problem (default = with_optimizer(Ipopt.Optimizer, kwargs), check Optimizer constructor for kwargs used).
  • upper_bounding_depth::Int64: Solve upper problem for every node with depth less than upper_bounding_depth and with a probability of (1/2)^(depth-upperboundingdepth) otherwise (default = 4).
  • dbbt_depth::Int64: Depth in B&B tree above which duality-based bound tightening should be disabled (default = 1E10).
  • dbbt_tolerance::Float64: New bound is considered equal to the prior bound if within dbbt_tolerance (default = 1E-9).
  • branch_cvx_factor::Float64: Convex coefficient used to select branch point. Branch point is given by branch_cvx_factor*xmid + (1-branch_cvx_factor)*xsol (default = 0.25)
  • branch_offset::Float64: Minimum distance from bound to have branch point normalized by width of dimension to branch on (default = 0.15)
  • branch_variable::Vector{Bool}: Variables to branch on (default is all nonlinear).
  • branch_max_repetitions::Int64: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Number of times repeat node processing prior to branching (default = 4).
  • branch_repetition_tol::Float64: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Volume ratio tolerance required to repeat processing the current node (default = 0.9).
  • rounding_mode::Symbol: Interval rounding mode to use (default = :accurate)
  • node_limit::Int64: Node limit (default = 10^7).
  • time_limit::Float64: Time limit in seconds (default = 3600).
  • iteration_limit::Int64: Iteration limit (default = 3000000).
  • absolute_tolerance::Float64: Absolute tolerance for terminatin (default = 1E-3).
  • relative_tolerance::Float64: Relative tolerance for terminatin (default = 1E-3).
  • local_solve_only::Bool: Perform only a local solve of the problem (default = false).
  • log_on::Bool: Turns logging on records global bounds, node count and run time. Additional options are available for recording information specific to subproblems (default = false).
  • log_subproblem_info::Bool: Turns on logging of times and feasibility of subproblems (default = false).
  • log_interval::Int64: Log data every log_interval iterations (default = 1).
  • verbosity::Int64: The amount of information that should be printed to console while solving values range from 0 - 4: 0 is silent, 1 shows iteration summary statistics only, 2-4 show varying degrees of details about calculations within each iteration (default = 1).
  • output_iterations::Int64: Display summary of iteration to console every output_iterations (default = 10).
  • header_iterations::Int64: Display header for summary to console every output_iterations (default = 100).
  • enable_optimize_hook::Bool: Specifies that the optimize_hook! function should be called rather than throw the problem to the standard B&B routine (default = false).
  • ext::Dict{Symbol, Any}: Holds additional storage needed for constructing extensions to EAGO (default = Dict{Symbol,Any}).
  • ext_type::ExtensionType: Holds an instance of a subtype of EAGO.ExtensionType used to define new custom subroutines (default = DefaultExt()).

Internal Storage Structures

VariableInfo

A structure used to store information related to the bounds assigned to each variable.

  • is_integer::Bool: Is the variable integer valued?
  • lower_bound::Float64: May be -Inf even if haslowerbound == true
  • has_lower_bound::Bool: Implies lower_bound == Inf
  • upper_bound::Float64: May be Inf even if hasupperbound == true
  • has_upper_bound::Bool: Implies upper_bound == Inf
  • is_fixed::Bool: Implies lowerbound == upperbound and !haslowerbound and !hasupperbound.
ExtensionType

An abstract type the subtypes of which are associated with functions method overloaded for for new extensions. An instance of the DefaultExt <:ExtensionType structure to the Optimizer in the ext_type field.

EAGO.LogType.
Log

A structure used to store information on the history of the solution procedure for generating convergence plots and other analysis.

  • current_lower_bound::Vector{Float64}: Storage for lower bound calculated for current node.
  • current_upper_bound::Vector{Float64}: Storage for upper bound calculated for current node.
  • preprocessing_time::Vector{Float64}: Storage for preprocessing time of each iteration.
  • lower_problem_time::Vector{Float64}: Storage for lower bounding time of each iteration.
  • upper_problem_time::Vector{Float64}: Storage for upper bounding time of each iteration.
  • postprocessing_time::Vector{Float64}: Storage for postprocessing time of each iteration.
  • preprocessing_feas::Vector{Bool}: Storage for preprocessing feasibility of each iteration.
  • lower_problem_feas::Vector{Bool}: Storage for lower bounding feasibility of each iteration.
  • upper_problem_feas::Vector{Bool}: Storage for upper bounding feasibility of each iteration.
  • postprocessing_feas::Vector{Bool}: Storage for postprocessing feasibility of each iteration.
  • global_lower_bound::Vector{Float64}: Storage for best (global) lower bound at each iteration.
  • global_upper_bound::Vector{Float64}: Storage for best (global) upper bound at each iteration.

Extending EAGO

Functionality has been included that allows for extension's to EAGO's optimizer to readily be defined. This can be done in two ways first defining a new structure which is a subtype of EAGO.ExtensionType and overloading methods associated with this new structure. An instance of this new structure is provided to the EAGO.Optimizer using the ext_type keyword. This results in EAGO now dispatch to the new methods rather than the generally defined methods for the parent type. For a complete example, the reader is directed to the interval bounding example and quasiconvex example. Alternatively, the user can overload the optimize_hook! for this subtype which will entirely circumvent the default global solution routine. Additional information can be stored in the ext field of EAGO. In order to allow for compatibility between packages the user is encouraged to append their extension name to the start of each variable name (e.g. newext_newdata).

diff --git a/docs/Optimizer/relax_back/index.html b/docs/Optimizer/relax_back/index.html deleted file mode 100644 index 1fc420fb..00000000 --- a/docs/Optimizer/relax_back/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Relaxation Backend · EAGO.jl: Easy Advanced Global Optimization

Relaxation Backend

Relaxation Backend

Quadratic Relaxations

relax_convex_kernel

Stores the kernel of the calculation required to relax convex quadratic constraints using the immutable dictionary to label terms.

relax_nonconvex_kernel

Stores the kernel of the calculation required to relax nonconvex quadratic constraints using the immutable dictionary to label terms.

relax_quadratic_gen_saf

Default routine for relaxing nonconvex quadratic constraint lower < func < upper on node n. Takes affine bounds of convex part at point x0 and secant line bounds on concave parts.

EAGO.relax_quadratic!Function.
relax_quadratic!

Relaxes all quadratic constraints in x optimizer.

Nonlinear Relaxation

EAGO.relax_nlp!Function.
relax_nlp!

A rountine that relaxes all nonlinear constraints excluding constraints specified as quadratic.

objective_cut_linear!

Adds linear objective cut constraint to the x.relaxed_optimizer.

Nonlinear Storage Structures

FunctionSetStorage

A storage object for both set and number valued data required to compute relaxations which contains the tape used to compute a nonlinear function. The object is parameterized by a {N,T<:RelaxTag} where N corresponds the subgradient size used in the MC object.

  • nd::Vector{JuMP.NodeData}
  • adj::SparseMatrixCSC{Bool,Int64}
  • const_values::Vector{Float64}
  • setstorage::Vector{MC{N,T}}
  • numberstorage::Vector{Float64}
  • numvalued::Vector{Bool}
  • tp1storage::Vector{Float64}
  • tp2storage::Vector{Float64}
  • tp3storage::Vector{Float64}
  • tp4storage::Vector{Float64}
  • tpdict::Dict{Int64,Tuple{Int64,Int64,Int64,Int64}}
  • grad_sparsity::Vector{Int64}
  • hess_I::Vector{Int64}
  • hess_J::Vector{Int64}
  • dependent_subexpressions::Vector{Int64}
SubexpressionSetStorage

A storage object for both set and number valued data required to compute relaxations which contains the tape used to compute a nonlinear subexpression. The object is parameterized by a {N,T<:RelaxTag} where N corresponds the the subgradient size used in the MC object.

  • nd::Vector{JuMP.NodeData}
  • adj::SparseMatrixCSC{Bool,Int64}
  • const_values::Vector{Float64}
  • setstorage::Vector{MC{N,T}}
  • numberstorage::Vector{Float64}
  • numvalued::Vector{Bool}
  • tp1storage::Vector{Float64}
  • tp2storage::Vector{Float64}
  • tp3storage::Vector{Float64}
  • tp4storage::Vector{Float64}
  • tpdict::Dict{Int64,Tuple{Int64,Int64,Int64,Int64}}
  • linearity::JuMP._Derivatives.Linearity

Nonlinear Evaluator

EAGO.EvaluatorType.
Evaluator

MOI.AbstractNLPEvaluator for calculating relaxations of nonlinear terms.

Internal Functions Used by Evaluator

set_current_node!(x::Evaluator, n::NodeBB)

Sets the current node in the Evaluator structure.

eval_objective_lo

Retrieves the lower bound of the objective.

eval_constraint_cc(d::Evaluator, g::Vector{Float64}, y::Vector{Float64})

Populates g with the concave relaxations of the constraints of d evaluated at y.

eval_constraint_lo!(d::Evaluator, g::Vector{Float64})

Populates g with the lower bounds of the constraints of d.

eval_constraint_hi!(d::Evaluator, g::Vector{Float64})

Populates g with the upper bounds of the constraints of d.

eval_constraint_cc_grad(d::Evaluator, g, y)

Populates g with the subgradients of the constraints of d evaluated at y.

get_node_lower(d::FunctionSetStorage, i::Int64)

Retreives the lower bound of ith term in the tape of d.

get_node_upper(d::FunctionSetStorage, i::Int64)

Retreives the upper bound of ith term in the tape of d.

forward_reverse_pass(d::Evaluator, x::Vector{Float64})

Performs a d.fw_repeats forward passes of the set-value evaluator each followed by a reverse pass if d.has_reverse as long as the node between passes differs by more that d.fw_atol at each iteration.

diff --git a/docs/Optimizer/starting/index.html b/docs/Optimizer/starting/index.html deleted file mode 100644 index c7685b9e..00000000 --- a/docs/Optimizer/starting/index.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - Solving simple example: an artificial neural network with EAGO · EAGO.jl: Easy Advanced Global Optimization - - - - - - - - - - - - - -
-
- -
-
Solving simple example: an artificial neural network with EAGO
-
-

Solving simple example: an artificial neural network with EAGO

-

Matthew Wilhelm Department of Chemical and Biomolecular Engineering, University of Connecticut

-

In [1,2], a surrogate ANN model of bioreactor productivity was constructed by fitting results from computationally expensive CFD simulations. The author then optimized this surrogate model to obtain ideal processing conditions. This - optimization problem is given by:

- -
using JuMP, EAGO
-
-# Box constraints for input variables
-xLBD = [0.623   0.093   0.259   6.56   1114   0.013   0.127   0.004]
-xUBD = [5.89    0.5     1.0     90     25000  0.149   0.889   0.049]
-
-# Weights associated with the hidden layer
-W = [ 0.54  -1.97  0.09  -2.14  1.01  -0.58  0.45  0.26;
-     -0.81  -0.74  0.63  -1.60 -0.56  -1.05  1.23  0.93;
-     -0.11  -0.38 -1.19   0.43  1.21   2.78 -0.06  0.40]
-
-# Weights associated with the output layer
-D = [-0.91 0.11 0.52]
-
-# Bias associated with the hidden layer
-B1 = [-2.698 0.012 2.926]
-
-# Bias associated with the output layer
-B2 = -0.46
-

Construct the JuMP model and optimize

-

We now formulate the problem using standard JuMP[3] syntax and optimize it. Note that we are forming an NLexpression object to handle the summation term to keep the code visually simple but this could be placed directly in the JuMP - expressions instead.

-
# Model construction
-model = Model(with_optimizer(EAGO.Optimizer, absolute_tolerance = 0.001))
-@variable(model, xLBD[i] <= x[i=1:8] <= xUBD[i])
-@NLexpression(model, prop[i=1:3], B1[i] + sum(W[i,j]*x[i] for j in 1:8))
-@NLobjective(model, Max, B2 + sum(D[i]*(2/(1+exp(-2*prop[i]))) for i=1:3))
-
-# Solves the model
-optimize!(model)
-

Retrieve results

-

We then recover the objective value, the solution value, and termination status codes using standard JuMP syntax.

-
# Access calculated values
-fval = JuMP.objective_value(model)
-xsol = JuMP.value.(x)
-status_term = JuMP.termination_status(model)
-status_prim = JuMP.primal_status(model)
-
-println("EAGO terminated with a status of $status_term and a result code of $status_prim")
-println("The optimal value is: $fval, the solution found is $xsol.")
-

Reference:

-
    -
  1. J. D. Smith, A. A. Neto, S. Cremaschi, and D. W. Crunkleton, CFD-based optimization of a flooded bed algae bioreactor, Industrial & Engineering Chemistry Research, 52 (2012), pp. 7181–7188
  2. -
  3. A. M. Schweidtmann and A. Mitsos. Global Deterministic Optimization with Artificial Neural Networks Embedded https://arxiv.org/pdf/1801.07114.pdf
  4. -
  5. Iain Dunning and Joey Huchette and Miles Lubin. JuMP: A Modeling Language for Mathematical Optimization, SIAM Review, 59 (2017), pp. 295-320.
  6. -
- -
- - - diff --git a/docs/Optimizer/udf_utilities/index.html b/docs/Optimizer/udf_utilities/index.html deleted file mode 100644 index e3fc9fd1..00000000 --- a/docs/Optimizer/udf_utilities/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -User-Define Functions and DAG Utilities · EAGO.jl: Easy Advanced Global Optimization

User-Define Functions and DAG Utilities

User-Define Functions and DAG Utilities

EAGO has included basic functionality to manipulate user-defined functions. These features are largely experimental and we're interested in providing additional for novel use cases. Please contact us by opening an issue in the Github issue tracker with any questions or requests for additional features.

DAG Substitution and Flattening

dag_flattening!

Flattens (usually) the dag by making all registered substitutions for every nonlinear term in the Optimizer.

flatten_expression!

Flattens (usually) the dag by making all registered substitutions for the expression expr::_NonlinearExprData. Performs a depth-first search through the expression adding the terminal node to the stack, then checking to determine if it matches a registered substitution pattern. If it doesn't not then node is added to the new expression graph representation and it's children are added to the queue. If an expression (node) is identified as a pattern then it is substituted and any children expression nodes are then checked for patterns until the depth first search is exhausted.

register_substitution!

Specifies that the src::Template_Graph should be subsituted out for the trg::Template_Graph.

Conventions for substition, the expression to be checked always appears at key 1 in the Template_Graph and operations are ordered from low value to high value left to right so if 1 is a -, and 4 => 1, 3 => 1 then the expression is 4 - 3

Template_Graph

Holds a list of Template_Nodes, set of directed edges, lengths, an adjacency matrix and the number of children.

Template_Node

A structure which holds a symbol indicating whether the node is an operator, a number, or an expression type, a value which identifies the function or symbol value, potentially a numeric value num_value, and a check that can be run to verify the node is correct check.

User-Defined Function (UDF) Scrubber

EAGO.Script.scrubFunction.
scrub(f::Function, n::Int, inplace = false)

Replaces storage objects and circumvents assertions that present a UDF from being overloaded with subtype Real objects by creating a function which overdubs f in ScrubCtx.

EAGO.Script.scrub!Function.
scrub!(d::_NLPData)

Applies scrub to every user-defined function in the a _NLPData structure.

diff --git a/docs/SemiInfinite/SIPProbFormulation.png b/docs/SemiInfinite/SIPProbFormulation.png deleted file mode 100644 index 212e1c5c2311cdefe921ba294fc2802f84a3d03f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34285 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 IsSY9k0|4GI1^@s6 diff --git a/docs/SemiInfinite/semiinfinite/SIPProbFormulation.png b/docs/SemiInfinite/semiinfinite/SIPProbFormulation.png deleted file mode 100644 index 95419e4d3ab77857253483d9fdc19097a634f32d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21285 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[ z=$l9@N_L9OTw+xtoR$Yy8-b5+y5;3YAcIv!47{mb-|Zo;ski)d7Vfhq!nhiu!<+YY z!s$L>$Ke}{&lS(66-BG-i_J|jN0eR&UG4^~)JP6w2y{rm9yu^FdnhVOSv_aXFBRE! zwyi)h8f1ezu*DIXFyE##516ojzWUJ}B?I<6e^xnat01fK<83vn`SRCs%_q|)Pqv2x ze!vl(yIcVc^hHI7w$>vbxwAaiP(7h>opSqrPV$K6nE$d`t$((0BbSU{cXV9kle?R& zw`Dj%OkRFByF6&;pSC?1T8K*eyIZ~A=!5KrspvAJYC3>P_0T%)&Vow_;2N9lK-e?$ zOoP^Y2g0#?(djX4$hB{CZU@D6ZdNveP1hgmMv%n=qcT74?sVFJySJ@#7l}m&zwVa+ zVh!-j#T9QL1!5a7V)Cl=vS;F$tw1WQq~Y)vmk(<1Zd8Ww4c_|4khLak9u9vbF{ChX z$Jbp2P>lcNz5nfha%w#Kl{Bu8L}0ZMQUQ6(7X^Z-L)0&vF_qE86PiZiYh+8tjK4WX z7&Re=EDd5~H{J#)2%;(z24vCq7^j|-gb4qrOJw59@Jmx@1(Jjg*^bYJ`*N;Ea&){`-PW; z2y!=-Dhf^K^y3HQL;lOaW~e<`i>5jJZTmmYou30C*NKIqu~*1G53c(`rx#VUqYE?H z#O&3Kbu#iuBv-cIv`ZMjX&C(Iz@B)Y?1kfeypv}w8~J(}07qut6oBbu>=6iBD!H4N zx@wrjZvC!!B*EO4M-Ux6RHN%N5_c((PgY~b?b$WN6T}Gd=o0n*q5izJgZiVeW`$G- z^@~zhPK$<8aHl-+a>?W?h5kxl<)72U(ek1-BwM_6D>QGzj_jSEQ%?-?z>-#Y2vG69 zNZUmVP-mU{=z60u&}gDGi67f*P|giT#fIX!>gfw(#P?eL>>R=2HY0=hdRUkZ7ToYs zE%}y5kzJ5T*YN?eNg3V7?8^1W$G?{E zlll8EGZ(0_6qO@G;~oMV4-SqV`y53}#;DymuitMpaq|{-mU)A{dDE5|7IBI3pZL1B z1k;+9q5CD|&AY{H(UH{mh5Dk_B1i-ELwx?&y&43GFs?scxTBwn<`1m`A z_xA>QgQn-32_NB!Nt{Z3#{RmVozvN%BLZ5rj|)?ObTbYAd=jHV)T%vulo)r1#DDaT zE%OTJ2#v+zWz++<4`1d|JZ74kVxUQEXRiWGXyUchwL5-vo@cJ+BCn`8^2*p-W!Kid zd-1I4LH|@$T)M78YKI2Kfk=-t2XK4C#=2bHwDj8AyS4_qBO(jHKj#|#cM@s!`B495 za(?f9beS9G;Cr-NHk9Dvd34&RxNK8AETB{<2P<241hm)%RnO*Tk)g$eE*50q!v1A! zBDGui6U~s?<#JZ`@-a68*K%z=spaf{s4wtBwS%pgh#EfKtESk-5=MIrz)iN54n)1m zt*})3d+Rt9X%3Ukl!vZ?PK%G;0#kb)dyy5i*}prK<$zICK+juT9wd_9PP9R|f=5>A zV`~~JQs+faOl(D19lQEdPd5-1(q-NGtGj0Yqb#XN%1$k+fe8$+LpL&_%1{15i%g!2 zZyUdOi=A_p5qn-D((k{SsLlAmZd3YLx4MF!o$rL96ZN;hZE5+SY>j*y5aJ;f z=lb#p77V5W1{$OVrlv9+${Tgc;IGVn0Y>aDx;|@F+c;;$JMA0tDDoPtTrXvAYaOIn zhdv1U`=@}@=ThXpw6_Yw~BGv;Mq&q9ZCN{~XqLLlU9rXwRUBtnC3hn>co*PY=0;pxL+Z>($d6dy6&01F;}@ z&n482?2?e`+j%qk+krb6GB9E9EP~|HPw$)F)A_->Ff^d!bV$%01Tapv#H#<$ z><`kH!g(>?sVM5UFjtl@-J&-Uy16cp0bL6=6GSyT9Zq>S;&*mCTTOOn;asP#Lp@aL zLjU@H1dvk+IBZR;#2N8mkc1&)Ayq$U-)JqL+-~j<0Mn?W))G}b`_0{@!w_sVlRH)3 z@X1=R0fBmVOvh=RyJD2QK{bpLwV}`4HgyySx`2|$+3fg(`~aOF|G3^g3W+If6yDJM zj`Z!XuF0h!o|>;mnNk^*;10Hx-%NMywJ8g@IM zb%R)R(RJAgT>3{MMw}O+nH5FVA~=~+=B_>eR&0c?0rX+r;S{2F>7@Vf^{3}wMsa<= z662vY8=@M43j5`Gb9Cz|UZIDi8Q6`~ozp=_L6?#K+y=A$tVDkZqOt9h&hk7)F@u$kXRCJxXtFi$lC_SeQg+&!```pPG* zK;Fp7v%gLqi9Nr)G~Iseb0uQOFV4N=c_fDYaiC%Hf9JWV?1s~Oc;09n!#PCY+q}Fl z`j*@SUz_q|QSlVBPqQ7D@T=ZVOGoR4?HUTudeGb2vr$q=GNMXRJ&Mv~<>`%YmdW(i zRK7jNw2#m5<6Y41@G1})geqrPEpMcfEBI0erq0|j|4mIc0#Zp&sf8n({pBj7gd_I< z3dwmPY>(!n_Bdh5GLq-`ou4FPXdkEC{O#X7QODhk8~sSnowW-c$!B|VnUqX;Tcawx ztXu2or9Cg$YbNO0WspEhGxyUT^?GiG)E8hhv&3&z4xaxWYx zAJ;!;5>_aa)tyk#wa&g_!VV=^W8h50AfJrNwt9DAu*OE+AsQ{ePP}S9%Wv#$LZtzFQj*!*EqcDh*#P)w znZ^!4K<V6=eX0>}xL)sv6M3RYTd6zhdCBv*2%Tf=J8c{KV z+Gs1c+Sz=@VFt6VzNKR#1H{^r64QT%ez@3Yslo~RT*cbn5KT{IN9swTAw9@QI_x2l-V^B9Zf|Vq9i-{;4DB%~RUp z#KR-UB&?UW!80;gf`STup_T?^UJH58YBxO0OTNm4wi7>f#&`FtC`6yl_D2;EB)>p ztQ@|5l}}cI`6=Eqrp*=dS6ffUh)R>`L-d7~xUiULSDje88Xqx+{nvl^HgPpMHgWl0 zK|bQHjozKD-em7|ECJ8h2@1gjY#BhoAsJX2u4_8kj>dol=@9H*4#9^)mM_Rql zWxxa!Y+IGETgsgN7wJ>iD=yM~lDy|d9$69Q)atJm(w=_AiQuLUrj348q4JAemK@4& z*E@(RqfG9*brOR@$)H=Lhn=#Q3yE7;>`#|OsZE?Xl%PWiQ?;}8G%Q<=unHwMB3I}1 z<+1o&?B2&7n~hY}0`xgpHLMsM_N7Q)rXfg~9t$%ewX3_Z{U_{}s(-)P2C+S)ZhG<$+sF<-53 z<|$Rrwn(V@5(5`U=zJanl|Z38wK?#e0$3) z09JzD+TFthkPWkiWA#tU0f4f-KIUVqz@=lmL1J!HHtF$(oGWAJ;_SM7>i<-7-j7f? z{vS6gakz-=Loz}}nQ=}i%IM0+yOfHGy&Vu=Imn_43bLOUH5RM#7o7D@OW=5MMe@5E(NEIK26Z zElJ=I-1DHXso!{OZ02cVwA4x1wu*IEg$c1AL_9_*R#SFM zZfp4JmNZZFEd=ZPB#$N*h4>k1*#zwL^KPUlo<*z$In3_KO&00#=qj#Z*tv@aHYL$k*IokY zB-C}X9eDhNrwSjaC4ahVs9@a|p@p4G-!+PP>mZxvRu5J!I(*WL$P9RJ?q%nh8n(r?xD;E zD9}lJ?^?U~-kQ`OJrp2+yDdbI?2X{sc59CHp_-q#UWO)ZF29_`i^L|9Mq0|Ixy_%6 z#l$kOnF2dBYJ_dmKOFH%yhyH9vwA%`4R|nPj0v|a%X0lwE8Z4`zbR*uQOj(OXPe8; z`aUH!ULWKeERq%Kl_Fo9@b0rR3}$$!ef`-aZPcM(&tD$_cD0sZ@z$90_40X8gmj_8 z#>CloLNN2Qg8-dLcfKClaVW>4qIn*0W{dWnmR#~Z7S`oHBAC;3FMpi`o}Pv`q}dId14VZ^kd# znM4SBn# z<;x?~iwM#T)N_~+tG-9W*Ywy{9o6IG|{#0*CdQB+VL!vdnS(xwL zBu~*S!Y-xb^jr38#q+SBJ8gfnNV1jD&NhLOv*LDU*Kt{-9A+T2bhkReC{ob6~ zVq6zTlf}|)w`^0oNcf1qW>F8JEO6@O7R_|Bu}{PojZ>XSwl7x|cZ{$Muy&}7BYX^? z^g||ul~Eu`0Kcj9oz*aY#o)icY4d?~s7}k;si^RJ(?7UN=m3HydGCQ=P^yTS7MKM2z(*rV2vvX-Yilxfox9bcK zU2Plb71x~jYaWyLk&pkl3hcIBsf}^|M8!TQ?{}7O@$pz&t>rWCMo~;4w-Pa{?@%^( zhmO0@-a_8_xuoJ6qG01tdC6zJw<{dEwW zQDXaiQ~Q$YUe5XIpUdUJMoghzbwRY*OZxG*F0Kl91U6Zm-e=7lN3S}2I+WklEgJ)4a zm<`>7)rRv&&Ft3TWqhkW$0+XB+>X6L-6e}{2pTjd;UX->vVHw60IgcR4l@mUBO-WUg*VuulKtF z6yDRu0W%aH%zGT~b|vPEM>64&W)PX)NvAsr7UbpDQuU6kZcUMr zm4^WJlww#Up{Iqv)#zNgk|?d}cdklL`Z4Y&Hc*|`904|1h|J52OF9%q+X!>TKpY~( z_aE*gy292cCU3XD5RuYcOFaxl8Z=U)hOFM2_mY*S>KttS&xAhysWwHNaA4N^SVyQi z-3#tN@16(UCAGd$a9{ZMW=N<)>X4OG+`!{^U1cYxHiq{+_M*{y#kqz6(fK|jOL{Oa z!y66m^~5zTig6{Z9xf!o4EYRx=K8sH5|iYaQHU0BJoe~NheoF?`10I*7kKK=wbE=B zb1k6*dnt1c5zkLR4qN{f7pv6ERI9~Zc8xe@q8zROlT&ML%-hBXj@CbaVu%xGX*X9h zn9+vboH5U)LNz+3(sftd4dNm%SBo0G@obddeEDfxejTs;b-07pPnhM#`E zFZ!*4f_2~Xz0o~b2SK(geNnBwq<%ZG1K1DP9A-GoYWyz_+L2zBY4oQH8u6551H4<) zZAnqA;{mMKn8l2am2=c5SI+sS6$^HLg~zy!-MsN7wKx-T%Oz|LYx@$Jjww$!?fAjD(hpOG!Us^v;F=#SGnyc#n^0mWXN*Q7h)kd!0Z?K&-82MX;!IYcRy zIKRhGe34Z|ErJ{(nA=@B=i5WP#BaN*$57Eq)w91t{+u?DgWFPJA~ zO0+KAA{9*62V#TTGt$t(_uD*xC63=G?)d>MVR1aO%G7RffyXLQy5C^UsyT8&mt&ry z%^En%l(ImK1G=@-Rio@Aa@@5c_>l`;@!g&@apc#+`|QA@wFOV^vC%;1L@GLgeOEMf z69y+N=llePvLXqsM1fS^cJAW;^_|t73S*d8x^XODBSjJ4?&5`R_#UoyNSgBaa_JHe7(GVp19Y%P2^uIyfQz zR}!r2iW}UWN0Bd;wG;KLWfo*AQ}(`GyFo@&TN10;OUBisQ)RCkGL013Eb=Z3(#)^a zvCe_q1e?LG(WOtP`ZR%5d7$D0Ki-W?Pi%suGcAa*X7_#tl`;Hz78!Q==<+e?DR|L4 z-VmdyfT5qRsXMR?=GeDPW6JI)+1gIP?!>~+j4$E|`>_hONHm9F-q1^M1r3oA7I=r> z1}?b*lGb)XfQ`Tzt%OAG&nJN$g#8psJj(nR?8HCkGEHUmRS$NvG*I;yU>UU47I@Wz zbo|AFcdZQ>4UhlFJfFFhOz=474WGT0?L2xlAe6Abt{N#3^4B1l=bOyk(<59@YH5J` zrt|bZBK&l*o7|nB{nNSQomJF>etHOF-b#bvDoTL%3VHldV9@A7S4DCeB2BFiBq__E=!z~hbPbE%++~Y?YylOU8+DmSB zZA^OxN|j_gQB`X1-h6i8){cV%8Upw3%SL`8i4aMXv4mUNXB_J=p6&XN-#Ur0e8 z;{z;v=p@0?YUt8{9}kaO1gG>Dg9P5gBXrzWjBFXM%SxLaEX&srDOdnNx|zqHpsaRT z>Z3t6sh|vHR8>)@)0mkOt?gDi-E%3TF8r9$>ivJC{3JKeF$qoX#US~*e*A`Bu##lLXN;o;trmMyqI0qV0E*u);W2pXZEVuk^-mp4u=e5LZU=XFD-Olo-HKZ&?rsNn*W&K(?(XhT+})uR?t6d!a{q#Flg+b} z%w}dcvy;ut6QQgqg^YlY0001xWu(Pb0RZU#mJs4_kpF>Fmuc1iO3tcMqJWwi!n6Mb zC<_q<5dfe*4)MeIKULtOvb?&)*Votk`}_X>{_N~*e}8{RN5{ax!2JCD-rnBx^YiWP z?eg;S*w|QmdwXYR=j7z%*4Ebb_4U7h|6X5TTUuI-jg2KFB$%0*$;rt%IXP8TRe$~Z zm71FR`T4oAu@N2~uArd6$HzxTMn+9dEiEl=YHI4|=XZ5=6(1ijDJe-qL!+&&Ehs2R zOH0eh$e5RxcYc1})zxKUVnRnp$IZ>HqN1XsqeDtcDkUWq5D+jtJpA|X--m~XsHiA4 zHMRWw{K3INM@L60Dk?56uIT7!adB}bCMGX0uZD((_4W1G*jNSz1{oQdnVFf7kB^Fq z3N|)2eSQ6fg@xeY;PUeFiHQk$d3j!5-onDd?(S|)O-%|43RhRxb#)sXo5#n; zpr9a1N=h>`v+V3_4i1iykr6jHx9RC=5fKr3ditcKq_?-X-Q8VXU0qR8(Vstm?(FPX zSy^RdWU#QX+~41?t*!C%^BWo({`vFA#l_|D@bKyBX=P>Q^z`)T=*ZvSUs+lC;^IO; zKtNVjHX$Lw-rinALnAaa)WgF=PEO9**?DnsaeREdsHmu>rsn14g@=cytgP(p?Cj*^ z#Mai<($dn$$ET#E#MjrCm6bI&HNJ!}0w{J>HN~5Er?Ck8# z&COL+RhO5SF)=a1!oqWNb7^U5m6er0e*6G~!F_#wIXO861qD4lJ#leyo12@So}LyK z7Ik%X-@kuPNl7s`H@~^L`ThHMTU(ovkx^-BX;xNNa&oe_x3{9AVpCI7W@ct9%Nn~Us5fKp~At4S94n96UGBPq278V{J9xg5} z2n52$#>T+Fz{JEvM@RoJ&ihsF75;-e7ga^I|HAwKs{trSuqgWP@bC`OI?ez9%HaP_ zh*A48GXTK!Kt^0d-NWEYUumVXYVo7G&pF-v*ov?d%Y9Fl&?~DQsr3%IF{HLq7<#BT zVm#@^jq0U6LI#8ud0rCmMF&C%5zSYo{XbyXP;8S!XQkzO8^`#EjPxS@i{^jI*OHo8 zaZ-lrVh1Qbh_(igvr;Oqzg6=@^IxIl4ZcTqV59gf4QfTuRFe22fAa%vx3+8ND}P{) zg}mUi33M8m8GTB?Ohxu!{%ysR4wwKVgzUQ^`Pydt+wQ!?^&DQ<=h2NsSu__FsWJSw zZwpE7rMM7(QQ%!FVV#>K44sM(WiWYQDDFn3{y&RS@dEE&E^X%IUBp4Y{~Vj13d;!3 z#xFiq%AwS0K`$m~6`qIB%@8*}laDt2J%uor;y`SFQbwu#*C5tuI@ET{-eYC%Y3u4& zQoL@5-ye6U-noE_8}vNAt?hC>xVkSqAV-A;7KyknR#NLJT*JF=P^PVx`t=c(v}Byh zi!!K?;)W4F`d{pIi>!fA&r*iMi--JAdwAYgCi_Djju4bJTEQ?$mkByp-mJfdjce;0b0K{iFkYo8lw?gO6Fce*mTcuw9=~RjD zTwzt{ewLd?ZPI-ELavNh>YtI$orm5s_=@8p+7$Iq6jT=Gy_#U(PbV^3kUeCw%%9l| zBXNe*g)^>=v2sDd4$DZXKkch&bD&WvN*LqlGzCev?|+4iJr?lZC<^85u*@cEy)5s;t; z#gujXy4L-;f^w2La(kFJ7LbU^g}zgzvG!fz28?{S+i*)IN}XeYdGq?5hN}khf!}V5ZBDa3^er9O26|U3=0lbf!Pt5zPSVi;MO)rpAT|j zE%cZGESAZF2(jzDE$0ulo1o)*YOyD=`;cE%QTFuy6~N9xHr&%BpQ49D6FxeZFb4PB z`8+<|GPEmy&`EFlgOGjhRTI7|klQ}0=vS)6WSs?BXZJ;EP%>M{Q+x85#YMqiwKA$T z@Vs{zZT?VA@%b8NI}zG<4}$n;#`ClwOW~kxN)1Tql6X}sM^Mj#X_j72*1YuyhGqGu zp=ChBdGGv8v_>gk&Q>x#p_fei%SH%C6)pfl^p~E1*|ERvIO|?Wz;;hb<~Q_J9R4)! z1ETAxI5NahFhM(u1b3eXS?%rX?=0F+q*KTnBUm};dl-zO*6y7lcHY&|580TpCR!-I zG%-pSt|(t1h=0yr=e{K!#E7e`2s(nPY}Z2>`z4W{)8corEOv~y$d;Zml= z!kQi+bN_n>7sy)DR#Kn&uaDoO4^|rnyRN^0$v`c!KspN=QXuVE30EfBdUQJCil^g{ zXI2hv`6k%T+av(ic={r>p8<}^2$H)(%Ma;i{Ak*k&Rt<1bl2nPpxjfUGoj${q+kO( z+Ea^Q!bLhzeDZz~8|u*-BxAXJ`b>U#;(Di^Gf}3kUkJK;YN!Zxemn zhF9VCu?9xD@EVk1_^x(qIbQ|j!dt3;z)PE^$u{aqKtm$3=wO1RwS3Jizz~~jz#Ip8 zh)9h4PC#tbB&yVBXrn%Hvo}8wr-yW6VtsKVONUDow9D{f3P1mesiRKAb7hUd+63mk z+Avl#5o?7-cCi7OfJU{^h# zMyR`br?=J@4P`&UhJM8YP5}{dYYf}z{0^-mT7}rFb?#{5^CuW>^~*AGPGIwdKKmAI zaqF~ur^rb1(DcTZs4LI;a(NOMGj40dymQpYb+%WX?DFCTkE7YIx`Rk>oi$BmgJl)h z_W!7YRk!>c;ZYCvw!PgC#Y+obPXY|s_e3eGp_+bev<&y&vB2t#x?e;7RS1J2{=Lfc z2vx6zZM+m=myvZIa5 z82zoVTO&&S zh*^V%l#|m%ltW+O%0}weuMED5Cs@*k6m)UD1hkufHkdzMKP4();RQCF3 z1fK~8tI-<+lqeJ@{nSD zFX_c!9u&I37y~|UgJGe_t&FBJb^(Pot7N)Bq%aC#k!(|-3VzdeW+nY4lDyCUXb}dL z_T%-n_KyS2-9ZRwTI}mk=xFGZL!`6aZ@2z?2AGnu>I&8yFwmP3nibznW$B7AgOC__ zxDoWQXFJ4Yjc``XpBQC5A-xP(s)Be*0rl4kvB9i%ENKR8_R;9(T?gsmWCM;Tu(zSo zwrlDS2q8g4?YPPoRw%}=238(02O>r)ED97Uxyk!eN0J@x>eg>X&Cavm!4ljwNup!r+LOEfz876*#9ni7TdVt!@b#k5K(6dvU(x!X8r`Bl>6HqxgykO>m zrz1PA0@y!BWI3u}?TUF{f)`Oz=%r)YL^WSg-OFiyv(xhh^g?ADuqmmW6wxSmk}AYx z6ALT;RC>Cvh4yBIiqSHJ)*2kzns6dJF^&u2wa3d&n5x|`%+@MxTi5nOq3kP!*K zj1~GlX#DS{%C_tkF%Q1$7luPr^_(mN$+*(i=wn~?(;;PF46a#%fkW8Memh$`JaaJ< z9R&3sO)zP-nWBRE;t1B=q86alBO-~KCmR9km$SY8gS|3%)EDfOM6G(#eYm1IBkuE? zY=&0YKP3X`Q7+J=TK9r`vFw?7!soip8!Hlx0dudcQZu9K>emsOZT8}<))S7DD%bv` zJTDUD=auoGnEiq4icl+pLr};nlTmPj^u3dGJ9#%SCu=+Rn#P9TavWP9QYRewLC;!g zKNwXRX}4UyD0u7W$^@cTZXOc>?cVF0wCxhc3USKBQ=G=Kb)_*3x=TMWk^k`FXp8QX zs;MkVE@1er*%}-6I4A$}nb#t}+CDSF@qj%^zZOilO`4`pl7}0$N#KvqelOEy)@GQkspM&5{Rnuhu(h(Zpq@2iVUG6)Zi%g8Qy1Al|%>glptWSYIu zCEl~1f}o7vLSHDF05CbhoH2KsuM~mhVjdD~mE^69Tzc2pf#m6Ift%aNC5YK^-mK2A zrYs$A!Sdn_`{Xs04lb5UAMdcLKlp$qq!DiSebAzcQH=bo#jCiM@0vtVq!rHJqB~iU zG>31V-|v+E@o()%f*j*6vR86al77k;=%nr&%s?@krteJI_&qOirXWs7|MS|B#2o1# zI3Khl(sDf|%KL`RjQl-SwLNL(hw)4wMK}d#_n-dETPjT@ocCE@xH6V8t9OI{`oi$g zg0FH4o#_b?kzVLZ`=work|+uvovmiu)Gc2*TMQBsggew4O#+abv5_DcL@ z_++Y6GuXgRA8s*rT3eYu(VWB5l+$@Z>wy&oXC@flF4)ElNmqU+B|y8Ofo^D%&tw)9 znVd^gm~Vitpvv0%+(Ud}@w(I>c-CAcLO+~6{q1A33>E0at3u=f4V7+3D_sAZ`=gE4 zjyLQ+cc0SeyyOv`;8`-J5t3{Hm&2jI<0;V;7;G>yvMk(p_1QSl0J+I^7+jt%F?(P1*H=K(x_-aLd#Zr)e{< zr3EqM3CeOXsEQGyRV;8G|;euUU>eciC~)g>XXV|BB9g+zS`f=XXtf)3}XqVMApK&}bs zdD_lYXSt7_r67{-fbHW$li4<}lOz#y6A}Y2-P6%o9TKmItt4}eoFG~1se%btbZ#QJ zu#C_YaDy1Gr?@4>-`>yT5hMWOB$OA}Ru^8Slc%PUunxOc2Yd4IPZ?21dsljft%Q5$ zf0!7s=(b<8@ZD1Y#t8L8(T=FrTNLpX{L|1aU)3Mmkx%iT{tV(ai?HF*l!65o>N(E+tTdvO zjw<=2U4B4Bmv3|hoq_gg+tRGI`mSQ3f3{`7b1ToCT^fxe_79FR=|0Sy@6JlE5VN#> zZhDhp5n0`)uC6>r6T{hQ3BJe=&ck51L_iqCy247-Hl5F(-ES!Zqw1C;TB>P zDMPi3q~PnWA`8eD9a(=K*Oz#})ZqLWW3a$dY2DBr>#hjO4bk0V01<$p)2{UfWopPu z^1OqfcN`ug4^t)i=f7z*r40JO`Ku^1g>mB`O5 zVIisIHU-4}1=x-T2=+^6DMGi^SxG?DFfA>w%yN3tyVetzn7d9gPEs<+f+K@=t!8AL zv{9=Q`Cih0C`P5m%H~wKG+EghAoiEI2!N+lv@!r}$jr;yr})Uq}*FvR?5&89h$wq)r4j{N#g%i_Z*$J5x2hvnok8 z98GIqg{3`L^dfGj#!4*O#z3T=_5dwT75CR?9gOqV0OtRJZY5+@W)m?d$A_%E^dV%a z7cyco!H({bUB<)K!$LsWRIEnX3jL+Kg>19RtdHhqB&;n#4-OC?A(Z0ESu2q1?HeYZ zn}B3lfr2h-;59`cb`Wc}=e3!p3zbFC+V)i9g`g4IuWRAmyIQ$LBqswnbCqG+&BK4r zbPXYZn=JUi{F^S$Vh0rL>J;_n5;`gwh7~f*&Z!;zSO($wg18E{-%Cl69Zi!w$Uk|x zT513yt>b2k&f^xZZM_q8p9JxItsOJWQ^gLr+OP7sF+W2;?5%&RD-!P;m#+w#7Rct# zV`&A1HYeBX7$3luf*{EX5fQ6@$mvk^V#??q5gkt=gcX(GfbqKTgH)>+cxmrp6bzHU z`ROrjHmCQwqXgDTd)T&1$JRuT(`$Z*MvJs)kp)t0zDVNqlv~^oLS}9cMu?@wXk#Z7W&PUHXOJkCWE;Wjm_=^l zd4T_ZhJDF-eF;LP@$G=ed@n7oqUq9q-`xB_DA!33Hul8OlCMOG(=j=}D@v7>dRk6G z>z3#?{)_YB4RgA&<|Bn9L`*>vW>!|H&dDX6VlAC=@u1F1wqyWSSl^SZR_j>6FaZw) zGPWZA-Z9?o+6RmFegt!$Yp5qlqM~r;Oj6q6aK-TSGltwqvOX2L>_%l{2u|Oc$S?6$ z1zxl3Nt25`1&3+$RUdFA_FoK>yW>HgunyY>2=AgzcSPZ~8YK22M^T6d(EUjEwzQ}+ z<+DEczo!sm7wNuM>-SMAM@EYhC>C64i;(lEHcbw5Y8+*}6WWC7fTN3D7t&NxVi|~h z0NDrM%rl%HtoH=5Gv9_c;gUWF#zeSfUEm{LzHJW|RHfa47>nn`$pf(I)kg0Pocw!s zON1&=RFs?UmI!?b(B6+KZCi)+K*+muetC-qevfQcF(TVsgf3RLDZmPn{xogc@KQL2 z+j;7M_4O1<(}$33RBFZeuRe7oVN~_BPj~$ckt3`r6q&?73{TfB&;eg!X9DurRH;_JQy+Jdnp}UZtt)x zUm-&xGa%H_%?zE;g8tSS+orG$n`T0y5jlE-aGv*=m@7ebGC*kbNdF$KY-l$F6NA0>*6vT2P+lfT6n|6&*g7ZR!#eTw&x<_&vscWcs`HGS5#-PYh9qK9aqUx86CTO0X! zdN%NB#@$ut>GP6A|6y973;D$spRCq^5VIFj8}Z8; zx=0z#{OCZtpr^@u+2H5i8* zN~bsSCyTsDejACouicKHv*+on1{@@@HEW4qxp~TfzZTO6c5u*gW4&08~Hx7A%dxgn??=y z3g&m@^13ybowdpzFUA>>jX@WiG{c-kt9mt^TASULd|7Z7PEvlziIBS3Z>_v_)7F$l zWiAVi`-Z{&6AOB|cPf7>Atws_L2mHrI5>X&zikp{?Px!wz}3WF*D)UM`8W9~PU5nM zB_B5S1vbFWD~H^tRfW=5J}muW{`{o;IwumkWt0#|!j|*FX22H2!N{m#yAw96P^LHD!!H>OX%F47gKx>OQIYbl(sO{p?x-glOvPkPaLrsDLjmUZZ z5cckl?vE2=%4Ic_UC_Ub`$QBo!VglcuVGF+tjNFM?l(z>vJjRJ<}`d6dmBTCFT))S zt9TM2A|-;BAAjF1jAV_k9AQECGp$@X2Sg-T93Sw8iv?dm!Pc)>%U*0<(loc)9$325 z!Szv|0a{^EWQQg+RKMy&)<%XbSvaE|DCaAr63%i|C(3md7~9=k>*n~4#hTYYQzB6X zgzj-*0uZND`krlK+6y{-02wM&QIhUu3c|Xfev~@$-;)Di? zXT}W*``gn^?mHZEXQJ4 zwqz+j+|y96XvKqa@W)uE#Yxn`&hPcMM~d+^5MM+#T~7IDW^g@33c~I2k6Pu%0E!Gs ztgH*F-&y~x1%*Y}>6ngpy*0%$6`+w;2U?3x{fXB`|0do22)BCYfkgQ7^~F_qy>W65 zG(Ub(9kAm+u6E(jdM4qV!#AMU!mGP*f2OiW>%6-XJfV^%^XCS6iROJ_*-LB+2yRVA zc)Ysk@xR(v1F5>-xB=py z-k-qZ;SYEMgKLqm*COdROjh8_y(De|6-m#yVOx>Ibq1kT7#q~Jfss6gQ7Zc{gmK~1 zl6XJsAOq!*O&}9;kjQSGka&k0%BbXzBguHe0Ukd`>apk+Y=o~Y`(KdlTgeRW4`Id` z4VNAHS=#{afaT5ZPY@}wpjF&Jstkc?R?|B=Ka;odPddq16Kjl~rDaj5O#?RY7kA$Z z!Ysm3#$_!R9+BWG%lqsO;Ltm2PY721kDU8MtqC{Zq?xDw_Z+2hcdZ@S0Fo2(f-^${ zmqR2YVQSb1dG@@tuVBT1(!B;8SoKEIB%4AsV|M*~SNiGn%e-J!b!sa|{c*W-KfR`8 zQGS1NSSFz8S1^Vz>PEwc<%c$md|PcrFf@s;>q*9Uhb5mOAQD;YW6(93xQYbUSUNSq zJ;KioU$rS8$^{49^zwR_R=mC96w#rvVXPJj_jDer5mGf^QE>aEffU-`*E_t`0exYV zPpGeX)5kx1y>4ZHPuz}zwLL&$i!BN;n#7;VzFTALE!U>}p3)$6YE zEd(OhMFMZFG9n2dp%1Z@(=f`WzhSA|5iQxq$w;^37PW)N4!l)&a-uIrXExj@sOv2M zMkDu!W2K3R>wL`N<#L{_*pN4_K}1RvG~& zjN~D1sVy zUMq<9b1>~H#K{IioQ&t{7)P2vD!%cR_pgA;*+tiwyTQ9cJ*;A$f<*oRw96X!pMQv8 z?JiWp-3IRplFy&Be|DoJ!LNV!u5#!>4n>8+&U|d(mIz>|{P6*huhc7wAj4-Y$_gPWWNi3PXSTf{TRM0#VE$vTc9a<)wAg2w5+`WA0WE4iA=jih0b>no-q^{(${s;xhv?oV@>yN2Tynj4$ObbK3fE zln>%UP_+5H&$xuyyk;Xs17AJ9{97w1uUJUMUn&wKgR+Uf2>Q>UnhT3xWu6hFVJspq z1oK4Gxkw$t?e({K4#w(RF|^OjwlW{)WGkl{V2M!{wt<2`jR_UasrQQ&%v8KO%3N3| zC;^LIjjOi}7YNf`+A!AB9-Oh1d3IjnN1TSJ4E`hM7L0k0N~#3|MawDMwhvPeb+iAX zsS_;r2+4KpMlDnbNC=f{FdFGHT;^7^Wfcy!gjQ%VHBs>(&t?ExpTdd?y4VS{6}B4_E|(nCjrM8ynPsh8T*1b1s>dy| z{$P1nm>CkD8vc(v*?;~H!NQ5TQX!8tIa!qKCj?%EI#q=~hSu@kf2q6o^Wq!p8{*Zj zbl}Kn zN1OKxh}dkr{izltABVuSO){Y*+XhjMhTz$f+sGYXo=vsgFq@@1biSLZSkOlapZ&NXU>~q9tZbr#~I-TkXpLQIeOh^TLde zw)~Xy);$Nv)C^3YDD-cd)LAf+g#Y}V;DonJQ;r@ZIm5R(5}znogZl|9-(Y2FfT?N3cK1Cj z2KY?$*dfK zPCq2iC?6H~n+GUR=A4r)HHFStzfc>e8hgGNx_cf{XLSd3Hv1}()Q%V}y@f^Fos1dJ z+(_qK&EFqRpye#~#S{`oKzkJ8&e-{n7cv~t=vW0?nNAh^{yL#?Nq@j%OG}J5n95QT z<(n63deHn@l>J0R!S^#r@!5+=40<7da-GD)$@x)Mzv7zZ(zDqPbrTCj6QcLg;i34M z^@oR_LGt>42VhmO8$}}_n&D9Cpyj}fxLZVTzYH59A}^7S^s{9&3Xj1_mMU5C^sW35 zj@I0Kj&;LV2+CCzW|H#&E4GbOde7vbD`z${pY#MgE)o#q-^vj6q@3zTlI3EM3~c+L zMk>na**uSQUEAB-FF&YDk3dW4g59D^KAT2Tg&pb6&1zNAqjnLGE*}lqV1+^mXg{8x z=u{gi(_gZ13msMM;(!yR?k(CGI^m_Lj;SJISu#*@a@>;GuQY24I>{xTv)Of=(!O($ zcjx@Fes;a_uS4D#u!o)}kEnEfVhZq4V7&1-nl>q5w8*cXVB-p{n8Q)k!+}J#Qm4wU+Rl>khTJe+KAL)PJ#P8ZW#D3sBk%tI3TH9Yy(vec8 zVTnylM1bn%Ens~%_xHGb#ZbJA?PPe~ZaDpgNb$dT+yltkD%c;7oy z;UC58+vDhc*^J`sihp}5FPJ{$JtZ?*@m(dLOlDRY%fNa7OPYcLo6--Fp3Azm#esOi zSCY0^i$vJ@r!$9!9|`^ivaNPWdhV0H6W4n`q2Zoos)GA`m-QyrK6tqCLmFtyk&~4y zMq+!fH8FzTyngG82Ds^I&hdda!`NfT0ZLp+bXpk^NYr!Ig1 zeLYO7cO#D*nmP}=h_u0xaVD%MlY+H26&k7=1(FnBS6gP2TZ zljG!>xb+hQk=AjuQZzk*3p1#Qtn&+twkgzf!(f+sWu>J-c&3cwr(%cp9_1epHLdp= zxb%o|B)=d#152x$7IX*t2XbX&NG*x435w|&tAq6aX`&WmG?UO(OmA$sXdvhxi8|fu z<@8B5n}eocApArjRFzrE#H{}Lm|prOd`ms1GZaL>Z;qc&&p@{*qbr;58xnCBeiyRp zDX>=bO=~&ad+dRY!4c}C9@LYzAWdQ93fP>prceO7&V=%NA5GbP?nLfVFdXajsONIQ zrVg-hJfYEm^2WQ#*f&U6g{qcM(!%;*Q*r3pU=~FLu4+7+VQ@Z@RKYm1(9=S{yyp-P z)T1KCaRIlmw7Yz1??P35t6=K@TxafAViqhsPt z6vgL?IsFuUaL#jfYO&CCJ{(?do}U&||5Vsvh5mDUP(IE3!#W;GVLG7Q1RX9xI&>g0 zR7{YER3au9f610nPCPML$4JE#a6v^7|j+C~OMpMU|z z$0Ov@2qZ|u*R#E8UE{FJ1X^_TTLdI^g+lV+0bJ)35$j>Ma~+LUL2si!ICMTQGX)KQ zRr1mUZvnD7ap-xD94$W7s7Ey$N5VPsO9pW!F^=sJ~=?RPN(w^#I6g4+HGGnzfceiy0KxqoFp&QqHi zMQqaY+MBqXU-)-tzkL|UXcJ39<>vb;zg=XLLacewBc~9)of;_%`gr^?$A#e|2Dt!Q zkI!vKd=wo}US`I(k0U0^;jKz*=7Q$8zV$$S8Of{#%QRhmOIj9S_!u?yfI7P>CWewt z)_%WT2}09dpDRSZz3nHHIF)4-irtMkl#z+K$*x%Vki-wpHLfr1xb+_hTZRyPP`o_V zfY}$Ms@tCNAhv`vafdE@c=Jw#v=9Eh1bpM{xSbTdEcCws5u|eJCrLOV8c!yGj9BWlnM%*B@@cRXnG}ZZuhFv5fk1Y6-0fT0QbRCbNKOaOv zM?Y}%(0)Vyvqtr)t+M0$0X|9uQiI?-v+zWKGqnR96-lxCn-4J$6~V?EhKn$}p&qvR ze(}twj;b!yxC(uV8iKXW#N`yK8)mgW+@vHX2@I`UIUpf-QJ#$3(C_#p!_~v)7uVxr zw@iP?eTZYrsF6O{U__;QU2!=u3Z?arR~0DCzH(F>&iIGOnXF z!XKy+fx&alrWTG(3+9HFibWCYr@5De_NY>RsmyVOpk7#Bz#qA4zJZ+Mxpy8cakK-q z)#KeRW_nzo9Md8TrqAK=5#hDmccdHpm=6IHnZ(_hIj{4@otQ}+3eC58q=vO z?>;j-KwREBOM_Rw`Ck_K!N;>nIIm8pM%53Fx=*(5JNrC3=+=rP%*d$1HErFmm zr_JEM=P(|ytJdfkX|M5DYd1dg9KiroJ%>=a1FkK1ZZvLe)RN1Nj+%~aUrHP_0sgi$ z;;mJ!e#>7GBZ?`zR;0z#cP1Is&?F_ojFRX~L?-{R$~W8KtpbF%*Ydya03qX6gBZ!l z$2{Zf=45LrP#sW&#I177z8>pOj!0){$#|)dEwX#A4&N;&F&gGGtPNRz`@p;_Av|X0>%)xDOUudyS6W?fW0bjF7o(bO-@N?V*lxId7cA>c?KGU)u5^n>nI+oq zT*k=^o@X8sRT>L$x!GNnQ^P@@8szjvBBC8{CJSe%pNw3{M-8{U?}NF8`w)n*!-zx# z20Mb8w0r#q`7(TWrY86xIt0e$n?&k>K}888L?3M&o#VOf6qIL-F>`UWNa;8ihr7^-1n-43TI6WDi<4Ar_reS?D( z6l;IKqi5vuJq#@d4_X+8i*MFcun(s`F?626l)sG^bsa>;v*em`KwQNjjAo=EWz;>P;F0^*gJI5ut zW*Eac+y&9ybwfa64qnayQ>ESvGut0RIGt&PGS2ua!Z?Gm#HAu85<;5qfz^K#SQP9@ za&I9Pg0<1|AUf-{EC_PUBRNLyCR=_NHrJ>=f|rdxI{Jw@`qRo#oO-wUAq3(^+x?q6 zML9b>X{`gWA3*6BtXkK3<4l8#OrUh`Amkd>Ab|(*TYX zse@2FzedeMg1znc@~O|iJaRR$NV5?8 zArbW&whbsD90isaziOj~bcB+$p4Lud(}pkVE|~I9jzNR%7QdbQs$wh$evL&uW-Ei8 zSN1T@PS6X#;ZXoPdd}&O_M1CF(#;@sBQJnrCqRT%y2_h^MpFNFHoB#80J#atR<1}YJ_S_F}f6ihz z1V^OdfY_c@Gmq30{hXVHHFtOMqab1XZ=>iiQ@?y{$0w4yF5u9!_{87v{ojy|PYX3* zkS8F!FLL1J6MAh1%0^l@6;GvdFEsvA2>zF90K=BMh4=YtpnS@a{xHvr%krl{3ZEkq!b%Nxbg`(hS(r>j_9+b_e9$t)NO{#dV$m60zF24wknisYb zD^6*(0HGoYrHWJf->f+qF);E59)jORZU~9&Yx>*^=81Q|h75`%>Ue9- zqn_RT?pxJ0`IWH2)QjBpQ#z#09y^mZQ*;X!J;^~EybVFCayC;)dBHd|W)>u|V56oA zhIX+a88Z#k6pIl-xBB1@D@OUkeLrcZ3?oKpajbeDoh3MyJuSqGH8u?D1W_1!NN}Me#4)76!mcK<`Ca

_WHo&L>$Gkr?V3N6B5H~n0hA71$ss)`=Nx7^BRL@A zvAHLNfk{UpMl|!L^6l6Gq|EYzUsGmLat5j8Y5b&igLnheILW%jA_OaY2(lU9~wtB zO^6Z&dUN%-PGil?rK$8iYOG;Uia zm*@Fl9MGJMiio8-9Sq?i3a#WgCF0eXD^&2ErtvkDUTc3Aju51dH?ZYd`@()*LHz5} z7HI!#C>u>2)I{4p4`dUWpAe;jutVPF6P3MZdTD~5nL)6B)2c{PK;&kT~-R@yhkKX*N>aj1Me-f)hje6?30<$W z1QIEOxrWBW!gNuU$d~k|P{Cdj8IFU*oHrAZXy(woWNSy!QuZwLFj1;j{v&n)62E^T z*5L~E`#Vvsv>-4L97|6jYH=2PMgkdhblqj<5Ok{g6I7j)C~#3X!{se3^xFon%Up=C zVp(jNE|wBAbUOA9QgpzCpI^e0`G~IbnZ~IRA=88nT9o2n-eB?wZ}p*V$gW=_r%Gi{ z;uv|Snh23sv^D2w)_13Zu3aE^8Ghj!uaCZo89EaOVZqpWj>7hQ?qL5H$e6>NX zikE48dQYZ{O(lY3R50-$6XOpHQi`+O= zTqtWOI4sPsa2JAr_!U zE7(UaxziS2-;?0k4Nogpe7v@fvB34SzXMnU{>Z872;eOv zUp@E6v6cmieMP|!-{u=ykf|KYy-?yG9RnG$W0s~ieeB3s7268(1Yv$%g&_N&T?qC` z%JR)G$K!}~gdk&Gd|`r@(+TTGr$61+?a0^=rpg&umfqta5AtZv7zJXk_~bRGu&iDe z-F-xLVJ^mGbK~OyxH(;RVF=~S1e^lOf1ePyZ^I_gDWF-xb6WwHJO{(i^%a2X>dZD@ z+yj&j(jS2=$=tqF*UfR*b{V~l089i{1D})H!s^^oh2oMQn~LZ786C7SLFz}`m6QB^ zo})Q}1X2(b!VHw&&lId;6Yl}7wAI)?!ts7nE`f!g+sp}#Z8kN zBhBR7a4bHWzU)~1aJsou2qCR8VxTc@E8GnjcZZ-_O__y}0(`2Dnw(~9CTiUwFm6qF zFtw@60kCxEOX)oVf1Qc6 ze*0Dy;W3|>GLTWXR)T7Uj!+NM?4Z-WvV+KY4p_^D=SU3HVaNe#y@z$X%&q;Uk7TH% z;DEEq`x6B)>V5{)kb_EvaQ^=^_LWg>bwRsHAh^2|q_~!1#T`m;r$}&jFBaUbxU{$y zTHK3Mw8gc!7K&4f7H)XIwZ4D%uKV}ooY^+>%%0h^pA_i{>BL*)Uyx(Ak-TZZ#bS8j zhhyZwj>=p2D^Lk90ai`w0<=JnX;eYKI`NgJ#Tv$ZnD6Y!$>?7G-p6 zFZ3Qa{5q6JxsEr`V);VKSw7-btSro?B-?WUa+|I2pzBQ+?!{SeSO;;}R0r?_l3h|^ z6kNowL<3nbLIFnXvYyL7Fj-opiKtG3f0|%!^u6O}ZNWv}Xi2|%-Ci!as8*k-$07v< zWYU=0|AJgyPLu^idRh|dcrxpT`Ej#6ad@21?THP^djpzxpbzO1H&1`77t^nnCfqz! z>H5eV$!CDv8OKb>H`kV`nQQr|k6Xf?iq&34!!QQ%wR*0Zozx)IkaGW_KlVOzisB z2THSgO-S%fH|+jnN8Nj;*3&h#cY*d(kNV?scb)cg$eq?hJyo&CXyZPT*Y^JLUi)|f z?xg?B^fY4eZkm@E;=Sx1IBEdAA~35x7PuRpvt<~u7WhX@s;l7<(BF)C-!?|$iSyGD z{WpxmH``-kTjD6EIB^>{1i(ioo?M)w^wFkY0-!2kf`E1g!QJ``+=wKv!3dJ8gIsj~ z^MLJOZmzqxGsQic(YYVcB3mGM9zG%*T*ENi5$!8U-({C`QzNO>scsAoa;@l~Iu>z0 zm&0zP8G*2-_9#2$@>k)&FL=`zC1oKtr4dhGma-6ct2Ub>%IA5P!q<`P|A2GdD8PR) zjdpet8OX6%iZWX)I@w9BMJ#GQYtMo#A4Zo|f=Q;C9HoZ4*{#kEdWL|NheQtUD#C+I zwPuqcnqepp`cRCte!t$^*R_z|sN)kb51zYx7(ZIaR)v-6?8Q5-X2;B@VfYv2SHep5 z>&exk5{KXZ?Zcu@dP4#pui#_(D8rjtQ>(TbrW+C?mIB!ELD>3%H?kBwbKmU%Fs_!e z*Yriatow3P?B$C0x3c5Tz7XOs#k*oY{E}yDBTlgZ>tEtJohpy~)Vj<6)Vk3b?1ZG? zWFBKYci$u~L)BD#q62rDyA~I+%&h)YudFO7pT8dGNo-%nNH#f9KIgLadcfq_*?9+#eu4Q~u_=N?;E}vhCd&9_Rn6QXf_z}BJGy@B{XhK+$kXT@1R?GGMdM&G zMSb;=WJuF;FXDxDskd$5QxyY=yDwj6%MgqO`7%ptW3?77S&v$n?rcODgDqxN3L0&4 zLUq}HY1d%dh&I+Rj}EVYQ6HpV+zojzYOy>v@XW}Z({Lyg3=b1mfyaAZ5^r#iyxR_s1MW~igP8AjA z$oRiu#{ovz#p}0^q~JJ?*A(|)fXznR58Y{11saP+I@PLv3NQ)UC#{0KInW!M^m`6n zbXedhgh(ZF8+K2`x>RWwIJnnGE|-%v{Ii%mGF|4&Q%Cg z+GAONSax!At;z*p-khh^(yRI`qejEC?qBmoY%%u=@!DCKjgd`u#Xg9iFqkk&zI#ww zIB0far2SXyu;U<2J}F@qSub60U{ixHhQb!Z^0`JG5riGR{Xen z)8Y3m+d81}jyKWLXp-*91Y%{#{O!C{WW}4A;YK@A&VEFx+uIP~zTm#>A3Zzqv0?pE zW!17;i3f+7W&F1;M;_r@;lO`=0d9`W3x?{ddmf88N z5nL!Up)aWYQ{>t$B@Jr;wp?V4@8ZsQWjkM6LtBDdG^yi^7_CUziJo4|-od3h=Me{d zF<#pyx^Ow}q}MIN`mau-HwIkOPQTw41s;v?y+%5k_LF7Gf5*&!hDxJ7cw3C8Ej)W= zQ3)VV+%hPp-wHScU*17i>3wLVG#e(Etpvh;rk??uo8%?gA7^;zR;G{&x|KNA4w&&E z`5WDt#4zDB112a$mQ7ecFE*nnI8D4Q2BlRsHeane{blfa`$1#V=0~mqz z#<;@nat;_p8V)!id}>M|GZPEHsR+;;E7KhG$=nCs#KJWh3W=XMvjqBKJ(uTsACva= z*OTB-i1~1r%>CunV1ln66@*mSAg?L{m5T)x>Ckm*P1ifY1uaF%-LgcMBBxil1}>`g zs@5qJBf0G6sGsl*C;kJ@3^h(HWYt2o0y=b6gSNv6yKA+u>&RZX9C{mTRCvQ+i|2GM zJ5Hv4?qZy8S6+kd(O|;d_ys1pBfnAwP+?X0S_cA%^1TErL?Z>2yrfjK5Q5|9HS|ve zs%Jq0k9>bzv4*=TcL360{l8$6mW_4`FMMl* z!W*ul<>;2gksBWy<0|=^s$V82)5nf@io}Z%ap-0(n+b>vQ;;W{GF#ygEyg6a1e}%u zY@43OASM!oUrWsZRBM}jkC9wFVrI{Iurx3UCc}q(O`12gJ6=r&@M0aQ3I7!#NgY`V z2$#@d=|U6&T>Jn%c^GzVvUd)7XeB5ykbM0ciQyC_b%!Hw!dP-LP=moks2hDSN&txo z@0CaamAtQ)?TcyHROeLL@EB8iK@3sQ>ziHnVs$jHwY7t;FiNtY2YjXiZv91V3sB5~PnJL55h}xG2kTWdkt{oXF0m8q9qPyLyt+TT=0`XN0=&eu=E)&p_`@;(KB2UzY9r zWKO1t)5`309N&;0w}>s59yZBY6M>;MR>^ya01+fUSJB8Qa!w|Q;SSkZ2RgI& zkmRN)sH-VtY12PNNQz%T9V|wO;Uv=fi^+}UwWuxR_Z?~*`epd`y>m?3ID(6;QnAec z_218la)qs=DoiYPPs0t({kYiJeo7kc1bq>aWa)8@7PCV(~R-|_^4am`{;mEc~Sft3&F4KUsX`x=424t3ev5mB`lMn&iY zM6x8^>$v*Vfy;@9SirIX_>Wc`gDEyiDvK;-X<%s0`Fj#~ZLwtMd?FnnTM)*#yHC~V zZ|n%5V3j`YP1$);DVKD{P1}A}c9hd2i?RJjaazbU&Bsy0^eL&|sSLk&wf$4j9?S;|*dzyo(FG2nAHBw44M@FJ=D=>Z z0Z=t2v769vKg2}jDt^7=l-aEu9r|T2RB<@13uJ^B^E*HvQinUKxe%kt{8r9rNXME$ zTvGToYmZg??xZXnFU+jH62AYY7(@NsLQ;{B?L6%MEfu;mzVJntiAj#XnVjOR;pt!p z5lk5rjW$Vn{$Vm@M+_7n0G~&0#=y%T5|^YAsR78mtmo6F2jvkLFm&*&!o>EGpzM+~ zTHuNsgUQ~+sEx^Y)aJ$M^tJOFU0zsZ7vp5g_$t%g)o?DTDUV=`AX|61e5B#y~V3Cl~ z^-6)O5{Qc|osSu.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 - - - - - - Semi-Infinite Programming · EAGO.jl: Easy Advanced Global Optimization - - - - - - - - - - - - -

-
-
- -
-
Semi-Infinite Programming
-
-

Solving Semi-Infinite Programming

-

Matthew Wilhelm Department of Chemical and Biomolecular Engineering, University of Connecticut

-

Using EAGO to solve a SIP

-

Semi-infinite programming remains an active area of research. In general, the solution of semi-infinite programs with nonconvex semi-infinite constraints of the below form are extremely challenging:

- -

EAGO implements the SIPres of [1] to determine a globally optimal solution to problems of the above form. This accomplished using the explicit_sip_solve function which returns the optimal value, the solution, and a boolean - feasibility value. To illustrate the functions use, a simple example is presented here which solves the below problem:

- -
using EAGO, JuMP
-
-# Define semi-infinite program
-f(x) = (1/3)*x[1]^2 + x[2]^2 + x[1]/2
-gSIP(x,p) = (1.0 - (x[1]^2)*(p[1]^2))^2 - x[1]*p[1]^2 - x[2]^2 + x[2]
-
-x_l = [-1000.0, -1000.0]
-x_u = [1000.0, 1000.0]
-p_l = [0.0]
-p_u = [1.0]
-
-# Solve the SIP  problem
-sip_result = explicit_sip_solve(x_l, x_u, p_l, p_u, f, gSIP)
-
-println("The global minimum of the semi-infinite program is between: $(sip_result.lower_bound) and $(sip_result.upper_bound).")
-println("The global minimum is attained at: x = $(sip_result.xsol).")
-println("Is the problem feasible? (sip_result.feasibility).")
-

Semi-infinite solver

-
- -
-
-

explicitsipsolve

-

Solve an SIP with decision variable bounds x_l to x_u, uncertain variable bounds p_l to p_u, an objective function of f, and gSIP seminfiniite constraint(s).

-
-
-
-
-
EAGO.SIPProblemType.
-
-
-
  SIPProblem
-

Structure storing problem information for the solution routine.

-
-
-
-
-
EAGO.SIPResultType.
-
-
-
  SIPResult
-

Structure storing the results of the SIPres algorithm.

-
-
-
- -
- - - diff --git a/docs/cite/index.html b/docs/cite/index.html deleted file mode 100644 index 64097270..00000000 --- a/docs/cite/index.html +++ /dev/null @@ -1,4 +0,0 @@ - -Citing EAGO · EAGO.jl: Easy Advanced Global Optimization

Citing EAGO

Citing EAGO

A paper about the EAGO software package is currently under preparation. In the meantime, please feel free to cite the conference presentation below:

Wilhelm, Matthew; Stuber, Matthew (October 2017) Easy Advanced Global
-Optimization (EAGO): An Open-Source Platform for Robust and Global Optimization
-in Julia. Presented at the AIChE Annual Meeting in Minneapolis, MN.
diff --git a/docs/full_Logo1.png b/docs/full_Logo1.png deleted file mode 100644 index 715e09761e4b6bdf19ad21a41eb8c170ef1499dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42733 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 Fe*hjGi&+2w diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 3ae453fe..00000000 --- a/docs/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Introduction · EAGO.jl: Easy Advanced Global Optimization

Introduction

full_Logo

EAGO - Easy Advanced Global Optimization in Julia

A flexible-framework for global and robust optimization in Julia

Authors

  • Matthew Wilhelm, Department of Chemical and Biomolecular Engineering, University of Connecticut (UCONN)

Overview

EAGO is a global and robust optimization platform based on McCormick relaxations. It contains the first widely accessible global optimization routine based on generalized McCormick relaxations. With the exception of calls to local solvers and linear algebra routines, EAGO is written entirely in native Julia. The solver is quite flexibly arranged so the end user can easily customize low-level routines.

Installing EAGO

EAGO is registered Julia package. It can be installed using the Julia package manager. From the Julia REPL, type ] to enter the Pkg REPL mode and run the following command

pkg> add EAGO

Currently, EAGO is tied to a 0.19 or greater version of JuMP. This allows a replication of some of the internal features shared by EAGO and JuMP's AD scheme aka generation of Wergert Tapes pass evaluators between JuMP and EAGO etc.

pkg> add JuMP

Once JuMP 0.19+ is registered EAGO will be updated to eliminate the need for this.

Examples

A few examples are provided in the documentation website. More involved examples are provided at in the form of Jupyter Notebooks at EAGO-notebooks and can be run using IJulia. To add IJulia

pkg> add IJulia

Then launch the Jupyter notebook using the following command from the Julia terminal,

julia> using IJulia; notebook()

Then simply navigate to the example directory and run the example of most interest.

diff --git a/docs/readme/OptForm.svg b/docs/readme/OptForm.svg deleted file mode 100644 index a49de3a9..00000000 --- a/docs/readme/OptForm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/readme/ProcessFormulation.svg b/docs/readme/ProcessFormulation.svg deleted file mode 100644 index 6f78380f..00000000 --- a/docs/readme/ProcessFormulation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/readme/math-code.js b/docs/readme/math-code.js deleted file mode 100644 index a4358069..00000000 --- a/docs/readme/math-code.js +++ /dev/null @@ -1,20 +0,0 @@ -(function() { - var i, text, code, codes = document.getElementsByTagName('code'); - for (i = 0; i < codes.length;) { - code = codes[i]; - if (code.parentNode.tagName !== 'PRE' && code.childElementCount === 0) { - text = code.textContent; - if (/^\$[^$]/.test(text) && /[^$]\$$/.test(text)) { - text = text.replace(/^\$/, '\\(').replace(/\$$/, '\\)'); - code.textContent = text; - } - if (/^\\\((.|\s)+\\\)$/.test(text) || /^\\\[(.|\s)+\\\]$/.test(text) || - /^\$(.|\s)+\$$/.test(text) || - /^\\begin\{([^}]+)\}(.|\s)+\\end\{[^}]+\}$/.test(text)) { - code.outerHTML = code.innerHTML; // remove - continue; - } - } - i++; - } -})(); diff --git a/docs/ref/index.html b/docs/ref/index.html deleted file mode 100644 index 46b6034a..00000000 --- a/docs/ref/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -References · EAGO.jl: Easy Advanced Global Optimization

References

References

Branch and Bound

  • Floudas, Christodoulos A. Deterministic global optimization: theory, methods and applications. Vol. 37. Springer Science & Business Media, 2013.
  • Horst, Reiner, and Hoang Tuy. Global optimization: Deterministic approaches. Springer Science & Business Media, 2013.

Parametric Interval Techniques

  • E. R. Hansen and G. W. Walster. Global Optimization Using Interval Analysis. Marcel Dekker, New York, second edition, 2004.
  • R. Krawczyk. Newton-algorithmen zur bestimmung con nullstellen mit fehler-schranken. Computing, 4:187–201, 1969.
  • R. Krawczyk. Interval iterations for including a set of solutions. Computing, 32:13–31, 1984.
  • C. Miranda. Un’osservatione su un teorema di brower. Boll. Un. Mat. Ital., 3:5–7, 1940.
  • A. Neumaier. Interval Methods for Systems of Equations. Cambridge University Press, Cambridge, 1990.
  • R. E. Moore. A test for existence of solutions to nonlinear systems. SIAM Journal on Numerical Analysis, 14(4):611–615, 1977.

Domain Reduction

  • Benhamou, F., & Older, W.J. (1997). Applying interval arithmetic to real, integer, and boolean constraints. The Journal of Logic Programming, 32, 1–24.
  • Caprara, A., & Locatelli, M. (2010). Global optimization problems and domain reduction strategies. Mathematical Programming, 125, 123–137.
  • Gleixner, A.M., Berthold, T., Müller, B., & Weltge, S. (2016). Three enhancements for optimization-based bound tightening. ZIB Report, 15–16.
  • Ryoo, H.S., & Sahinidis, N.V. (1996). A branch-and-reduce approach to global optimization. Journal of Global Optimization, 8, 107–139.
  • Schichl, H., & Neumaier, A. (2005). Interval analysis on directed acyclic graphs for global optimization. Journal of Global Optimization, 33, 541–562.
  • Tawarmalani, M., & Sahinidis, N.V. (2005). A polyhedral branch-and-cut approach to global optimization. Mathematical Programming, 103, 225–249.
  • Vu, X., Schichl, H., & Sam-Haroud, D. (2009). Interval propagation and search on directed acyclic graphs for numerical constraint solving. Journal of Global Optimization, 45, 499–531.

Generalized McCormick Relaxations

  • Chachuat, B.: MC++: a toolkit for bounding factorable functions, v1.0. Retrieved 2 July 2014 https://projects.coin-or.org/MCpp (2014)
  • A. Mitsos, B. Chachuat, and P. I. Barton. McCormick-based relaxations of algorithms. SIAM Journal on Optimization, 20(2):573–601, 2009.
  • G. P. McCormick. Computability of global solutions to factorable nonconvex programs: Part I-Convex underestimating problems. Mathematical Programming, 10:147–175, 1976.
  • G. P. McCormick. Nonlinear programming: Theory, Algorithms, and Applications. Wiley, New York, 1983.
  • J. K. Scott, M. D. Stuber, and P. I. Barton. Generalized McCormick relaxations. Journal of Global Optimization, 51(4):569–606, 2011.
  • Stuber, M.D., Scott, J.K., Barton, P.I.: Convex and concave relaxations of implicit functions. Optim. Methods Softw. 30(3), 424–460 (2015)
  • A. Tsoukalas and A. Mitsos. Multivariate McCormick Relaxations. Journal of Global Optimization, 59:633–662, 2014.
  • K.A. Khan, HAJ Watson, P.I. Barton. Differentiable McCormick relaxations. Journal of Global Optimization, 67(4):687-729 (2017).
  • A., Wechsung JK Scott, HAJ Watson, and PI Barton. Reverse propagation of McCormick relaxations. Journal of Global Optimization 63(1):1-36 (2015).

Semi-Infinite Programming

  • A. Mitsos. Global optimization of semi-infinite programs via restriction of the right-hand side. Optimization, 60(10-11):1291-1308, 2009.
  • Stuber, M.D. and Barton, P. I. Semi-Infinite Optimization With Implicit Functions. Industrial & Engineering Chemistry Research, 54:307-317, 2015.
diff --git a/docs/search/index.html b/docs/search/index.html deleted file mode 100644 index 24f5e03a..00000000 --- a/docs/search/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Search · EAGO.jl: Easy Advanced Global Optimization

Search

Search

Number of results: loading...

    diff --git a/docs/search_index.js b/docs/search_index.js deleted file mode 100644 index bb3fa480..00000000 --- a/docs/search_index.js +++ /dev/null @@ -1,3 +0,0 @@ -var documenterSearchIndex = {"docs": -[{"location":"McCormick/usage/#Basic-Usage-1","page":"Basic Usage","title":"Basic Usage","text":"","category":"section"},{"location":"McCormick/usage/#**Bounding-a-function-via-smooth-McCormick-objects**-1","page":"Basic Usage","title":"Bounding a function via smooth McCormick objects","text":"","category":"section"},{"location":"McCormick/usage/#","page":"Basic Usage","title":"Basic Usage","text":"In order to bound a function using a McCormick relaxation. You first construct structure that bounds the input variables then you construct pass these variables two a function.","category":"page"},{"location":"McCormick/usage/#","page":"Basic Usage","title":"Basic Usage","text":"In the example below, convex/concave relaxations of the function f(x)=sin(2x)+exp(x)-x are calculated at x = 1 on the interval [-2,3].","category":"page"},{"location":"McCormick/usage/#","page":"Basic Usage","title":"Basic Usage","text":"using EAGO, IntervalArithmetic\n\n# create MC object for x = 2.0 on [1.0,3.0] for relaxing\n# a function f(x) on the interval Intv\n\nf(x) = x*(x-5.0)*sin(x)\n\nx = 2.0 # value of independent variable x\nIntv = Interval(1.0,4.0) # define interval to relax over\n\n# create McCormick object\nxMC = MC{1,NS}(x,Intv,1)\n\nfMC = f(xMC) # relax the function\n\ncv = fMC.cv # convex relaxation\ncc = fMC.cc # concave relaxation\ncvgrad = fMC.cv_grad # subgradient/gradient of convex relaxation\nccgrad = fMC.cc_grad # subgradient/gradient of concave relaxation\nIv = fMC.Intv # retrieve interval bounds of f(x) on Intv","category":"page"},{"location":"McCormick/usage/#","page":"Basic Usage","title":"Basic Usage","text":"The plotting the results we can easily generate visual the convex and concave relaxations, interval bounds, and affine bounds constructed using the subgradient at the middle of X.","category":"page"},{"location":"McCormick/usage/#","page":"Basic Usage","title":"Basic Usage","text":"(Image: Figure_1)","category":"page"},{"location":"McCormick/usage/#","page":"Basic Usage","title":"Basic Usage","text":"If we instead use the constructor xMC = MC{1,Diff}(x,Intv,1) in the above code, and then re-plot we arrive at the below graph","category":"page"},{"location":"McCormick/usage/#","page":"Basic Usage","title":"Basic Usage","text":"set_diff_relax!(1)","category":"page"},{"location":"McCormick/usage/#","page":"Basic Usage","title":"Basic Usage","text":"(Image: Figure_2)","category":"page"},{"location":"McCormick/usage/#","page":"Basic Usage","title":"Basic Usage","text":"This can readily be extended to multivariate functions as shown below","category":"page"},{"location":"McCormick/usage/#","page":"Basic Usage","title":"Basic Usage","text":"\nf(x) = max(x[1],x[2])\n\nx = [2.0 1.0] # values of independent variable x\nIntv = [Interval(-4.0,5.0), Interval(-5.0,3.0)] # define intervals to relax over\n\n# create McCormick object\nxMC = [MC{2,Diff}(x[i], Intv[i], i) for i=1:2)]\n\nfMC = f(xMC) # relax the function\n\ncv = fMC.cv # convex relaxation\ncc = fMC.cc # concave relaxation\ncvgrad = fMC.cv_grad # subgradient/gradient of convex relaxation\nccgrad = fMC.cc_grad # subgradient/gradient of concave relaxation\nIv = fMC.Intv # retrieve interval bounds of f(x) on Intv","category":"page"},{"location":"McCormick/usage/#","page":"Basic Usage","title":"Basic Usage","text":"(Image: Figure_3)","category":"page"},{"location":"Optimizer/high_performance/#High-Performance-Configuration-1","page":"High-Performance Configuration","title":"High-Performance Configuration","text":"","category":"section"},{"location":"Optimizer/high_performance/#LP-Solver-Selection-1","page":"High-Performance Configuration","title":"LP Solver Selection","text":"","category":"section"},{"location":"Optimizer/high_performance/#","page":"High-Performance Configuration","title":"High-Performance Configuration","text":"By default, EAGO uses GLPK for solving linear subproblems introduced. Using a commercial linear solver is highly recommended such as Gurobi, CPLEX, or XPRESS is highly recommended. Both Gurobi and CPLEX are free for academics and installation information can be found through http://www.gurobi.com/academia/academia-center and https://www.ibm.com/developerworks/community/blogs/jfp/entry/CPLEXIsFreeForStudents?lang=en, respectively. ","category":"page"},{"location":"Optimizer/high_performance/#","page":"High-Performance Configuration","title":"High-Performance Configuration","text":"A non-default LP solver can then be selected by the user via a series of keyword argument inputs as illustrated in the code snippet below. The relaxed_optimizer contains an instance optimizer with valid relaxations that are made at the root node and is updated with affine relaxations in place. Options can be passed to this optimizer using keyword arguments when initializing EAGO using the withoptimizer syntax in JuMP by defining an Iterators.Pairs structure assigning it to the `relaxedoptimizer_kwargs` keyword argument. MOI.","category":"page"},{"location":"Optimizer/high_performance/#","page":"High-Performance Configuration","title":"High-Performance Configuration","text":"\n# Create opt EAGO Optimizer with CPLEX for use with MOI routines\nopt = EAGO.Optimizer(relaxed_optimizer = Gurobi.Optimizer(OutputFlag=0))\n\n# Create the same model m using an options dictionary in JuMP\nrelaxed_optimizer_kwargs = Dict{Symbol, Any}()\nopt_dict[:relaxed_optimizer] = Gurobi.Optimizer()\nopt_dict[:relaxed_optimizer_kwargs] = Iterators.Pairs([:OutputFlag], [0])\n\nm = JuMP.Model(with_optimizer(EAGO.Optimizer; opt_dict...))\n\n# Create the same model m is keyword arguments in JuMP\nm = JuMP.Model(with_optimizer(EAGO.Optimizer; relaxed_optimizer = Gurobi.Optimizer(),\n relaxed_optimizer_kwargs = Iterators.Pairs([:OutputFlag], [0])))","category":"page"},{"location":"Optimizer/high_performance/#Ipopt-Build-1","page":"High-Performance Configuration","title":"Ipopt Build","text":"","category":"section"},{"location":"Optimizer/high_performance/#","page":"High-Performance Configuration","title":"High-Performance Configuration","text":"Ipopt is the recommended solver for upper bounding problems. Ipopt's performance is highly dependent on the linear algebra package used (up to 30x). By default MUMPS is used. It's recommended that you either compile Ipopt with HSL MA57 or the Pardiso linear algebra packages with a machine specific Blas library (for Intel users the JuliaPro MKL version is recommended). For information on this, see the below links:","category":"page"},{"location":"Optimizer/high_performance/#","page":"High-Performance Configuration","title":"High-Performance Configuration","text":"Compiling Ipopt: https://www.coin-or.org/Ipopt/documentation/node13.html\nJulia Specifics:\nPointing Ipopt to a compiled version:\nIpopt Package Info: https://github.com/JuliaOpt/Ipopt.jl\nDiscourse discussion: https://discourse.julialang.org/t/use-ipopt-with-custom-version/9176\nIssues using Pardiso:\nUbuntu: https://github.com/JuliaOpt/Ipopt.jl/issues/106\nWindows: https://github.com/JuliaOpt/Ipopt.jl/issues/83\nHSL Website: http://www.hsl.rl.ac.uk/ipopt/\nPardiso Website: https://pardiso-project.org/","category":"page"},{"location":"McCormick/type/#**Types**-1","page":"Types","title":"Types","text":"","category":"section"},{"location":"McCormick/type/#","page":"Types","title":"Types","text":" McCormick.MC\n McCormick.RelaxTag","category":"page"},{"location":"McCormick/type/#EAGO.McCormick.MC","page":"Types","title":"EAGO.McCormick.MC","text":"MC\n\nMC{N, T <: RelaxTag} <: Real is the McCormick (w/ (sub)gradient) structure which is used to overload standard calculations. The fields are:\n\ncc::Float64: Concave relaxation\ncv::Float64: Convex relaxation\ncc_grad::SVector{N,Float64}: (Sub)gradient of concave relaxation\ncv_grad::SVector{N,Float64}: (Sub)gradient of convex relaxation\nIntv::Interval{Float64}: Interval bounds\ncnst::Bool: Flag for whether the bounds are constant\n\n\n\n\n\n","category":"type"},{"location":"McCormick/type/#EAGO.McCormick.RelaxTag","page":"Types","title":"EAGO.McCormick.RelaxTag","text":"RelaxTag\n\nAn abstract type the subtypes of which define the manner of relaxation that will be performed for each operator applied to the MC object. Currently, the struct NS which specifies that standard (Mitsos 2009) are to be used is fully supported. Limited support is provided for differentiable McCormick relaxations specified by struct Diff (Khan 2017) and struct MV struct MV (Tsoukalas 2011.)\n\n\n\n\n\n","category":"type"},{"location":"McCormick/type/#**Constructors-for-MC**-1","page":"Types","title":"Constructors for MC","text":"","category":"section"},{"location":"McCormick/type/#","page":"Types","title":"Types","text":" MC{N,T}(y::Float64)","category":"page"},{"location":"McCormick/type/#EAGO.McCormick.MC-Union{Tuple{Float64}, Tuple{N}, Tuple{T}} where T where N","page":"Types","title":"EAGO.McCormick.MC","text":"MC{N,T}(y::Interval{Float64})\n\nConstructs McCormick relaxation with convex relaxation equal to y.lo and concave relaxation equal to y.hi.\n\n\n\n\n\nMC{N,T}(y::Float64)\n\nConstructs McCormick relaxation with convex relaxation equal to y and concave relaxation equal to y.\n\n\n\n\n\nMC{N,T}(cv::Float64, cc::Float64)\n\nConstructs McCormick relaxation with convex relaxation equal to cv and concave relaxation equal to cc.\n\n\n\n\n\nMC{N,T}(val::Float64, Intv::Interval{Float64}, i::Int64)\n\nConstructs McCormick relaxation with convex relaxation equal to val, concave relaxation equal to val, interval bounds of Intv, and a unit subgradient with nonzero's ith dimension of length N.\n\n\n\n\n\n","category":"method"},{"location":"SemiInfinite/semiinfinite/#Solving-Semi-Infinite-Programming-1","page":"Semi-Infinite Programming","title":"Solving Semi-Infinite Programming","text":"","category":"section"},{"location":"SemiInfinite/semiinfinite/#","page":"Semi-Infinite Programming","title":"Semi-Infinite Programming","text":"Matthew Wilhelm Department of Chemical and Biomolecular Engineering, University of Connecticut","category":"page"},{"location":"SemiInfinite/semiinfinite/#Using-EAGO-to-solve-a-SIP-1","page":"Semi-Infinite Programming","title":"Using EAGO to solve a SIP","text":"","category":"section"},{"location":"SemiInfinite/semiinfinite/#","page":"Semi-Infinite Programming","title":"Semi-Infinite Programming","text":"Semi-infinite programming remains an active area of research. In general, the solution of semi-infinite programs with nonconvex semi-infinite constraints of the below form are extremely challenging:","category":"page"},{"location":"SemiInfinite/semiinfinite/#","page":"Semi-Infinite Programming","title":"Semi-Infinite Programming","text":"","category":"page"},{"location":"SemiInfinite/semiinfinite/#","page":"Semi-Infinite Programming","title":"Semi-Infinite Programming","text":"EAGO implements the SIPres of [1] to determine a globally optimal solution to problems of the above form. This accomplished using the explicit_sip_solve function which returns the optimal value, the solution, and a boolean feasibility value. To illustrate the functions use, a simple example is presented here which solves the below problem:","category":"page"},{"location":"SemiInfinite/semiinfinite/#","page":"Semi-Infinite Programming","title":"Semi-Infinite Programming","text":"","category":"page"},{"location":"SemiInfinite/semiinfinite/#","page":"Semi-Infinite Programming","title":"Semi-Infinite Programming","text":"using EAGO, JuMP\n\n# Define semi-infinite program\nf(x) = (1/3)*x[1]^2 + x[2]^2 + x[1]/2\ngSIP(x,p) = (1.0 - (x[1]^2)*(p[1]^2))^2 - x[1]*p[1]^2 - x[2]^2 + x[2]\n\nx_l = [-1000.0, -1000.0]\nx_u = [1000.0, 1000.0]\np_l = [0.0]\np_u = [1.0]\n\n# Solve the SIP problem\nsip_result = explicit_sip_solve(x_l, x_u, p_l, p_u, f, gSIP)\n\nprintln(\"The global minimum of the semi-infinite program is between: $(sip_result.lower_bound) and $(sip_result.upper_bound).\")\nprintln(\"The global minimum is attained at: x = $(sip_result.xsol).\")\nprintln(\"Is the problem feasible? (sip_result.feasibility).\")","category":"page"},{"location":"SemiInfinite/semiinfinite/#Semi-infinite-solver-1","page":"Semi-Infinite Programming","title":"Semi-infinite solver","text":"","category":"section"},{"location":"SemiInfinite/semiinfinite/#","page":"Semi-Infinite Programming","title":"Semi-Infinite Programming","text":" explicit_sip_solve\n SIPProblem\n SIPResult","category":"page"},{"location":"SemiInfinite/semiinfinite/#EAGO.explicit_sip_solve","page":"Semi-Infinite Programming","title":"EAGO.explicit_sip_solve","text":"explicitsipsolve\n\nSolve an SIP with decision variable bounds x_l to x_u, uncertain variable bounds p_l to p_u, an objective function of f, and gSIP seminfiniite constraint(s).\n\n\n\n\n\n","category":"function"},{"location":"SemiInfinite/semiinfinite/#EAGO.SIPProblem","page":"Semi-Infinite Programming","title":"EAGO.SIPProblem","text":" SIPProblem\n\nStructure storing problem information for the solution routine.\n\n\n\n\n\n","category":"type"},{"location":"SemiInfinite/semiinfinite/#EAGO.SIPResult","page":"Semi-Infinite Programming","title":"EAGO.SIPResult","text":" SIPResult\n\nStructure storing the results of the SIPres algorithm.\n\n\n\n\n\n","category":"type"},{"location":"Dev/future/#Future-Work-1","page":"Future Work","title":"Future Work","text":"","category":"section"},{"location":"Dev/future/#Current-Activity:-1","page":"Future Work","title":"Current Activity:","text":"","category":"section"},{"location":"Dev/future/#","page":"Future Work","title":"Future Work","text":"Update CI testing.\nSpecialized algorithms for relaxing ODE constrained problems and solving","category":"page"},{"location":"Dev/future/#","page":"Future Work","title":"Future Work","text":"global and robust optimization problems.","category":"page"},{"location":"Dev/future/#","page":"Future Work","title":"Future Work","text":"Extensions for nonconvex dynamic global & robust optimization.\nProvide support for mixed-integer problems.\nUpdate EAGO to support nonsmooth problems (requires: a nonsmooth local nlp optimizer or lexiographic AD, support for relaxations is already included).\nPerformance assessment of nonlinear (differentiable) relaxations and incorporation into main EAGO routine.\nEvaluation and incorporation of implicit relaxation routines in basic solver.","category":"page"},{"location":"Dev/future/#Other-things-on-the-wishlist-(but-not-actively-being-worked-on):-1","page":"Future Work","title":"Other things on the wishlist (but not actively being worked on):","text":"","category":"section"},{"location":"Dev/future/#","page":"Future Work","title":"Future Work","text":"Implement the interval constraint propagation scheme presented in Vu 2008. For","category":"page"},{"location":"Dev/future/#","page":"Future Work","title":"Future Work","text":"improved convergences.","category":"page"},{"location":"Dev/future/#","page":"Future Work","title":"Future Work","text":"A parametric bisection routine will be updated that can divide the (X,P)","category":"page"},{"location":"Dev/future/#","page":"Future Work","title":"Future Work","text":"space into a series of boxes that all contain unique branches of the implicit function p->y(p).","category":"page"},{"location":"Dev/future/#","page":"Future Work","title":"Future Work","text":"Provide a better interface the nonconvex semi-infinite programs solvers","category":"page"},{"location":"Dev/future/#","page":"Future Work","title":"Future Work","text":"(JuMPeR extension?).","category":"page"},{"location":"Dev/future/#","page":"Future Work","title":"Future Work","text":"Add additional McCormick relaxations.\nAdd handling for domain reduction of special expression forms.","category":"page"},{"location":"Optimizer/domain_reduction/#Domain-Reduction-1","page":"Domain Reduction","title":"Domain Reduction","text":"","category":"section"},{"location":"Optimizer/domain_reduction/#Duality-Based-Bound-Tightening-1","page":"Domain Reduction","title":"Duality-Based Bound Tightening","text":"","category":"section"},{"location":"Optimizer/domain_reduction/#","page":"Domain Reduction","title":"Domain Reduction","text":"Variable bound tightening based on the duality multipliers are supported.","category":"page"},{"location":"Optimizer/domain_reduction/#","page":"Domain Reduction","title":"Domain Reduction","text":"variable_dbbt!","category":"page"},{"location":"Optimizer/domain_reduction/#EAGO.variable_dbbt!","page":"Domain Reduction","title":"EAGO.variable_dbbt!","text":"variable_dbbt!\n\nTightens the bounds of the _current_node using the current global upper bound and the duality information obtained from the relaxation.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/domain_reduction/#Special-Forms-1","page":"Domain Reduction","title":"Special Forms","text":"","category":"section"},{"location":"Optimizer/domain_reduction/#","page":"Domain Reduction","title":"Domain Reduction","text":"Bound tightening for linear forms, univariate quadratic forms, and bivariate quadratic forms are also supported.","category":"page"},{"location":"Optimizer/domain_reduction/#","page":"Domain Reduction","title":"Domain Reduction","text":"classify_quadratics!\nlp_bound_tighten\nunivariate_kernel\nunivariate_quadratic","category":"page"},{"location":"Optimizer/domain_reduction/#EAGO.classify_quadratics!","page":"Domain Reduction","title":"EAGO.classify_quadratics!","text":"classify_quadratics!\n\nClassifies constraints as univariate or bivariate and adds them to storage vectors.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/domain_reduction/#EAGO.lp_bound_tighten","page":"Domain Reduction","title":"EAGO.lp_bound_tighten","text":"lp_bound_tighten\n\nPerforms the linear bound tightening.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/domain_reduction/#EAGO.univariate_kernel","page":"Domain Reduction","title":"EAGO.univariate_kernel","text":"univariate_kernel\n\nKernel of the bound tightening operation on univariant qudaratic functions. Called for each univariate function.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/domain_reduction/#EAGO.univariate_quadratic","page":"Domain Reduction","title":"EAGO.univariate_quadratic","text":"univariate_quadratic\n\nPerforms bound tightening on all univariate quadratic functions.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/domain_reduction/#Constraint-Propagation-1","page":"Domain Reduction","title":"Constraint Propagation","text":"","category":"section"},{"location":"Optimizer/domain_reduction/#","page":"Domain Reduction","title":"Domain Reduction","text":"EAGO contains a constraint propagation architecture that supported forward and reverse evaluation of set-valued functions on the directed acyclic graph (DAG). The interval contractor and reverse McCormick relaxation-based contractors are currently available.","category":"page"},{"location":"Optimizer/domain_reduction/#","page":"Domain Reduction","title":"Domain Reduction","text":"cpwalk","category":"page"},{"location":"Optimizer/domain_reduction/#EAGO.cpwalk","page":"Domain Reduction","title":"EAGO.cpwalk","text":"cpwalk\n\nPerforms forward-reverse pass on directed graph as part of constraint propagation.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/domain_reduction/#Optimization-Based-Bound-Tightening-1","page":"Domain Reduction","title":"Optimization-Based Bound Tightening","text":"","category":"section"},{"location":"Optimizer/domain_reduction/#","page":"Domain Reduction","title":"Domain Reduction","text":"EAGO makes use of an optimization-based bound tightening scheme using filtering and greedy ordering as detailed in: Gleixner, A.M., Berthold, T., Müller, B. et al. J Glob Optim (2017) 67: 731. https://doi.org/10.1007/s10898-016-0450-4","category":"page"},{"location":"Optimizer/domain_reduction/#","page":"Domain Reduction","title":"Domain Reduction","text":"aggressive_filtering!\naggressive_obbt_on_heurestic\nbool_indx_diff\nobbt\ntrivial_filtering!","category":"page"},{"location":"Optimizer/domain_reduction/#EAGO.aggressive_filtering!","page":"Domain Reduction","title":"EAGO.aggressive_filtering!","text":"aggressive_filtering!\n\nExcludes OBBT on variable indices after a search in a filtering direction.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/domain_reduction/#EAGO.aggressive_obbt_on_heurestic","page":"Domain Reduction","title":"EAGO.aggressive_obbt_on_heurestic","text":"aggressive_obbt_on_heurestic\n\nRoutine that determines if aggressive filtering should be used. Currently, a user-specified option.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/domain_reduction/#EAGO.bool_indx_diff","page":"Domain Reduction","title":"EAGO.bool_indx_diff","text":"bool_indx_diff\n\nUtility function used to set vector of booleans z to x & ~y. Avoids the generation of conversion of the BitArray created by broadcasting logical operators.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/domain_reduction/#EAGO.obbt","page":"Domain Reduction","title":"EAGO.obbt","text":"obbt\n\nPerforms OBBT with filtering and greedy ordering as detailed in: Gleixner, A.M., Berthold, T., Müller, B. et al. J Glob Optim (2017) 67: 731. https://doi.org/10.1007/s10898-016-0450-4\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/domain_reduction/#EAGO.trivial_filtering!","page":"Domain Reduction","title":"EAGO.trivial_filtering!","text":"trivial_filtering!\n\nExcludes OBBT on variable indices that are tight for the solution of the relaxation.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/bnb_back/#EAGO's-Branch-and-Bound-Routine-1","page":"EAGO's Branch and Bound Routine","title":"EAGO's Branch and Bound Routine","text":"","category":"section"},{"location":"Optimizer/bnb_back/#","page":"EAGO's Branch and Bound Routine","title":"EAGO's Branch and Bound Routine","text":"This component is meant to provide a flexible framework for implementing spatial branch-and-bound based optimization routines in Julia. All components of the branch-and-bound routine can be customized by the individual user: lower bounding problem, upper bounding problem.","category":"page"},{"location":"Optimizer/bnb_back/#Branch-and-Bound-Node-Storage-1","page":"EAGO's Branch and Bound Routine","title":"Branch and Bound Node Storage","text":"","category":"section"},{"location":"Optimizer/bnb_back/#","page":"EAGO's Branch and Bound Routine","title":"EAGO's Branch and Bound Routine","text":" EAGO.NodeBB","category":"page"},{"location":"Optimizer/bnb_back/#EAGO.NodeBB","page":"EAGO's Branch and Bound Routine","title":"EAGO.NodeBB","text":"NodeBB\n\nStores information associated with each node in Branch & Bound tree.\n\nlower_variable_bounds::Vector{Float64}: Lower bounds of variable box.\nupper_variable_bounds::Vector{Float64}: Upper bounds of variable box.\nlower_bound::Float64: Lower bound of problem solution on nodeBB\nupper_bound::Float64: Upper bound of problem solution on nodeBB\ndepth::Int64: Depth of node in B&B tree.\nid::Int64: Unique id for each node.\n\n\n\n\n\n","category":"type"},{"location":"Optimizer/bnb_back/#Customizable-subroutines-1","page":"EAGO's Branch and Bound Routine","title":"Customizable subroutines","text":"","category":"section"},{"location":"Optimizer/bnb_back/#","page":"EAGO's Branch and Bound Routine","title":"EAGO's Branch and Bound Routine","text":" EAGO.add_cut!(t::ExtensionType, x::Optimizer)\n EAGO.branch_node!(t::ExtensionType, x::Optimizer)\n EAGO.convergence_check(t::ExtensionType, x::Optimizer)\n EAGO.cut_condition(t::ExtensionType, x::Optimizer)\n EAGO.fathom!(t::ExtensionType, d::Optimizer)\n EAGO.lower_problem!(t::ExtensionType, x::Optimizer)\n EAGO.relax_objective!(t::ExtensionType, x::Optimizer, x0::Vector{Float64})\n EAGO.relax_problem!(t::ExtensionType, x::Optimizer, v::Vector{Float64}, q::Int64)\n EAGO.node_selection!(t::ExtensionType, x::Optimizer)\n EAGO.optimize_hook!(t::ExtensionType, x::Optimizer)\n EAGO.postprocess!(t::ExtensionType, x::Optimizer)\n EAGO.preprocess!(t::ExtensionType, x::Optimizer)\n EAGO.repeat_check(t::ExtensionType, x::Optimizer)\n EAGO.single_storage!(t::ExtensionType, x::Optimizer)\n EAGO.termination_check(t::ExtensionType, x::Optimizer)\n EAGO.upper_problem!(t::ExtensionType, x::Optimizer)","category":"page"},{"location":"Optimizer/bnb_back/#EAGO.add_cut!-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.add_cut!","text":"add_cut!(t::ExtensionType, x::Optimizer)\n\nAdds a cut for each constraint and the objective function to the subproblem.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.branch_node!-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.branch_node!","text":"branch_node!(t::ExtensionType, x::Optimizer)\n\nCreates two nodes from currentnode using information available the x and stores them to the stack. By default, relative width bisection is perfomed at a point `branchpntwhich is a convex combination (parameter: branch_cvx_factor) of the solution to the relaxation and the midpoint of the node. If this solution lies withinbranchoffset/widthof a bound then the branch point is moved to a distance ofbranchoffset/width` from the bound.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.convergence_check-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.convergence_check","text":"convergence_check(t::ExtensionType, x::Optimizer)\n\nChecks for convergence of algorithm with respect to absolute and/or relative tolerances.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.cut_condition-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.cut_condition","text":"cut_conditioncut_condition(t::ExtensionType, x::Optimizer)\n\nChecks if a cut should be added and computes a new reference point to add the cut at. If no cut should be added the constraints not modified in place are deleted from the relaxed optimizer and the solution is compared with the interval lower bound. The best lower bound is then used.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.fathom!-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.fathom!","text":"fathom!(t::ExtensionType, d::Optimizer)\n\nSelects and deletes nodes from stack with lower bounds greater than global upper bound.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.lower_problem!-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.lower_problem!","text":"lower_problem!(t::ExtensionType, x::Optimizer)\n\nConstructs and solves the relaxation using the default EAGO relaxation scheme and optimizer on node y.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.relax_objective!-Tuple{ExtensionType,Optimizer,Array{Float64,1}}","page":"EAGO's Branch and Bound Routine","title":"EAGO.relax_objective!","text":"relax_objective!(t::ExtensionType, x::Optimizer, x0::Vector{Float64})\n\nA rountine that only relaxes the objective.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.relax_problem!-Tuple{ExtensionType,Optimizer,Array{Float64,1},Int64}","page":"EAGO's Branch and Bound Routine","title":"EAGO.relax_problem!","text":"relax_problem!(t::ExtensionType, x::Optimizer, v::Vector{Float64}, q::Int64)\n\nA rountine that updates the current node for the Evaluator and relaxes all nonlinear constraints and quadratic constraints.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.node_selection!-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.node_selection!","text":"node_selection!(t::ExtensionType, x::Optimizer)\n\nSelects node with the lowest lower bound in stack.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.optimize_hook!-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.optimize_hook!","text":"optimize_hook!(t::ExtensionType, x::Optimizer)\n\nProvides a hook for extensions to EAGO as opposed to standard global, local, or linear solvers.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.postprocess!-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.postprocess!","text":"postprocess!(t::ExtensionType, x::Optimizer)\n\nDefault postprocess perfoms duality-based bound tightening on the y.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.preprocess!-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.preprocess!","text":"preprocess!(t::ExtensionType, x::Optimizer)\n\nRuns interval, linear, quadratic contractor methods followed by obbt and a constraint programming walk up to tolerances specified in EAGO.Optimizer object.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.repeat_check-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.repeat_check","text":"repeat_check(t::ExtensionType, x::Optimizer)\n\nChecks to see if current node should be reprocessed.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.single_storage!-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.single_storage!","text":"single_storage!(t::ExtensionType, x::Optimizer)\n\nStores the current node to the stack after updating lower/upper bounds.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.termination_check-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.termination_check","text":"termination_check(t::ExtensionType, x::Optimizer)\n\nChecks for termination of algorithm due to satisfying absolute or relative tolerance, infeasibility, or a specified limit, returns a boolean valued true if algorithm should continue.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.upper_problem!-Tuple{ExtensionType,Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.upper_problem!","text":"upper_problem!(t::ExtensionType, x::Optimizer)\n\nDefault upper bounding problem which simply calls solve_local_nlp! to solve the nlp locally.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#Internal-Subroutines-1","page":"EAGO's Branch and Bound Routine","title":"Internal Subroutines","text":"","category":"section"},{"location":"Optimizer/bnb_back/#","page":"EAGO's Branch and Bound Routine","title":"EAGO's Branch and Bound Routine","text":" EAGO.cut_update(x::Optimizer)\n EAGO.default_nlp_heurestic(x::Optimizer, y::NodeBB)\n EAGO.interval_bound\n EAGO.interval_lower_bound!(x::Optimizer, y::NodeBB)\n EAGO.is_globally_optimal(t::MOI.TerminationStatusCode, r::MOI.ResultStatusCode)\n EAGO.is_feasible_solution(t::MOI.TerminationStatusCode, r::MOI.ResultStatusCode)\n EAGO.log_iteration!(x::Optimizer)\n EAGO.same_box(x::NodeBB,y::NodeBB, atol::Float64)\n EAGO.solve_local_nlp!(x::Optimizer)\n EAGO.set_dual!(x::Optimizer)\n EAGO.update_relaxed_problem_box!(x::Optimizer, y::NodeBB)","category":"page"},{"location":"Optimizer/bnb_back/#EAGO.cut_update-Tuple{Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.cut_update","text":"cut_update(x::Optimizer)\n\nUpdates the internal storage in the optimizer after a valid feasible cut is added.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.default_nlp_heurestic-Tuple{Optimizer,NodeBB}","page":"EAGO's Branch and Bound Routine","title":"EAGO.default_nlp_heurestic","text":"default_nlp_heurestic(x::Optimizer, y::NodeBB)\n\nDefault check to see if the upper bounding problem should be run. By default, The upper bounding problem is run on every node up to depth upper_bounding_depth and is triggered with a probability of 0.5^(depth - upper_bounding_depth) afterwards.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.interval_bound","page":"EAGO's Branch and Bound Routine","title":"EAGO.interval_bound","text":"interval_bound\n\nComputes the natural interval extension of a MathOptInterface function s or ScalarQuadaraticFunction on a node y. Returns the lower bound if flag is true and the upper bound if flag is false.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/bnb_back/#EAGO.interval_lower_bound!-Tuple{Optimizer,NodeBB}","page":"EAGO's Branch and Bound Routine","title":"EAGO.interval_lower_bound!","text":"interval_lower_bound!(x::Optimizer, y::NodeBB)\n\nA fallback lower bounding problem that consists of an natural interval extension calculation. This is called when the optimizer used to compute the lower bound does not return a termination and primal status code indicating that it successfully solved the relaxation to a globally optimal point.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.is_globally_optimal-Tuple{MathOptInterface.TerminationStatusCode,MathOptInterface.ResultStatusCode}","page":"EAGO's Branch and Bound Routine","title":"EAGO.is_globally_optimal","text":"is_globally_optimal(t::MOI.TerminationStatusCode, r::MOI.ResultStatusCode)\n\nTakes an MOI.TerminationStatusCode and a MOI.ResultStatusCode and returns the tuple (valid_result::Bool, feasible::Bool). The value valid_result is true if the pair of codes prove that either the subproblem solution was solved to global optimality or the subproblem solution is infeasible. The value of feasible is true if the problem is feasible and false if the problem is infeasible.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.is_feasible_solution-Tuple{MathOptInterface.TerminationStatusCode,MathOptInterface.ResultStatusCode}","page":"EAGO's Branch and Bound Routine","title":"EAGO.is_feasible_solution","text":"is_feasible_solution(t::MOI.TerminationStatusCode, r::MOI.ResultStatusCode)\n\nTakes an MOI.TerminationStatusCode and a MOI.ResultStatusCode and returns true if this corresponds to a solution that is proven to be feasible. Returns false otherwise.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.log_iteration!-Tuple{Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.log_iteration!","text":"log_iteration!(x::Optimizer)\n\nIf 'loggingon' is true, the 'globallowerbound', 'globalupperbound', 'runtime', and 'nodecount' are stored every 'loginterval'. If 'logsubprobleminfo' then the lower bound, feasibility and run times of the subproblems are logged every 'log_interval'.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.same_box-Tuple{NodeBB,NodeBB,Float64}","page":"EAGO's Branch and Bound Routine","title":"EAGO.same_box","text":"same_box(x::NodeBB,y::NodeBB, atol::Float64)\n\nChecks that node x and y have equal domains withing a tolerance of atol.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.solve_local_nlp!-Tuple{Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.solve_local_nlp!","text":"solve_local_nlp!(x::Optimizer)\n\nConstructs and solves the problem locally on on node y updated the upper solution informaton in the optimizer.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.set_dual!-Tuple{Optimizer}","page":"EAGO's Branch and Bound Routine","title":"EAGO.set_dual!","text":"set_dual!(x::Optimizer)\n\nRetrieves the lower and upper duals for variable bounds from the relaxed_optimizer and sets the appropriate values in the _lower_lvd and _lower_uvd storage fields.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#EAGO.update_relaxed_problem_box!-Tuple{Optimizer,NodeBB}","page":"EAGO's Branch and Bound Routine","title":"EAGO.update_relaxed_problem_box!","text":"update_relaxed_problem_box!(x::Optimizer, y::NodeBB)\n\nUpdates the relaxed constraint by setting the constraint set of v == x*,xLi <= xi, andxi <= xUi` for each such constraint added to the relaxed optimizer.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/bnb_back/#Functions-for-generating-console-output-1","page":"EAGO's Branch and Bound Routine","title":"Functions for generating console output","text":"","category":"section"},{"location":"Optimizer/bnb_back/#","page":"EAGO's Branch and Bound Routine","title":"EAGO's Branch and Bound Routine","text":" EAGO.print_iteration!\n EAGO.print_node!\n EAGO.print_results!\n EAGO.print_solution!","category":"page"},{"location":"Optimizer/bnb_back/#EAGO.print_iteration!","page":"EAGO's Branch and Bound Routine","title":"EAGO.print_iteration!","text":"print_iteration!\n\nPrints the iteration information based on verbosity. The header is displayed every header_interval, the iteration info is displayed every iteration_interval.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/bnb_back/#EAGO.print_node!","page":"EAGO's Branch and Bound Routine","title":"EAGO.print_node!","text":"print_node!\n\nPrints node information for the B&B problem. Node id, bound, and interval box.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/bnb_back/#EAGO.print_results!","page":"EAGO's Branch and Bound Routine","title":"EAGO.print_results!","text":"print_results!\n\nPrints the results of a single bounding problem.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/bnb_back/#EAGO.print_solution!","page":"EAGO's Branch and Bound Routine","title":"EAGO.print_solution!","text":"print_solution!\n\nPrints solution information for the B&B problem. Displays first node found, solution value, solution, and time spent solving subproblems.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/relax_back/#Relaxation-Backend-1","page":"Relaxation Backend","title":"Relaxation Backend","text":"","category":"section"},{"location":"Optimizer/relax_back/#Quadratic-Relaxations-1","page":"Relaxation Backend","title":"Quadratic Relaxations","text":"","category":"section"},{"location":"Optimizer/relax_back/#","page":"Relaxation Backend","title":"Relaxation Backend","text":" EAGO.relax_convex_kernel\n EAGO.relax_nonconvex_kernel\n EAGO.relax_quadratic_gen_saf\n EAGO.relax_quadratic!","category":"page"},{"location":"Optimizer/relax_back/#EAGO.relax_convex_kernel","page":"Relaxation Backend","title":"EAGO.relax_convex_kernel","text":"relax_convex_kernel\n\nStores the kernel of the calculation required to relax convex quadratic constraints using the immutable dictionary to label terms.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/relax_back/#EAGO.relax_nonconvex_kernel","page":"Relaxation Backend","title":"EAGO.relax_nonconvex_kernel","text":"relax_nonconvex_kernel\n\nStores the kernel of the calculation required to relax nonconvex quadratic constraints using the immutable dictionary to label terms.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/relax_back/#EAGO.relax_quadratic_gen_saf","page":"Relaxation Backend","title":"EAGO.relax_quadratic_gen_saf","text":"relax_quadratic_gen_saf\n\nDefault routine for relaxing nonconvex quadratic constraint lower < func < upper on node n. Takes affine bounds of convex part at point x0 and secant line bounds on concave parts.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/relax_back/#EAGO.relax_quadratic!","page":"Relaxation Backend","title":"EAGO.relax_quadratic!","text":"relax_quadratic!\n\nRelaxes all quadratic constraints in x optimizer.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/relax_back/#Nonlinear-Relaxation-1","page":"Relaxation Backend","title":"Nonlinear Relaxation","text":"","category":"section"},{"location":"Optimizer/relax_back/#","page":"Relaxation Backend","title":"Relaxation Backend","text":"EAGO.relax_nlp!\nEAGO.objective_cut_linear!","category":"page"},{"location":"Optimizer/relax_back/#EAGO.relax_nlp!","page":"Relaxation Backend","title":"EAGO.relax_nlp!","text":"relax_nlp!\n\nA rountine that relaxes all nonlinear constraints excluding constraints specified as quadratic.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/relax_back/#EAGO.objective_cut_linear!","page":"Relaxation Backend","title":"EAGO.objective_cut_linear!","text":"objective_cut_linear!\n\nAdds linear objective cut constraint to the x.relaxed_optimizer.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/relax_back/#Nonlinear-Storage-Structures-1","page":"Relaxation Backend","title":"Nonlinear Storage Structures","text":"","category":"section"},{"location":"Optimizer/relax_back/#","page":"Relaxation Backend","title":"Relaxation Backend","text":" FunctionSetStorage\n SubexpressionSetStorage","category":"page"},{"location":"Optimizer/relax_back/#EAGO.FunctionSetStorage","page":"Relaxation Backend","title":"EAGO.FunctionSetStorage","text":"FunctionSetStorage\n\nA storage object for both set and number valued data required to compute relaxations which contains the tape used to compute a nonlinear function. The object is parameterized by a {N,T<:RelaxTag} where N corresponds the subgradient size used in the MC object.\n\nnd::Vector{JuMP.NodeData}\nadj::SparseMatrixCSC{Bool,Int64}\nconst_values::Vector{Float64}\nsetstorage::Vector{MC{N,T}}\nnumberstorage::Vector{Float64}\nnumvalued::Vector{Bool}\ntp1storage::Vector{Float64}\ntp2storage::Vector{Float64}\ntp3storage::Vector{Float64}\ntp4storage::Vector{Float64}\ntpdict::Dict{Int64,Tuple{Int64,Int64,Int64,Int64}}\ngrad_sparsity::Vector{Int64}\nhess_I::Vector{Int64}\nhess_J::Vector{Int64}\ndependent_subexpressions::Vector{Int64}\n\n\n\n\n\n","category":"type"},{"location":"Optimizer/relax_back/#EAGO.SubexpressionSetStorage","page":"Relaxation Backend","title":"EAGO.SubexpressionSetStorage","text":"SubexpressionSetStorage\n\nA storage object for both set and number valued data required to compute relaxations which contains the tape used to compute a nonlinear subexpression. The object is parameterized by a {N,T<:RelaxTag} where N corresponds the the subgradient size used in the MC object.\n\nnd::Vector{JuMP.NodeData}\nadj::SparseMatrixCSC{Bool,Int64}\nconst_values::Vector{Float64}\nsetstorage::Vector{MC{N,T}}\nnumberstorage::Vector{Float64}\nnumvalued::Vector{Bool}\ntp1storage::Vector{Float64}\ntp2storage::Vector{Float64}\ntp3storage::Vector{Float64}\ntp4storage::Vector{Float64}\ntpdict::Dict{Int64,Tuple{Int64,Int64,Int64,Int64}}\nlinearity::JuMP._Derivatives.Linearity\n\n\n\n\n\n","category":"type"},{"location":"Optimizer/relax_back/#Nonlinear-Evaluator-1","page":"Relaxation Backend","title":"Nonlinear Evaluator","text":"","category":"section"},{"location":"Optimizer/relax_back/#","page":"Relaxation Backend","title":"Relaxation Backend","text":" Evaluator","category":"page"},{"location":"Optimizer/relax_back/#EAGO.Evaluator","page":"Relaxation Backend","title":"EAGO.Evaluator","text":"Evaluator\n\nMOI.AbstractNLPEvaluator for calculating relaxations of nonlinear terms.\n\n\n\n\n\n","category":"type"},{"location":"Optimizer/relax_back/#Internal-Functions-Used-by-Evaluator-1","page":"Relaxation Backend","title":"Internal Functions Used by Evaluator","text":"","category":"section"},{"location":"Optimizer/relax_back/#","page":"Relaxation Backend","title":"Relaxation Backend","text":" set_current_node!(x::Evaluator, n::NodeBB)\n eval_objective_lo(d::Evaluator)\n eval_constraint_cc(d::Evaluator, g::Vector{Float64}, y::Vector{Float64})\n eval_constraint_lo!(d::Evaluator, g::Vector{Float64})\n eval_constraint_hi!(d::Evaluator, g::Vector{Float64})\n eval_constraint_cc_grad(d::Evaluator, g, y)\n get_node_lower(d::FunctionSetStorage, i::Int64)\n get_node_upper(d::FunctionSetStorage, i::Int64)\n forward_reverse_pass(d::Evaluator, x::Vector{Float64})","category":"page"},{"location":"Optimizer/relax_back/#EAGO.set_current_node!-Tuple{Evaluator,NodeBB}","page":"Relaxation Backend","title":"EAGO.set_current_node!","text":"set_current_node!(x::Evaluator, n::NodeBB)\n\nSets the current node in the Evaluator structure.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/relax_back/#EAGO.eval_objective_lo-Tuple{Evaluator}","page":"Relaxation Backend","title":"EAGO.eval_objective_lo","text":"eval_objective_lo\n\nRetrieves the lower bound of the objective.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/relax_back/#EAGO.eval_constraint_cc-Tuple{Evaluator,Array{Float64,1},Array{Float64,1}}","page":"Relaxation Backend","title":"EAGO.eval_constraint_cc","text":"eval_constraint_cc(d::Evaluator, g::Vector{Float64}, y::Vector{Float64})\n\nPopulates g with the concave relaxations of the constraints of d evaluated at y.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/relax_back/#EAGO.eval_constraint_lo!-Tuple{Evaluator,Array{Float64,1}}","page":"Relaxation Backend","title":"EAGO.eval_constraint_lo!","text":"eval_constraint_lo!(d::Evaluator, g::Vector{Float64})\n\nPopulates g with the lower bounds of the constraints of d.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/relax_back/#EAGO.eval_constraint_hi!-Tuple{Evaluator,Array{Float64,1}}","page":"Relaxation Backend","title":"EAGO.eval_constraint_hi!","text":"eval_constraint_hi!(d::Evaluator, g::Vector{Float64})\n\nPopulates g with the upper bounds of the constraints of d.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/relax_back/#EAGO.eval_constraint_cc_grad-Tuple{Evaluator,Any,Any}","page":"Relaxation Backend","title":"EAGO.eval_constraint_cc_grad","text":"eval_constraint_cc_grad(d::Evaluator, g, y)\n\nPopulates g with the subgradients of the constraints of d evaluated at y.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/relax_back/#EAGO.get_node_lower-Tuple{FunctionSetStorage,Int64}","page":"Relaxation Backend","title":"EAGO.get_node_lower","text":"get_node_lower(d::FunctionSetStorage, i::Int64)\n\nRetreives the lower bound of ith term in the tape of d.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/relax_back/#EAGO.get_node_upper-Tuple{FunctionSetStorage,Int64}","page":"Relaxation Backend","title":"EAGO.get_node_upper","text":"get_node_upper(d::FunctionSetStorage, i::Int64)\n\nRetreives the upper bound of ith term in the tape of d.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/relax_back/#EAGO.forward_reverse_pass-Tuple{Evaluator,Array{Float64,1}}","page":"Relaxation Backend","title":"EAGO.forward_reverse_pass","text":"forward_reverse_pass(d::Evaluator, x::Vector{Float64})\n\nPerforms a d.fw_repeats forward passes of the set-value evaluator each followed by a reverse pass if d.has_reverse as long as the node between passes differs by more that d.fw_atol at each iteration.\n\n\n\n\n\n","category":"method"},{"location":"Optimizer/udf_utilities/#User-Define-Functions-and-DAG-Utilities-1","page":"User-Define Functions and DAG Utilities","title":"User-Define Functions and DAG Utilities","text":"","category":"section"},{"location":"Optimizer/udf_utilities/#","page":"User-Define Functions and DAG Utilities","title":"User-Define Functions and DAG Utilities","text":"EAGO has included basic functionality to manipulate user-defined functions. These features are largely experimental and we're interested in providing additional for novel use cases. Please contact us by opening an issue in the Github issue tracker with any questions or requests for additional features.","category":"page"},{"location":"Optimizer/udf_utilities/#DAG-Substitution-and-Flattening-1","page":"User-Define Functions and DAG Utilities","title":"DAG Substitution and Flattening","text":"","category":"section"},{"location":"Optimizer/udf_utilities/#","page":"User-Define Functions and DAG Utilities","title":"User-Define Functions and DAG Utilities","text":"dag_flattening!\nflatten_expression!\nregister_substitution!\nTemplate_Graph\nTemplate_Node","category":"page"},{"location":"Optimizer/udf_utilities/#EAGO.Script.dag_flattening!","page":"User-Define Functions and DAG Utilities","title":"EAGO.Script.dag_flattening!","text":"dag_flattening!\n\nFlattens (usually) the dag by making all registered substitutions for every nonlinear term in the Optimizer.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/udf_utilities/#EAGO.Script.flatten_expression!","page":"User-Define Functions and DAG Utilities","title":"EAGO.Script.flatten_expression!","text":"flatten_expression!\n\nFlattens (usually) the dag by making all registered substitutions for the expression expr::_NonlinearExprData. Performs a depth-first search through the expression adding the terminal node to the stack, then checking to determine if it matches a registered substitution pattern. If it doesn't not then node is added to the new expression graph representation and it's children are added to the queue. If an expression (node) is identified as a pattern then it is substituted and any children expression nodes are then checked for patterns until the depth first search is exhausted.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/udf_utilities/#EAGO.Script.register_substitution!","page":"User-Define Functions and DAG Utilities","title":"EAGO.Script.register_substitution!","text":"register_substitution!\n\nSpecifies that the src::Template_Graph should be subsituted out for the trg::Template_Graph.\n\nConventions for substition, the expression to be checked always appears at key 1 in the Template_Graph and operations are ordered from low value to high value left to right so if 1 is a -, and 4 => 1, 3 => 1 then the expression is 4 - 3\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/udf_utilities/#EAGO.Script.Template_Graph","page":"User-Define Functions and DAG Utilities","title":"EAGO.Script.Template_Graph","text":"Template_Graph\n\nHolds a list of Template_Nodes, set of directed edges, lengths, an adjacency matrix and the number of children.\n\n\n\n\n\n","category":"type"},{"location":"Optimizer/udf_utilities/#EAGO.Script.Template_Node","page":"User-Define Functions and DAG Utilities","title":"EAGO.Script.Template_Node","text":"Template_Node\n\nA structure which holds a symbol indicating whether the node is an operator, a number, or an expression type, a value which identifies the function or symbol value, potentially a numeric value num_value, and a check that can be run to verify the node is correct check.\n\n\n\n\n\n","category":"type"},{"location":"Optimizer/udf_utilities/#User-Defined-Function-(UDF)-Scrubber-1","page":"User-Define Functions and DAG Utilities","title":"User-Defined Function (UDF) Scrubber","text":"","category":"section"},{"location":"Optimizer/udf_utilities/#","page":"User-Define Functions and DAG Utilities","title":"User-Define Functions and DAG Utilities","text":"scrub\nscrub!","category":"page"},{"location":"Optimizer/udf_utilities/#EAGO.Script.scrub","page":"User-Define Functions and DAG Utilities","title":"EAGO.Script.scrub","text":"scrub(f::Function, n::Int, inplace = false)\n\nReplaces storage objects and circumvents assertions that present a UDF from being overloaded with subtype Real objects by creating a function which overdubs f in ScrubCtx.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/udf_utilities/#EAGO.Script.scrub!","page":"User-Define Functions and DAG Utilities","title":"EAGO.Script.scrub!","text":"scrub!(d::_NLPData)\n\nApplies scrub to every user-defined function in the a _NLPData structure.\n\n\n\n\n\n","category":"function"},{"location":"Dev/contributing/#How-to-Contribute-1","page":"How to Contribute","title":"How to Contribute","text":"","category":"section"},{"location":"Dev/contributing/#","page":"How to Contribute","title":"How to Contribute","text":"We're always happy to welcome work with additional collaborators and contributors. One of the easy ways for newcomers to contribute is by adding additional relaxations.","category":"page"},{"location":"Dev/contributing/#","page":"How to Contribute","title":"How to Contribute","text":"If you're interested in contributing in larger ways, please contact: Matthew Wilhelm","category":"page"},{"location":"Dev/contributing/#","page":"How to Contribute","title":"How to Contribute","text":"If you have any requests for additional functionality, bug fixes, or comments please feel free to open a new issue using Github issue tracker.","category":"page"},{"location":"McCormick/implicit/#Relaxation-of-Implicit-Functions-1","page":"Relaxation of Implicit Functions","title":"Relaxation of Implicit Functions","text":"","category":"section"},{"location":"McCormick/implicit/#High-level-functions-1","page":"Relaxation of Implicit Functions","title":"High-level functions","text":"","category":"section"},{"location":"McCormick/implicit/#","page":"Relaxation of Implicit Functions","title":"Relaxation of Implicit Functions","text":" implicit_relax_h!\n implicit_relax_fg\n implicit_relax_f","category":"page"},{"location":"McCormick/implicit/#EAGO.McCormick.implicit_relax_h!","page":"Relaxation of Implicit Functions","title":"EAGO.McCormick.implicit_relax_h!","text":"implicit_relax_h!\n\nRelaxes the implicit function determined by h(x,p) with x in X and p in P. The reference point for the affine relaxations is pmid. The parameters generated from the relaxation at pmid are param and the basic parameters of the fixed point method are mc_opt.\n\n\n\n\n\n","category":"function"},{"location":"McCormick/implicit/#EAGO.McCormick.implicit_relax_fg","page":"Relaxation of Implicit Functions","title":"EAGO.McCormick.implicit_relax_fg","text":"implicit_relax_fg\n\nRelaxes the functions f(x,p) and g(x,p) by relaxation the state variable x using the implicit function determined by h(x,p) with x in X and p in P. The reference point for the affine relaxations is pmid. The parameters generated from the relaxation at pmid are param and the basic parameters of the fixed point method are mc_opt.\n\n\n\n\n\n","category":"function"},{"location":"McCormick/implicit/#EAGO.McCormick.implicit_relax_f","page":"Relaxation of Implicit Functions","title":"EAGO.McCormick.implicit_relax_f","text":"implicit_relax_f\n\nRelaxes the function f(x,p) by relaxation the state variable x using the implicit function determined by h(x,p) with x in X and p in P. The reference point for the affine relaxations is pmid. The parameters generated from the relaxation at pmid are param and the basic parameters of the fixed point method are mc_opt.\n\n\n\n\n\n","category":"function"},{"location":"McCormick/implicit/#Subroutines-1","page":"Relaxation of Implicit Functions","title":"Subroutines","text":"","category":"section"},{"location":"McCormick/implicit/#","page":"Relaxation of Implicit Functions","title":"Relaxation of Implicit Functions","text":" affine_exp!\n correct_exp!\n final_cut\n gen_expansion_params!\n mc_dense_krawczyk_cw!\n mc_dense_newton_gs!\n pmc_kernel!","category":"page"},{"location":"McCormick/implicit/#EAGO.McCormick.affine_exp!","page":"Relaxation of Implicit Functions","title":"EAGO.McCormick.affine_exp!","text":"affine_exp!\n\nComputates the affine relaxations of the state variable. Inputs are:\n\nx: State variable relaxation\np::Vector{MC{N,T}}: Decision variable relaxation\np_ref::Vector{MC{N,T}}: Reference variable relaxation\nxa::Vector{MC{N,T}}: Lower affine relaxation of the state variable\nxA::Vector{MC{N,T}}: Upper affine relaxation of the state variable\nz::Vector{MC{N,T}}: Affine function in X\nnx: Number of state variables\nlambda: Convex coefficient used to define z as a function of xa, xA\n\nPopulats the following vectors with results (xa,xA,z):\n\nxa::Vector{MC{N,T}}: Lower affine relaxation of the state variable\nxA::Vector{MC{N,T}}: Upper affine relaxation of the state variable\nz::Vector{MC{N,T}}: Affine function in X\n\n\n\n\n\n\n\n","category":"function"},{"location":"McCormick/implicit/#EAGO.McCormick.correct_exp!","page":"Relaxation of Implicit Functions","title":"EAGO.McCormick.correct_exp!","text":"correct_exp!\n\nCorrects the relaxation of the state variable x_mc if the affine relaxation, 'z_mc', exceeds the interval bounds xL or xU.\n\nz_mc::Vector{MC{N}}: Affine relaxation\nx_mc::Vector{MC{N}}: Relaxation of state variable\nX::Vector{IntervalType}: Lower bound on state vector\nnx::Int64: Size of the state vector\nepsv::Float64: Tolerance for checking that subgradient exceeds bound\n\n\n\n\n\n","category":"function"},{"location":"McCormick/implicit/#EAGO.McCormick.final_cut","page":"Relaxation of Implicit Functions","title":"EAGO.McCormick.final_cut","text":"final_cut\n\nAn operator that cuts the x_mc object using the x_mc_int bounds in a differentiable or nonsmooth fashion to achieve a composite relaxation within x_mc_int.\n\n\n\n\n\n","category":"function"},{"location":"McCormick/implicit/#EAGO.McCormick.gen_expansion_params!","page":"Relaxation of Implicit Functions","title":"EAGO.McCormick.gen_expansion_params!","text":"gen_expansion_params!\n\nGenerates the relaxations at pref_mc that can be subsequentially used to compute affine relaxations for use in relaxing the implicit function.\n\n\n\n\n\n","category":"function"},{"location":"McCormick/implicit/#EAGO.McCormick.mc_dense_krawczyk_cw!","page":"Relaxation of Implicit Functions","title":"EAGO.McCormick.mc_dense_krawczyk_cw!","text":"mc_dense_krawczyk_cw!\n\nPerforms a single step of the dense-krawczyk componentwise parametric method after the inputs have been preconditioned.\n\n\n\n\n\n","category":"function"},{"location":"McCormick/implicit/#EAGO.McCormick.mc_dense_newton_gs!","page":"Relaxation of Implicit Functions","title":"EAGO.McCormick.mc_dense_newton_gs!","text":"mc_dense_newton_gs!\n\nPerforms a single step of the dense-newton gauss-siedel parametric method after the inputs have been preconditioned.\n\n\n\n\n\n","category":"function"},{"location":"McCormick/implicit/#EAGO.McCormick.pmc_kernel!","page":"Relaxation of Implicit Functions","title":"EAGO.McCormick.pmc_kernel!","text":"pmc_kernel!\n\nPeforms the following steps in sequence:\n\nEvaluates the function h!(H, x, xp, p, t) in place with x = z_mc, p = p_mc,\n\nxp = xp_mc, t = flt_param and preconditions H using an interval midpoint preconditioner if precond = true.\n\nEvaluates the function hj!(J, x, xp, p, t) in place with x = aff_mc, p = p_mc,\n\nxp = xp_mc, t = flt_param and preconditions J using an interval midpoint preconditioner if precond = true.\n\nLastly, applies a Newton-type contractor method. The parametric GS Newton\n\ncontractor if cntr = :Newton and the componentwise Krawczyk contractor otherwise.\n\n\n\n\n\n","category":"function"},{"location":"Optimizer/optimizer/#EAGO-Optimizer-1","page":"EAGO Optimizer","title":"EAGO Optimizer","text":"","category":"section"},{"location":"Optimizer/optimizer/#","page":"EAGO Optimizer","title":"EAGO Optimizer","text":"The EAGO.Optimizer object holds all algorithm solution information. A description of all user-facing options has been provided in the docstring.","category":"page"},{"location":"Optimizer/optimizer/#EAGO.Optimizer-1","page":"EAGO Optimizer","title":"EAGO.Optimizer","text":"","category":"section"},{"location":"Optimizer/optimizer/#","page":"EAGO Optimizer","title":"EAGO Optimizer","text":"Optimizer","category":"page"},{"location":"Optimizer/optimizer/#EAGO.Optimizer","page":"EAGO Optimizer","title":"EAGO.Optimizer","text":"Optimizer\n\nThe main optimizer object used by EAGO to solve problems during the optimization routine. The following commonly used options are described below and can be set via keyword arguments in the JuMP/MOI model:\n\npresolve_scrubber_flag::Bool: Replace code in user-defined functions which may prevent method overloading on Real subtypes (default = false).\npresolve_to_JuMP_flag::Bool: Create and use DAG representations of user-defined function (default = false).\npresolve_epigraph_flag::Bool: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Apply the epigraph reformulation to the problem (default = false).\npresolve_cse_flag::Bool: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Enable common subexpression elimination for DAG (default = false).\npresolve_flatten_flag::Bool: Rerranges the DAG using registered transformations (default = false)\ncp_depth::Int64: Depth in B&B tree above which constraint propagation should be disabled (default = 1000).\ncp_repetitions::Int64: Number of repetitions of forward-reverse passes to perform in constraint propagation (default = 3).\ncp_tolerance::Float64: Disable constraint propagation if the ratio of new node volume to beginning node volume exceeds this number (default = 0.99).\ncp_interval_only::Bool: Use only valid interval bounds during constraint propagation (default = false).\nrelaxed_optimizer::S: An instance of the optimizer used to solve the relaxed subproblems (default = GLPK.Optimizer()).\nrelaxed_optimizer_kwargs::Base.Iterators.Pairs: Keyword arguments for the relaxed optimizer.\nobbt_depth::Int64: Depth in B&B tree above which OBBT should be disabled (default = 1000).\nobbt_repetitions::Int64: Number of repetitions of OBBT to perform in preprocessing (default = 3).\nobbt_aggressive_on::Bool: Turn aggresive OBBT on (default = false).\nobbt_aggressive_max_iteration::Int64: Maximum iteration to perform aggresive OBBT (default = 2)\nobbt_aggressive_min_dimension::Int64: Minimum dimension to perform aggresive OBBT (default = 2)\nobbt_tolerance::Float64: Tolerance to consider bounds equal (default = 1E-9).\nobbt_variable_values::Vector{Bool}: Variables to perform OBBT on (default: all variables in nonlinear expressions).\nlp_depth::Int64: Depth in B&B tree above which linear FBBT should be disabled (default = 1000).\nlp_repetitions::Int64: Number of repetitions of linear FBBT to perform in preprocessing (default = 3).\nquad_uni_depth::Int64: Depth in B&B tree above which univariate quadratic FBBT should be disabled (default = -1).\nquad_uni_repetitions::Int64: Number of repetitions of univariate quadratic FBBT to perform in preprocessing (default = 2).\nquad_bi_depth::Int64: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Depth in B&B tree above which bivariate quadratic FBBT should be disabled (default = -1).\nquad_bi_repetitions::Int64: Number of repetitions of bivariate quadratic FBBT to perform in preprocessing (default = 2).\nsubgrad_tighten::Bool: Perform tightening of interval bounds using subgradients at each factor in each nonlinear tape during a forward-reverse pass (default = true).\nsubgrad_tighten_reverse::Bool: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Used to enable/disable subgradient tightening of interval bounds on the reverse pass (default = true).\ncut_max_iterations::Int64\ncut_cvx::Float64: Convex coefficient used to select point for new added cuts. Branch point is given by (1-cut_cvx)*xmid + cut_cvx*xsol (default = 0.9).\ncut_tolerance::Float64: Add cut if the L1 distance from the prior cutting point to the new cutting point normalized by the box volume is greater than the tolerance (default = 0.05).\nobjective_cut_on::Bool: Adds an objective cut to the relaxed problem (default = true).\nupper_optimizer::T: Optimizer used to solve upper bounding problem (default = Ipopt.Optimizer())\nupper_factory::JuMP.OptimizerFactory: OptimizerFactory used to build optimizer that solves the upper bounding problem (default = with_optimizer(Ipopt.Optimizer, kwargs), check Optimizer constructor for kwargs used).\nupper_bounding_depth::Int64: Solve upper problem for every node with depth less than upper_bounding_depth and with a probability of (1/2)^(depth-upperboundingdepth) otherwise (default = 4).\ndbbt_depth::Int64: Depth in B&B tree above which duality-based bound tightening should be disabled (default = 1E10).\ndbbt_tolerance::Float64: New bound is considered equal to the prior bound if within dbbt_tolerance (default = 1E-9).\nbranch_cvx_factor::Float64: Convex coefficient used to select branch point. Branch point is given by branch_cvx_factor*xmid + (1-branch_cvx_factor)*xsol (default = 0.25)\nbranch_offset::Float64: Minimum distance from bound to have branch point normalized by width of dimension to branch on (default = 0.15)\nbranch_variable::Vector{Bool}: Variables to branch on (default is all nonlinear).\nbranch_max_repetitions::Int64: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Number of times repeat node processing prior to branching (default = 4).\nbranch_repetition_tol::Float64: [FUTURE FEATURE, NOT CURRENTLY IMPLEMENTED] Volume ratio tolerance required to repeat processing the current node (default = 0.9).\nrounding_mode::Symbol: Interval rounding mode to use (default = :accurate)\nnode_limit::Int64: Node limit (default = 10^7).\ntime_limit::Float64: Time limit in seconds (default = 3600).\niteration_limit::Int64: Iteration limit (default = 3000000).\nabsolute_tolerance::Float64: Absolute tolerance for terminatin (default = 1E-3).\nrelative_tolerance::Float64: Relative tolerance for terminatin (default = 1E-3).\nlocal_solve_only::Bool: Perform only a local solve of the problem (default = false).\nlog_on::Bool: Turns logging on records global bounds, node count and run time. Additional options are available for recording information specific to subproblems (default = false).\nlog_subproblem_info::Bool: Turns on logging of times and feasibility of subproblems (default = false).\nlog_interval::Int64: Log data every log_interval iterations (default = 1).\nverbosity::Int64: The amount of information that should be printed to console while solving values range from 0 - 4: 0 is silent, 1 shows iteration summary statistics only, 2-4 show varying degrees of details about calculations within each iteration (default = 1).\noutput_iterations::Int64: Display summary of iteration to console every output_iterations (default = 10).\nheader_iterations::Int64: Display header for summary to console every output_iterations (default = 100).\nenable_optimize_hook::Bool: Specifies that the optimize_hook! function should be called rather than throw the problem to the standard B&B routine (default = false).\next::Dict{Symbol, Any}: Holds additional storage needed for constructing extensions to EAGO (default = Dict{Symbol,Any}).\next_type::ExtensionType: Holds an instance of a subtype of EAGO.ExtensionType used to define new custom subroutines (default = DefaultExt()).\n\n\n\n\n\n","category":"type"},{"location":"Optimizer/optimizer/#Internal-Storage-Structures-1","page":"EAGO Optimizer","title":"Internal Storage Structures","text":"","category":"section"},{"location":"Optimizer/optimizer/#","page":"EAGO Optimizer","title":"EAGO Optimizer","text":"VariableInfo\nExtensionType\nLog","category":"page"},{"location":"Optimizer/optimizer/#EAGO.VariableInfo","page":"EAGO Optimizer","title":"EAGO.VariableInfo","text":"VariableInfo\n\nA structure used to store information related to the bounds assigned to each variable.\n\nis_integer::Bool: Is the variable integer valued?\nlower_bound::Float64: May be -Inf even if haslowerbound == true\nhas_lower_bound::Bool: Implies lower_bound == Inf\nupper_bound::Float64: May be Inf even if hasupperbound == true\nhas_upper_bound::Bool: Implies upper_bound == Inf\nis_fixed::Bool: Implies lowerbound == upperbound and !haslowerbound and !hasupperbound.\n\n\n\n\n\n","category":"type"},{"location":"Optimizer/optimizer/#EAGO.ExtensionType","page":"EAGO Optimizer","title":"EAGO.ExtensionType","text":"ExtensionType\n\nAn abstract type the subtypes of which are associated with functions method overloaded for for new extensions. An instance of the DefaultExt <:ExtensionType structure to the Optimizer in the ext_type field.\n\n\n\n\n\n","category":"type"},{"location":"Optimizer/optimizer/#EAGO.Log","page":"EAGO Optimizer","title":"EAGO.Log","text":"Log\n\nA structure used to store information on the history of the solution procedure for generating convergence plots and other analysis.\n\ncurrent_lower_bound::Vector{Float64}: Storage for lower bound calculated for current node.\ncurrent_upper_bound::Vector{Float64}: Storage for upper bound calculated for current node.\npreprocessing_time::Vector{Float64}: Storage for preprocessing time of each iteration.\nlower_problem_time::Vector{Float64}: Storage for lower bounding time of each iteration.\nupper_problem_time::Vector{Float64}: Storage for upper bounding time of each iteration.\npostprocessing_time::Vector{Float64}: Storage for postprocessing time of each iteration.\npreprocessing_feas::Vector{Bool}: Storage for preprocessing feasibility of each iteration.\nlower_problem_feas::Vector{Bool}: Storage for lower bounding feasibility of each iteration.\nupper_problem_feas::Vector{Bool}: Storage for upper bounding feasibility of each iteration.\npostprocessing_feas::Vector{Bool}: Storage for postprocessing feasibility of each iteration.\nglobal_lower_bound::Vector{Float64}: Storage for best (global) lower bound at each iteration.\nglobal_upper_bound::Vector{Float64}: Storage for best (global) upper bound at each iteration.\n\n\n\n\n\n","category":"type"},{"location":"Optimizer/optimizer/#Extending-EAGO-1","page":"EAGO Optimizer","title":"Extending EAGO","text":"","category":"section"},{"location":"Optimizer/optimizer/#","page":"EAGO Optimizer","title":"EAGO Optimizer","text":"Functionality has been included that allows for extension's to EAGO's optimizer to readily be defined. This can be done in two ways first defining a new structure which is a subtype of EAGO.ExtensionType and overloading methods associated with this new structure. An instance of this new structure is provided to the EAGO.Optimizer using the ext_type keyword. This results in EAGO now dispatch to the new methods rather than the generally defined methods for the parent type. For a complete example, the reader is directed to the interval bounding example and quasiconvex example. Alternatively, the user can overload the optimize_hook! for this subtype which will entirely circumvent the default global solution routine. Additional information can be stored in the ext field of EAGO. In order to allow for compatibility between packages the user is encouraged to append their extension name to the start of each variable name (e.g. newext_newdata).","category":"page"},{"location":"McCormick/overview/#Overview-1","page":"Overview","title":"Overview","text":"","category":"section"},{"location":"McCormick/overview/#","page":"Overview","title":"Overview","text":"EAGO provides a library of McCormick relaxations in native Julia code. It supports relaxing functions using both nonsmooth McCormick relaxations (Mitsos2009), smooth McCormick relaxations (Khan2017), multi-variant McCormick relaxations (Tsoukalas2014), as well as subgradient-based interval refinement (Najman2017). For functions with arbitrarily differentiable relaxations, the differentiable can be modified by adjusting a constant value. Additionally, and nonvalidated validated interval bounds are supported via ValidatedNumerics.jl.","category":"page"},{"location":"cite/#Citing-EAGO-1","page":"Citing EAGO","title":"Citing EAGO","text":"","category":"section"},{"location":"cite/#","page":"Citing EAGO","title":"Citing EAGO","text":"A paper about the EAGO software package is currently under preparation. In the meantime, please feel free to cite the conference presentation below:","category":"page"},{"location":"cite/#","page":"Citing EAGO","title":"Citing EAGO","text":"Wilhelm, Matthew; Stuber, Matthew (October 2017) Easy Advanced Global\nOptimization (EAGO): An Open-Source Platform for Robust and Global Optimization\nin Julia. Presented at the AIChE Annual Meeting in Minneapolis, MN.","category":"page"},{"location":"Optimizer/starting/#Solving-simple-example:-an-artificial-neural-network-with-EAGO-1","page":"Solving simple example: an artificial neural network with EAGO","title":"Solving simple example: an artificial neural network with EAGO","text":"","category":"section"},{"location":"Optimizer/starting/#","page":"Solving simple example: an artificial neural network with EAGO","title":"Solving simple example: an artificial neural network with EAGO","text":"Matthew Wilhelm Department of Chemical and Biomolecular Engineering, University of Connecticut","category":"page"},{"location":"Optimizer/starting/#","page":"Solving simple example: an artificial neural network with EAGO","title":"Solving simple example: an artificial neural network with EAGO","text":"In [1,2], a surrogate ANN model of bioreactor productivity was constructed by fitting results from computationally expensive CFD simulations. The author then optimized this surrogate model to obtain ideal processing conditions. This optimization problem is given by:","category":"page"},{"location":"Optimizer/starting/#","page":"Solving simple example: an artificial neural network with EAGO","title":"Solving simple example: an artificial neural network with EAGO","text":"\nbeginalign\n labelprobANN1\n max_mathbf xin X B_2 + sum_i=1^3frac2D_i1+exp(-2y_i) qquad textwhere qquad y_i = B_i + sum_i=1^3sum_j=1^8 W_ijx_i\nendalign\n\n\nWell repeat this exercise using JuMP and EAGO\n\n Input parameters\n\nIn the first block we input parameters values supplied in the paper for W","category":"page"},{"location":"Optimizer/starting/#","page":"Solving simple example: an artificial neural network with EAGO","title":"Solving simple example: an artificial neural network with EAGO","text":", B, D, and X into Julia as simple array objects.","category":"page"},{"location":"Optimizer/starting/#","page":"Solving simple example: an artificial neural network with EAGO","title":"Solving simple example: an artificial neural network with EAGO","text":"using JuMP, EAGO\n\n# Box constraints for input variables\nxLBD = [0.623 0.093 0.259 6.56 1114 0.013 0.127 0.004]\nxUBD = [5.89 0.5 1.0 90 25000 0.149 0.889 0.049]\n\n# Weights associated with the hidden layer\nW = [ 0.54 -1.97 0.09 -2.14 1.01 -0.58 0.45 0.26;\n -0.81 -0.74 0.63 -1.60 -0.56 -1.05 1.23 0.93;\n -0.11 -0.38 -1.19 0.43 1.21 2.78 -0.06 0.40]\n\n# Weights associated with the output layer\nD = [-0.91 0.11 0.52]\n\n# Bias associated with the hidden layer\nB1 = [-2.698 0.012 2.926]\n\n# Bias associated with the output layer\nB2 = -0.46","category":"page"},{"location":"Optimizer/starting/#Construct-the-JuMP-model-and-optimize-1","page":"Solving simple example: an artificial neural network with EAGO","title":"Construct the JuMP model and optimize","text":"","category":"section"},{"location":"Optimizer/starting/#","page":"Solving simple example: an artificial neural network with EAGO","title":"Solving simple example: an artificial neural network with EAGO","text":"We now formulate the problem using standard JuMP[3] syntax and optimize it. Note that we are forming an NLexpression object to handle the summation term to keep the code visually simple but this could be placed directly in the JuMP expressions instead.","category":"page"},{"location":"Optimizer/starting/#","page":"Solving simple example: an artificial neural network with EAGO","title":"Solving simple example: an artificial neural network with EAGO","text":"# Model construction\nmodel = Model(with_optimizer(EAGO.Optimizer, absolute_tolerance = 0.001))\n@variable(model, xLBD[i] <= x[i=1:8] <= xUBD[i])\n@NLexpression(model, prop[i=1:3], B1[i] + sum(W[i,j]*x[i] for j in 1:8))\n@NLobjective(model, Max, B2 + sum(D[i]*(2/(1+exp(-2*prop[i]))) for i=1:3))\n\n# Solves the model\noptimize!(model)","category":"page"},{"location":"Optimizer/starting/#Retrieve-results-1","page":"Solving simple example: an artificial neural network with EAGO","title":"Retrieve results","text":"","category":"section"},{"location":"Optimizer/starting/#","page":"Solving simple example: an artificial neural network with EAGO","title":"Solving simple example: an artificial neural network with EAGO","text":"We then recover the objective value, the solution value, and termination status codes using standard JuMP syntax.","category":"page"},{"location":"Optimizer/starting/#","page":"Solving simple example: an artificial neural network with EAGO","title":"Solving simple example: an artificial neural network with EAGO","text":"# Access calculated values\nfval = JuMP.objective_value(model)\nxsol = JuMP.value.(x)\nstatus_term = JuMP.termination_status(model)\nstatus_prim = JuMP.primal_status(model)\n\nprintln(\"EAGO terminated with a status of $status_term and a result code of $status_prim\")\nprintln(\"The optimal value is: $fval, the solution found is $xsol.\")","category":"page"},{"location":"Optimizer/starting/#Reference:-1","page":"Solving simple example: an artificial neural network with EAGO","title":"Reference:","text":"","category":"section"},{"location":"Optimizer/starting/#","page":"Solving simple example: an artificial neural network with EAGO","title":"Solving simple example: an artificial neural network with EAGO","text":"J. D. Smith, A. A. Neto, S. Cremaschi, and D. W. Crunkleton, CFD-based optimization of a flooded bed algae bioreactor, Industrial & Engineering Chemistry Research, 52 (2012), pp. 7181–7188\nA. M. Schweidtmann and A. Mitsos. Global Deterministic Optimization with Artificial Neural Networks Embedded https://arxiv.org/pdf/1801.07114.pdf\nIain Dunning and Joey Huchette and Miles Lubin. JuMP: A Modeling Language for Mathematical Optimization, SIAM Review, 59 (2017), pp. 295-320.","category":"page"},{"location":"McCormick/operators/#**Currently-supported-operators**-1","page":"Currently supported operators","title":"Currently supported operators","text":"","category":"section"},{"location":"McCormick/operators/#","page":"Currently supported operators","title":"Currently supported operators","text":"The operators currently supported are listed below. The operators with a check box have been subject to a large degree of scrutiny and have been implemented for both forward and reverse McCormick relaxations.","category":"page"},{"location":"McCormick/operators/#**Univariate-McCormick-Operators**-1","page":"Currently supported operators","title":"Univariate McCormick Operators","text":"","category":"section"},{"location":"McCormick/operators/#","page":"Currently supported operators","title":"Currently supported operators","text":"Arbitrarily differentiable relaxations can be constructed for the following operators:","category":"page"},{"location":"McCormick/operators/#","page":"Currently supported operators","title":"Currently supported operators","text":"[x] Inverse (inv)\n[x] Logarithms (log, log2, log10)\n[x] Exponential Functions (exp, exp2, exp10)\n[x] Square Root (sqrt)\n[x] Absolute Value (abs)","category":"page"},{"location":"McCormick/operators/#","page":"Currently supported operators","title":"Currently supported operators","text":"Both nonsmooth and Whitney-1 (once differentiable) relaxations are supported:","category":"page"},{"location":"McCormick/operators/#","page":"Currently supported operators","title":"Currently supported operators","text":"[x] Step Functions (step, sign)\n[x] Trignometric Functions (sin, cos, tan)\n[x] Inverse Trignometric Functions (asin, acos, atan)\n[x] Hyperbolic Functions (sinh, cosh, tanh)\n[x] Inverse Hyperbolic Functions (asinh, acosh, atanh)","category":"page"},{"location":"McCormick/operators/#**Bivariate-Operators:-McCormick-and-McCormick**-1","page":"Currently supported operators","title":"Bivariate Operators: McCormick & McCormick","text":"","category":"section"},{"location":"McCormick/operators/#","page":"Currently supported operators","title":"Currently supported operators","text":"The following bivariant operators are supported for two MC objects. Both nonsmooth and Whitney-1 (once differentiable) relaxations are supported.","category":"page"},{"location":"McCormick/operators/#","page":"Currently supported operators","title":"Currently supported operators","text":"[x] multiplication (*)\n[x] division (/)","category":"page"},{"location":"McCormick/operators/#","page":"Currently supported operators","title":"Currently supported operators","text":"Arbitrarily differentiable relaxations can be constructed for the following operators:","category":"page"},{"location":"McCormick/operators/#","page":"Currently supported operators","title":"Currently supported operators","text":"[x] addition (+)\n[x] subtraction (-)\n[x] minimization (min)\n[x] maximization (max)","category":"page"},{"location":"McCormick/operators/#**Bivariate-Operators:-McCormick-and-(Integer-or-Float)**-1","page":"Currently supported operators","title":"Bivariate Operators: McCormick & (Integer or Float)","text":"","category":"section"},{"location":"McCormick/operators/#","page":"Currently supported operators","title":"Currently supported operators","text":"Arbitrarily differentiable relaxations can be constructed for the following operators:","category":"page"},{"location":"McCormick/operators/#","page":"Currently supported operators","title":"Currently supported operators","text":"[x] addition (+)\n[x] subtraction (-)\n[x] multiplication (*)\n[x] division (/)\n[x] minimization (min)\n[x] maximization (max)\n[x] Exponentiation (pow, ^)","category":"page"},{"location":"ref/#**References**-1","page":"References","title":"References","text":"","category":"section"},{"location":"ref/#*Branch-and-Bound*-1","page":"References","title":"Branch and Bound","text":"","category":"section"},{"location":"ref/#","page":"References","title":"References","text":"Floudas, Christodoulos A. Deterministic global optimization: theory, methods and applications. Vol. 37. Springer Science & Business Media, 2013.\nHorst, Reiner, and Hoang Tuy. Global optimization: Deterministic approaches. Springer Science & Business Media, 2013.","category":"page"},{"location":"ref/#*Parametric-Interval-Techniques*-1","page":"References","title":"Parametric Interval Techniques","text":"","category":"section"},{"location":"ref/#","page":"References","title":"References","text":"E. R. Hansen and G. W. Walster. Global Optimization Using Interval Analysis. Marcel Dekker, New York, second edition, 2004.\nR. Krawczyk. Newton-algorithmen zur bestimmung con nullstellen mit fehler-schranken. Computing, 4:187–201, 1969.\nR. Krawczyk. Interval iterations for including a set of solutions. Computing, 32:13–31, 1984.\nC. Miranda. Un’osservatione su un teorema di brower. Boll. Un. Mat. Ital., 3:5–7, 1940.\nA. Neumaier. Interval Methods for Systems of Equations. Cambridge University Press, Cambridge, 1990.\nR. E. Moore. A test for existence of solutions to nonlinear systems. SIAM Journal on Numerical Analysis, 14(4):611–615, 1977.","category":"page"},{"location":"ref/#*Domain-Reduction*-1","page":"References","title":"Domain Reduction","text":"","category":"section"},{"location":"ref/#","page":"References","title":"References","text":"Benhamou, F., & Older, W.J. (1997). Applying interval arithmetic to real, integer, and boolean constraints. The Journal of Logic Programming, 32, 1–24.\nCaprara, A., & Locatelli, M. (2010). Global optimization problems and domain reduction strategies. Mathematical Programming, 125, 123–137.\nGleixner, A.M., Berthold, T., Müller, B., & Weltge, S. (2016). Three enhancements for optimization-based bound tightening. ZIB Report, 15–16.\nRyoo, H.S., & Sahinidis, N.V. (1996). A branch-and-reduce approach to global optimization. Journal of Global Optimization, 8, 107–139.\nSchichl, H., & Neumaier, A. (2005). Interval analysis on directed acyclic graphs for global optimization. Journal of Global Optimization, 33, 541–562.\nTawarmalani, M., & Sahinidis, N.V. (2005). A polyhedral branch-and-cut approach to global optimization. Mathematical Programming, 103, 225–249.\nVu, X., Schichl, H., & Sam-Haroud, D. (2009). Interval propagation and search on directed acyclic graphs for numerical constraint solving. Journal of Global Optimization, 45, 499–531.","category":"page"},{"location":"ref/#*Generalized-McCormick-Relaxations*-1","page":"References","title":"Generalized McCormick Relaxations","text":"","category":"section"},{"location":"ref/#","page":"References","title":"References","text":"Chachuat, B.: MC++: a toolkit for bounding factorable functions, v1.0. Retrieved 2 July 2014 https://projects.coin-or.org/MCpp (2014)\nA. Mitsos, B. Chachuat, and P. I. Barton. McCormick-based relaxations of algorithms. SIAM Journal on Optimization, 20(2):573–601, 2009.\nG. P. McCormick. Computability of global solutions to factorable nonconvex programs: Part I-Convex underestimating problems. Mathematical Programming, 10:147–175, 1976.\nG. P. McCormick. Nonlinear programming: Theory, Algorithms, and Applications. Wiley, New York, 1983.\nJ. K. Scott, M. D. Stuber, and P. I. Barton. Generalized McCormick relaxations. Journal of Global Optimization, 51(4):569–606, 2011.\nStuber, M.D., Scott, J.K., Barton, P.I.: Convex and concave relaxations of implicit functions. Optim. Methods Softw. 30(3), 424–460 (2015)\nA. Tsoukalas and A. Mitsos. Multivariate McCormick Relaxations. Journal of Global Optimization, 59:633–662, 2014.\nK.A. Khan, HAJ Watson, P.I. Barton. Differentiable McCormick relaxations. Journal of Global Optimization, 67(4):687-729 (2017).\nA., Wechsung JK Scott, HAJ Watson, and PI Barton. Reverse propagation of McCormick relaxations. Journal of Global Optimization 63(1):1-36 (2015).","category":"page"},{"location":"ref/#*Semi-Infinite-Programming*-1","page":"References","title":"Semi-Infinite Programming","text":"","category":"section"},{"location":"ref/#","page":"References","title":"References","text":"A. Mitsos. Global optimization of semi-infinite programs via restriction of the right-hand side. Optimization, 60(10-11):1291-1308, 2009.\nStuber, M.D. and Barton, P. I. Semi-Infinite Optimization With Implicit Functions. Industrial & Engineering Chemistry Research, 54:307-317, 2015.","category":"page"},{"location":"#","page":"Introduction","title":"Introduction","text":"(Image: full_Logo)","category":"page"},{"location":"#**EAGO-Easy-Advanced-Global-Optimization-in-Julia**-1","page":"Introduction","title":"EAGO - Easy Advanced Global Optimization in Julia","text":"","category":"section"},{"location":"#","page":"Introduction","title":"Introduction","text":"A flexible-framework for global and robust optimization in Julia","category":"page"},{"location":"#Authors-1","page":"Introduction","title":"Authors","text":"","category":"section"},{"location":"#","page":"Introduction","title":"Introduction","text":"Matthew Wilhelm, Department of Chemical and Biomolecular Engineering, University of Connecticut (UCONN)","category":"page"},{"location":"#Overview-1","page":"Introduction","title":"Overview","text":"","category":"section"},{"location":"#","page":"Introduction","title":"Introduction","text":"EAGO is a global and robust optimization platform based on McCormick relaxations. It contains the first widely accessible global optimization routine based on generalized McCormick relaxations. With the exception of calls to local solvers and linear algebra routines, EAGO is written entirely in native Julia. The solver is quite flexibly arranged so the end user can easily customize low-level routines.","category":"page"},{"location":"#Installing-EAGO-1","page":"Introduction","title":"Installing EAGO","text":"","category":"section"},{"location":"#","page":"Introduction","title":"Introduction","text":"EAGO is registered Julia package. It can be installed using the Julia package manager. From the Julia REPL, type ] to enter the Pkg REPL mode and run the following command","category":"page"},{"location":"#","page":"Introduction","title":"Introduction","text":"pkg> add EAGO","category":"page"},{"location":"#","page":"Introduction","title":"Introduction","text":"Currently, EAGO is tied to a 0.19 or greater version of JuMP. This allows a replication of some of the internal features shared by EAGO and JuMP's AD scheme aka generation of Wergert Tapes pass evaluators between JuMP and EAGO etc.","category":"page"},{"location":"#","page":"Introduction","title":"Introduction","text":"pkg> add JuMP","category":"page"},{"location":"#","page":"Introduction","title":"Introduction","text":"Once JuMP 0.19+ is registered EAGO will be updated to eliminate the need for this.","category":"page"},{"location":"#Examples-1","page":"Introduction","title":"Examples","text":"","category":"section"},{"location":"#","page":"Introduction","title":"Introduction","text":"A few examples are provided in the documentation website. More involved examples are provided at in the form of Jupyter Notebooks at EAGO-notebooks and can be run using IJulia. To add IJulia","category":"page"},{"location":"#","page":"Introduction","title":"Introduction","text":"pkg> add IJulia","category":"page"},{"location":"#","page":"Introduction","title":"Introduction","text":"Then launch the Jupyter notebook using the following command from the Julia terminal,","category":"page"},{"location":"#","page":"Introduction","title":"Introduction","text":"julia> using IJulia; notebook()","category":"page"},{"location":"#","page":"Introduction","title":"Introduction","text":"Then simply navigate to the example directory and run the example of most interest.","category":"page"}] -} diff --git a/docs/assets/arrow.svg b/docs/src/assets/arrow.svg similarity index 100% rename from docs/assets/arrow.svg rename to docs/src/assets/arrow.svg diff --git a/docs/assets/documenter.css b/docs/src/assets/documenter.css similarity index 100% rename from docs/assets/documenter.css rename to docs/src/assets/documenter.css diff --git a/docs/assets/documenter.js b/docs/src/assets/documenter.js similarity index 100% rename from docs/assets/documenter.js rename to docs/src/assets/documenter.js diff --git a/docs/assets/search.js b/docs/src/assets/search.js similarity index 100% rename from docs/assets/search.js rename to docs/src/assets/search.js