From 22576ea6af1ace9b41fb39e04e9960c4ec52d7f1 Mon Sep 17 00:00:00 2001 From: Simon Bowly Date: Mon, 26 Aug 2024 16:43:31 +1000 Subject: [PATCH 1/4] Add diet model notebook --- docs/source/examples/data/diet.xlsx | Bin 0 -> 10950 bytes docs/source/examples/diet.md | 84 ++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 docs/source/examples/data/diet.xlsx create mode 100644 docs/source/examples/diet.md diff --git a/docs/source/examples/data/diet.xlsx b/docs/source/examples/data/diet.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..033bacf9276e3ffbf13791d97a06c00086ca64c7 GIT binary patch literal 10950 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]) +``` From 5f6655f3c0d3734b706514143b54cf690658b1bb Mon Sep 17 00:00:00 2001 From: Simon Bowly Date: Mon, 26 Aug 2024 16:50:25 +1000 Subject: [PATCH 2/4] Add openpyxl dependency --- docs/requirements-examples.txt | 1 + docs/requirements.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/requirements-examples.txt b/docs/requirements-examples.txt index 9818ab0..fe7a804 100644 --- a/docs/requirements-examples.txt +++ b/docs/requirements-examples.txt @@ -3,6 +3,7 @@ ipykernel>=6.15 jupytext>=1.14 matplotlib>=3.5 nbconvert>=6.5 +openpyxl>=3.0 scikit-learn>=1.0 seaborn==0.13.2 gurobipy>=10.0 diff --git a/docs/requirements.txt b/docs/requirements.txt index 616c7e1..8dfe914 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -10,6 +10,7 @@ myst-parser==0.19.2 nbconvert==7.2.5 nbsphinx==0.8.9 numpydoc==1.6.0 +openpyxl==3.1.5 scikit-learn==1.5.0 seaborn==0.13.2 sphinx-copybutton==0.5.2 From 98f9ca7d1eb57941b419e688e30dadfb354129e8 Mon Sep 17 00:00:00 2001 From: Simon Bowly Date: Mon, 26 Aug 2024 17:06:38 +1000 Subject: [PATCH 3/4] Add heading and index --- docs/source/examples.rst | 1 + docs/source/examples/diet.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/docs/source/examples.rst b/docs/source/examples.rst index 834d415..ce693ba 100644 --- a/docs/source/examples.rst +++ b/docs/source/examples.rst @@ -14,6 +14,7 @@ the notebooks. .. toctree:: :maxdepth: 1 + examples/diet examples/projects examples/regression examples/unit-commitment diff --git a/docs/source/examples/diet.md b/docs/source/examples/diet.md index 84740a9..d555aa1 100644 --- a/docs/source/examples/diet.md +++ b/docs/source/examples/diet.md @@ -8,6 +8,8 @@ jupytext: jupytext_version: 1.14.1 --- +# The Stigler Diet Problem + ```{code-cell} import pandas as pd import gurobipy as gp From ffa6444eb5075ca54ea735695894de51364669f0 Mon Sep 17 00:00:00 2001 From: Simon Bowly Date: Mon, 26 Aug 2024 17:28:42 +1000 Subject: [PATCH 4/4] Drop nans --- docs/source/examples/data/diet.xlsx | Bin 10950 -> 10955 bytes docs/source/examples/diet.md | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/examples/data/diet.xlsx b/docs/source/examples/data/diet.xlsx index 033bacf9276e3ffbf13791d97a06c00086ca64c7..eb0add4cb18a25c533bb6e17321cf564c8f9200d 100644 GIT binary patch delta 2516 zcmZ8jc{CIX7at7SXKc@|QMQ@vWJbz1JZYFL&q!o16d9f@#Tz?gYnmBK_9cZe){uS4 zRz&vgF~$<5jOZbQ&(}ZiJKz1|o_p^7opaB*_jm5^_S(I-tD4~8^7cdqF<1eBGSUKv z1dgr_j&Sigk^TPY^E{6=k{wugwb}0V+wIz+^D@tIzFQ(`3|pRD)?}L-pg~ zl;Odi)h24TqJoI1Wjs?0q)RC%qz!2z8{oDL2~sc2Z3)-3m64JqBdfH-hU9d@<3D9( zqygT4#9ynJ6ZSAgVT2wi+??_|Qe$F7Mz z(Y6^pvlEn$j^F`UVN@F|tUTEJ;t{8l<%-8t(;wq1hJ#@}KYF9jy)4=Ao#8ZJ6KQPy z$HPly2}Rp_Gy-hS>Ie$78!8pPro1a|xU8}vbP@qNJkA1Bu6r;viaAmLyd9GKhI1HL zAyJ4|FoA%bR<)u7h)Q|7aP*#eUFfiiVN5c6<@Dc}CVro}3pQC#%LujtFBI9QDE%Y4 z7ClL=4uo5JpF`O(i(d}(yJA|iD__`Fv2Va4*o+rCyL%zr(Qh|_ZoC(UJdxUx$-l?& zyBz&2TT}k0Q8*v_34S;iFaW7G1i8>I)Ww!~QmJ^=95hCp6vwHIdn{*x-dQy;v3P~& zjUVyd@bBB|20Hf#DURP$kro^Np2xU>>leB#%?WIr9n8&a;5sV-vpreT<)*8HiaPj8 z%r_NCN+AhLh`?@UI61q|tv#<#jh13z1H1b2y}g~-IE_(#s`nnIrllf<*+2JEy*c&<~jK z8L+g|zXX<%=B#iHeydcf+c~hSbR+T)W9-%*t(QWZ6Py0|0`# zNW5TioQ7(spKmtF@o|3z6X=a26wSJmWMeeMKN>Odau^bv+FdCgJZtvi zmFlpo?j7L@AX1zvuerSe{g`(#MNAL0ym3|&Wc2|w>2ndYabzi|t$!6OB_BYL3wUOt z0jp@W9JVJk*AA)g>Jbbq|H{9#M*AeiE6;rFSk?B_S>{!9@>8w+(BV_(`Rkn03;$kS>DwDpmQSmus5lhe>>m&k3vBqg?-pkB(El#r z3#8zpZfV6=&1-y>Mw-iI{5PFS$r*$6mkZXoF(21e2$7HPvRVNVpW(!r*%nt&b`9HT z&x91b7EO$gcSuGDpqlo(w5_%cXCEjl5La4cVb8_I}1q)74E zp}7ql`(mjX$RnmORz?kp z=2S0_KVf#@iM@{3X>s_N9m+F85Qg}?a$3@gmpa6JX0dA_x0+nCzm) zuyrB?+a_Q{1XLX_+C{=KQHBxKa^7O}!;`}<=y?4tr%hTkJWwEClt;8uy2P%92z34y z83XUqEo)_Rfow5T+Zn96y)XAkjlcQUqJ_X9c9E>=X^UEqbJ{F8r<~%i#8SOCZ#}gn z{DEzLsq7Ml&Bu>?8YWaF9y8i5Uk;beI_oJC9##DUqnmU-n$^lF+2(8DZjD2{mhg=} zvTHhqQ1qMfbI~b#@k;0vM{X*$vr*8OX8z8``IGmS)9Hl5LByGUI2qJ1dv%RDx``dy zKQqUI<}|Mc_5pE!@`iL&$t14F3Wpm`=9PSAiS~G97#;XqpLGhZi9e+dC$mnnw#}ec z9A%-KJnCtESnspGy24o{_~+)8OGh5e`iD37uJfTLhLYG|nw?O1N48E+Q9r|bCY9v!2PGs=3_l4h5UVpqX=n%;mE?hHl{!i9PmpuXmV(_|M`gEN@(B; z7XUzFa!Dv#p;%Z|0Kxzc0Ou)@WC8z*3jiQ?n)%lhcu8Qe2x&!0MC#YIIaMI{Gye}_ zfKEXYBsD0E)kNqQ9t%}tks#$m4O#k0OVCR!vLq>(qU5jDvH$?ir$3s&zdcT)KS<6n ReU>Rw4(vQfsp5Z2{{g`jq8I=G delta 2494 zcmZ8jc{J1u8=kRckeR|{4Mk=cktQS=%TSim6k`cv7dIJQqM~26k+B;QMoCk+$+ed( z*%>2QXRKpru_Q~Dj4WUG{_*vl@BQOF?>WzN-hbZbJnzG>ZMQ8Q5`fUyY_oYD5Qs`) z3rGXcG-2Tc-#sulS6Z-F{Gm;R(x^qPZPggV{mjnA~otTxB7HL%>HtI^y-IIUDcH*+p{6*N7%av|I&It{`83Kf> zduX~3eBbPO;o#c~n)pi3Q#h4;ul@FLV{*5KAFOVbISR;ry-019!_FWc$3j3T{` z=QZozr()%>6Wig??7Vjnt8;ckREwvr#!o%T<8{DP z(!&G{U6t+Dc2{%qr&cz!zueJWA@m70{?<4TT92?yp74MEHKn@#NY(8kq0txrpD007_V=L< zB?`zjY^~eAcUY(s&m+$0{2U9UE0n8>daus~bS$;-xpdMF%~xfJCTOT&rpk6xR6_M&g2bwzGYW0b zR4(05;;j%o?QZ{kb|gNZK7xAmW&kDs#^o?+F;stf+*Mzspl`%8Eyjc)kY4)C<0Y!M zynbM~`w;|Z7+z_q-O!mDS7Yn~*WM?pGn2RYJVmx^XP0lVZUPzC$j4c3wJlKA3Et#1 zayX5R7Bm$zb5li@l}}AHPS*Y)p59LB!+Y<|&|zO%hrFk+PR${$3Hjb>)h z0!!2oRdwLD>v?Cc1wLn*orrw`c$@h9+_yDJNkfaaKy0llKUpEV)kU0HkuA@@oZ)|U z#zf@&m)>{&SRV~^TR;=iySlb##xeMTy)bgz_x?fam1*ArzZT}fRRc5RM|K}a;$yCp zCyA@3to)`A&pK|Xb@pzcAGDt`Q2Su$oTh+?TiF-(0B8V;0Hu{UI%5LK}>IqkLc?YYA(JTw%Y_l4h{ z$PryESWmT1jxdNfIR^kI+1U>E*SIKER-V#hs*qnbWwF*EjK9oRw#WO??MXe;;5&Sb zGM_#R%}%0vYMixo-0p%KqwM3zPhl;nCUvQJU_QV9r;JJOCMiQaRk{82>tw@{gOq6)5PULVUS2E@-Drf?!Qe z?9;D~n!AM~Mk`Eb1(M}_-o3F0JxS=c#U`ZRM(mCD%6U+k#N{`cU~;NEceP}QbVGS9 zT-3d*ccf9QStik!w5OAm?rL_``3$u4)8$qFpTgw|=@)2YyGzY{Cr)f5ws`CEn}0kM z2b9Fr>YDRIn)@NlfJ{0xUv+t@0F7XIW%YCgQM%zc{a8g|pViGP)sHf#2K2jkIYZ?K ziOu15oy%_zvm8VMq!ml-U_U2)*yADkDBrbVF_p#9-P1s|Lir1t@0*D6CSTVky2aR!oL-f)+ZXNAQ?kw3k1gCk%e<9>J|IkTA2?| z2jT-JlhF|TRW=>y(U+fz&3VbZqN0M_46Rl1h!V8uR=CSc2qvZNbGtm0=~Ix{zcZK@ zWSz?Ca!lsL#6_&41V4ttWnaD?7H~gIE-*yl5Ae2H80)0m4^b{U0%Hh=#iA1xsD^W~ zFi_+AUI|Z~K?504_#Pff#&S3Is+akf>W;qC9TpH>zLSI~^|G{aipqiCGc|&6NyOzX zqVy}pJ?X_4G}I2$Nq@t7m7h`%|AT@>!YEh~v5H`^Z=(DJDkR0S!siGY42)};k11aX zxfvICQaXUI!M~Mff1dMRedWYFJn>v8;qc*x6b;e8$PJBpzCjWF(RqSs9picD2p8>_ zp-D$(vf#y9(n5ogCh_05RA)|oZf~ZXI%TiXWEw$}`y3px!Dfkjbo|JBWNB;?OZ=nQ z-2nAXl$8LK%5f4>r0|?9SK#rKs3hy?0lC!3YyhyxYDOlKasa{b;c(G@P*yyv)eyu z_jt<~Bj~e1TkMH@fejTh+Jk*l1ovBFl-t(SK05UxU2267ad(L!kGscP(Wm6j`#+gT zA8`@Pro3L+F&F$u~XLPGYp$NWEO4f-!h1E~Qvq!5s%U^wMD x(h%HA`GV8~%TW|nRb>9X9vB32`IW{F{9gZSxP!t&{Y0`{sTf-q6+{3 diff --git a/docs/source/examples/diet.md b/docs/source/examples/diet.md index d555aa1..54280d5 100644 --- a/docs/source/examples/diet.md +++ b/docs/source/examples/diet.md @@ -67,9 +67,9 @@ gppd.add_constrs( gppd.add_constrs( model, - amounts, + amounts[limits["maximum"].notnull()], GRB.LESS_EQUAL, - limits["maximum"], + limits["maximum"].dropna(), ) ```