From 9d45d37e4b1c22c9b95fb5d8518418f0dff0eef5 Mon Sep 17 00:00:00 2001 From: Darakuu Date: Wed, 14 Feb 2024 18:36:26 +0100 Subject: [PATCH] Algoritmo Ungherese --- content/Algoritmo Ungherese.md | 17 +++++++++++++++++ .../Pasted image 20240214183550.png | Bin 0 -> 40931 bytes content/Problema dell'assegnamento.md | 14 +++++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 content/Attachments/Pasted image 20240214183550.png diff --git a/content/Algoritmo Ungherese.md b/content/Algoritmo Ungherese.md index 0357cea..d4d19d2 100644 --- a/content/Algoritmo Ungherese.md +++ b/content/Algoritmo Ungherese.md @@ -3,3 +3,20 @@ tags: - Ottimizzazione - Ottimizzazione/PLI --- +Opera sulla matrice dei costi $c_{ij}$ e trasforma la matrice dei costi in una serie di matrici equivalenti fino a determinare l'assegnamento di costo minimo che corrisponderà al ricoprimento degli zeri della matrice. + +## Operazioni + +1. Si sottrae ad ogni riga il suo elemento minimo: $c_{ij}=c_{ij}-\underset{j}min\ c_{ij}$ (generiamo zeri sulle righe) +2. Si sottrae ad ogni colonna il suo elemento minimo: $c_{ij}=c_{ij}-\underset{i}min\ c_{ij}$ (generiamo zeri su colonne) +3. Si cerca l'assegnamento di costo minimo, cercando il ricoprimento degli zeri della matrice. Se il numero di righe e colonne che ricoprono gli zeri è minore del numero di righe della matrice, l'assegnamento non è completo e si deve ridurre ancora la matrice. Altrimenti, si è trovato l'assegnamento completo di costo minimo +4. Si barrano le righe e le colonne che ricoprono gli zeri. Sia $\delta$ l'elemento minimo non barrato. Si aggiunge $\delta$ agli elementi barrati 2 volte (cioè l'incrocio tra riga e colonna) e si sottrae agli elementi non barrati. + +Si ripetono $3$ e $4$ fino a trovare l'assegnamento completo + +## Regola generale per trovare il ricoprimento minimo degli zeri + +- Si etichettano le righe lasciate fuori dall'assegnamento; +- Si etichettano le colonne che hanno degli zeri in corrispondenza delle righe etichettate; +- Si etichettano le righe abbinate alle colonne etichettate dall'assegnamento ottenuto; +- Si barrano le righe non etichettate e le colonne etichettate. diff --git a/content/Attachments/Pasted image 20240214183550.png b/content/Attachments/Pasted image 20240214183550.png new file mode 100644 index 0000000000000000000000000000000000000000..bc76abe9b480ae5c451922f426bee4eab7ab128d GIT binary patch literal 40931 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

Nm(j$wQ*fDInr-~`V ziPSU1{6NL-kpQxQy=gfla(7#XBXx6z66(q+({_IUJLg$`hf+0>WdQuiS;WtW}+`qX$uQ_H+!^5s5yq%`(;Wj|-fe?_)zGju_(Pdm=HJ-iL;yY z6>9N&?HRdmaJl`J`f$3nlGn*VD6V9Ry2)XUdW?`G@xI=A_=atdB#*HZ87l!I>Z`Dt z)Mkb6-&3mAE4<3@l=w~0g#K8sIvFDRIK0$OmHK_VjeEatqvZU`ZKUshrp4AR<6%2X z22w!7%z4O>0AxTc(Ce1s4d=iNR!)E%JL` zIG!5@Bc6y6o_4n3gHuAkraibI#Cx+Lqn;%MZkk`LZunOOKKY!d+%?;&=Dj-7+;Y21 zajjXXakwv?1}^KP$D*(qv(Je@kL!fOr8Cs{`Y=z8Vo^HB%CT^Nqco_sVn_I2 zTNE~1xV?F|t^5MbdtDn2ukqVHH+i{Cvzo<2dS@3ZiDgP9%NjVY&=)ynw;`CfCge@u7U?ZcY*B$swiCIHG-&g31@KG2jh zci4BGXD%d>y$A^v(>9tmnJcE)yq_%k1bIlS^aS2|!>w@x1h9oc`so_VIl}WD-w=Yc z(Nbd(s2cyGJDX*M`13~{_gVYe#H&gEq{+e{j1fhV4gclL{+Qatc7pq(^TyCTM9ROJ ztW?av%wfVy<_Y{T_W||hYs%qT>uB#xEK>`%*drs1jhmGI&!s9pW5~K=Puzq?qaXO_ z^GI-j>KS{Gw2&SgI2XU(3gwS_iv1lnue02Fh|CB*l?g*GlkQwea89W2-RHCM%e*?= zEpe%a`1C}FU&UPEp+6RcQzo7^#+9jK0|W2(kQ)e=zLWnBcsS5vAhJKMr*bv^PfJdv zY3c34h5t4!P$P(+U0M74;XwS=;Bfj2U$G)G;wj*BQ=LgMh3<@*G#Ijh zf?Negd8xJ`J}sIZes89u!6-vFSNoVV*IdRmIA3V8#H4xB;A<$qC=EM+mO0ue8PU*X+px4`=!78{Z#3j;(@9W_)O1wns!TczBf-ZTl>LRtO z`pxyNBc_$}!@7mhWli;Fk32=z?G}y%6`-g0y2=j5E_={~kwN>1S-Y z8$bT9tyRiYhIQ$Q3j zvi}>-fm0xq%>4K3Wl~(J9g+~vWv*vV+pwG3vryvq3$vl^BY?1auBSJsA$xcNrf zLU~#C5l|-1lx(I>)4TSI9jw=W=u*xeCKwsVC+PxE!rHq}>wYR$#8uNjPn!B*q|0vn z`P0`30J?Db?r{M-*ytV;zlY5h#b|TL(W(KI9!%{oM<}cDRg$wn8JI+RktS$n^JiP? zae(5e$m}epk*AB^le()P6yjA#F8v)dx45)gjxwzgB>gSdlY9 z1_O#JKKqbuFziNfQ{{V0jyTPF--yl5g)Vo16WJFWno=ejV^%|9L-W6CPgJL-YjJt3 zR9Xn93be74EZ`M+u(4ez`u4Y5kZ|a1@Pw{%_mXGKvC3h!vIs)&NW4+1V0BUjZPDq) zu5__0IsG!Pc9gY1^PTgMAYmTPvv=Ikh7*q2!jsLY2{VRR%1A`q5cnn&)s4*6Hf%y1 z3f@olG>tOxJuF_5;l5dd?Y&uH*ikIedRn+9_R^jAlGKoav00iG+{#lrmdv#{Y|hcm z;;44yz?^}(rUyL9=JJ0owYON?3$T1_V&ne(GE{s39v!inxh{JucQooswu~Z7k6#k; zau9g6pDnM?UUZ6g7d&Mx-`qk?TiiQY?(`e8fIc+VnVs4hJojoE)R}%FsIi}}sdfJ| zqhi?P$S@HLqQN2)NGp!|lsIAz;d&jJ{&N%`vFy7ZowgQSJa=3_cY(Kx4V-Tf%V)x$Z6MpN9vf4@;G*`2l ztvCprYRz|~qo{-f z&J2qO(lhOSS}M@k(d4cyY*25eM~>-;=zrcCUk>vqH2qScdfKXqJ-{a60S{-YTJ{e8 z6V0jbRoeIU)#yP|TyqutKZOrV6~-usfh$Z_pEQ8ldUJ2{V26zn+}b7l+8;!e7=+t@ zd~nme@R~Yedc@O_UN?7Gr2@@RAvPdW+m#<+^`$cm{ud%=W_E^l;E_=N>XW8FrGMc#^s{Vi5_(dw5d#8zfX0+D0h(Qnyj-L{TNv4vwKtYD)V2gA*F<*F66^_!(x zZjf`U1_zQF_@A=VdAnhct)O4KD*5S4CsBetBf0WXj_W8BJr&bw+4tU9hXhZ3c5_8( z11o3=_Ayy9X^-5u8S3!){vY_Q49P1DdH$L|1%>S>TjBviy!GSF#>1tY782q+RAdCq zqJmUnP-8&zbN!!xRjm{SADf`}YeiCJ&VEjY-~ZC37$)59T32Xbd72%j!C0EO4NmQ_ zOc9BKi(jUZhT%3{|MU2)7`jVHhgS%k3{2rSonZi^ySh1fXQhK(^pn+8-K(l;j`&WFW&u|09xM`*7onxR=6pzMP%JZRh+bJMIUhz%@9U;s!G{f zbP8<1!oPC>)|uP&Bd!M4t9}^D{vXgK)NF3@-v{BVOWK;5L`27uqvi$N7*xgN+kXM( zgx8Q)tuVY5t{fyd^|bBWpJ`n-D^C(6>Z!gwYCGv9g%jZGviLoV8nT03K4yA)dp8Fy zcbgw*w|Jn~*<1J8tS+*ZjxDs^{X>M0R)wV@=!s8p$Xd2fQBTO0cFfMcSR_|#lA*~8 zX)ZngJwW!m!lij^oM}(HD$}P0z^@8D%1OZQ=&^R}KcbccoT$H)-Ae1{)#}N3qNk*( zsXjoUJ>DD?-mND~T@%2vliy_)8yUIci=An1&hTYd(9)qHPa;!1}X_)lVbGN+p8Yv52e-ELjmWNm`}4)DXGb$Wn;d2 ziXYcn{cwaT^@0waM@hJkdlk5?AMjgWm-ULFBzqZY+-xGvLGPPmp9-shbsv4Ph*=jm zg>>wQ<|nTjh02}au`oOFn=uY~ywfpB0_yP>-7waKyau&1xC4t0ok}6=doR|XsxOpp zuD(hDjQ9iDjRc&MukCe5&y3qG1{`mN<2V>F-pp!d88gBrVpuh^X4a4=7Z)7GYPxh(i!6@@7{=8`%LrEIqE{3F7A5*C3$cyzPHf zT-{$?;z}$6pv_eM9Jve;9o|E=L$eRDC!|NRUHwLeS0(OgoSuL?`R8{y6}HF9t!<_7 z(e&m&DIsJ<3bb^Y{W5vdI@mwkDmh6gFIiOF*N6Ry9`@KnTN$>oz33fV!E%}+p6q%X z_L_pRU0S{#ca0L|pIyyYk-zsyCM3l`50qP1PA!}aO*9jz7mJdWr&cjy`Qe+?gh&fueV?&Y2B2}o&2H`$G9Is##jh2_@ zGRt}#eH=MkA8a9kX7K)OWZUd)cDMh=n#ZF9YCEJaeEQWvrVuc$^P0FKv>Pw|B|x?} zpFBacMim$E&5}5|pRN&)kBa@eBFB|X*u6{$h%X|YyzZm2_AB2->;7SEG<9db_D>fX zk6^9c2(}FuGCvC({=7~&D!!q7J-aO0179YpfN_74ub>vIi+P{e32biQo1-at=c%rk zHlazO9lIZEde(ARv#J$2SnT9Yj(bGG4)${SvxPl#w`gTAPJ618{1M>?vE4hWdcrH5 z47bc}Zld{G)dy8@loG04bQGiA*$J!pNptgNVEYVbz~D}s>O3~+Xsp!dLqDNrLT=36 zPMmnjMm!{R0(npFBTe=XK3&rDffBS!@*lyb12}$f?y=Jff}W2}bXZr+)M|%9;Qb$- zyA^KDS+u+|C;=kSqzUFbhdPHjvyKQRfPf;sLR>*2S7@+np|irv=}vb^WKJ3yF6*n+ zj|ND)Uf{za145ZP?~}H?KOkCk0>zHfE(Sh7hM21_y>#g(^5+}4CZ8u9I}tLs+(XL9 z3aWVlkuu3?mI3Pzkb};ZUaV3J#q2i~6(_6ie^{x4?m(Y{$>vDR+*&-WrvfBl(t!D3 z|HMxei72wH&WLn6&IQK&#V?bc$e0NSdENuIlryXy6gn~n{CO&=wiFHdGW$z)mQgOI z@>wMGM6iwj5G}=I9>{flzi8>5XS0XdbJ33@PW%flnNnQOX_M`G%rmRo!0od7$m?lt z^Ir88JBmILSpt~XD|U9#y!bKvy`7Mbib&9M%T<3BIj_Q7DB@l!(@?xs+^TuGr?ZkF z*7&=nY-K=TI$n5DQi6r+4!z1-1*Hh=U{1=48Fd6K(vORuo{NLxAcL1{Luv6@6zyVz zk$?G!1rt5zaz=mRE?TlXc*12U3@L>P)%RqOlg22?=OrogeqVu$zBySomq7c9rTvDR zf}J{%eA716Bjn z31a2ZxMQvk(<@Dm_Dd>xNN5WhD4;b+UkB>a^r>);1LHtLrWld)j=|u!Ju%DSrPbZq zcKWsx%O5`J-F8Xi8N7qz9N|PqjWF?LAFxVQ9NA*J;Iv8CsN_X*gQ@;bg-X0$k_%3P z)R$bPbFQ3&jdX#h>K!HSlgv$N{?BuC;Dg)xS)M}p``h~58(OKHZ3DQLcdz~Q(OyWm z2xn$Bb0GQgHG-?OBH@H-tWR>S%YBF&-lRa6vyrf9>rWNZjIrwJ(n!wE zwbWD!v)B?14#&4M9iHU{%6D0L5AB*d=$cOh@dPo9NT%wJS$N+Kac0$e!n>e&)8Lt3 zQ8sCFDGM=?6J~YdABHx=DSd4k!;G5CckYkVw?3&;s2kkF0%ip7CD2a1`?Ho2i+nRsxSwHGi5H!dclxiIm z9*jy~6)9jQ$+R*>eaS|{g$Le!bKPkp1M!kH{ROmagCqu$_1MBZbD_`cmVRXX$qB<{0=lwItV zI(Ze}?lulnHk!7D=mejp>d%@h8ZKHIDOo&5eoc8QY*byN^tzUF%?Z!0F9xHrCXC{} zT*L)w6E|96eAp%o4UOrrhi<$pOlaT}o(qkXWXIR7n-`x*{0ex2bti}vm#xSETfgz? zPa+fE$wg*sO@mnU0Ugw?z#(=fW;UWggpU9`#|ys_qzV+zw+7~?+rBd`fkMQ~$#3uz zUa%fNB6F_wA0(?+FjY92L9x`OE&FdI)~SE|%>4@^vF*P~2Q)1(*-nO> zmWeVz;eS%>o7*l1`_Ukz)qz}G7cxn;*2wc&Wvs+}F7cP!n;T{dfuqh6l3A0=>`5KS z0@~NCC8?&2`9M}`-M@` zvm%eW=kR$?$No53gM?CMFm=7mV^o+BS!PQS*UwWFcCs=DY+<4Wo~aL7vPEw`%w1)* z1p1D+z1eaShA2CU2PTb=!F`G_#Hrbzdma{cLcA}7^H~Xo- zc}y3DZ6vscBH*J1t)XR2-bDCs9muH42+O1yOD0ym6b~U32@Vvjq~MAZ5^8P3_Sgm+ zb@sJ=W0~JN)4{&*?k91h@eBSO8vuA&C0uz;)ENfGxUzU94Je>Jf-~Do-JxmRBd3qQ zZg41+85}b3_%7OUO3uhOIKSMVBj~Q53X^Wc{~2aOj4jf2S01xcOG$V?7GTo&MHZ#0 zdulIzrY35<6XI41TDQE*ha2Q&9*3tk`Vzv^viEN1X=A3-_3S)z1d<~%E@;0};JMS* zSm!_TE<@Zt3~l~%;jQa)F?DRG2PMelJ$sFbt)x!kC9sRj8$#PK($xZjFJ>*KeB;$xrAcT=-{2m8a- zdRWPz&W91lI5FdD)h(XVH98*p6tb+1r{ScTo$u}?LU|B<`eqXW?Iy0-G!< zM%uc=MR3t&)~Q`E0w3#yZT;~oEig2EY|lEE8YXt94w(drUk8sCJ=e5}c=^8G5 zGHe^DnppCq;yx(T032M87d4$6fQ_<4vv!jsYaXBz0Lt7?moB&4 z+?fhTkwrb7Rj5$GT73O)QfW!Q0jzLpzCVK5m8&CNaQTc0aD9=+t|N4{H}?NzjQaET zpTh~J*1xR!!l<=E>Vz+c-{&+q*K`k&yG8q;)CsVeLGw>|dr51*jx9J6FQif|3yfQ` z>xYw(-*Pc7F|IZ$FX+1Ue*fzOQ%}c*-(*9dZ#QwUz9uUe*{YE`EZ-9uzdP2g<~^Y; zVRKor>Z6qW%|$3;MD&QGA(QUrBc=ta*;aQtGW#Czvjf=$2c7w{oAQcVV2L1vv#!Py zZcUrrLK%HjW~EVVLB?pWr<6&I3`T_TI{uB88ceIjWsD>8AbI=d;7kc{;0os@^11 z!KriXuRa7%pz3H-Thk6tNwzx39W#sF6~V@0u1p~oV=Ady)=LOLZo2y(0Bw=aO{NhY zbu%wvQ-~Vwkmy{tV$|@6KTi1bCG;$@mkCYcy9H}B$;2+qD-xZB|4SGbf3}-~g)qZe z2dF5Mv?mqWR&2b#dUibOG-ffA5@6Z;bWfkib@}nhsTL*FE-LYycEX4LF@lkQw@7vw zf#v2dpm|8sp-GLyilr0M-T7|bd_{CuBxqg;r&pSh(>4jrCRu!oX-Y8IGAq5gUT8{lyBKuprKoHQcP~+bE>QFOnQ5x*jAXt8XMt z)wTz}?1>~}qL33}$$putPHnknIJ#w}Q zgjvf-XL3Tbv{8gmZj5_R3>2>Yarn}3PwMT4yyGam*szecR|JZ^wFe_gw3js=5|0DE zC}7ta?3$0hm5)KQBb>!m{>+#mXQt3@0!3O2c?QQYBx1X2<|GwuAukJ_!)ORM?px6v zUkPLWV!5Us#KOQw&^LV6o~Y_xxGZwS znnD2cR$j6?-6|B|huw&2vwQ}li+VC74yDYb4&fb0Z^tdgcUjae+nRvMW@1gYaRp;A zqcq!Tm2c6F+w%AkvYbPUNS+UmjyIVOC*$gV-CyC8B4JN%3mMcUxQbsqgnz)<6QtI@ zJFa8WKR++|-|{$pTr9*95UT;p>dP!D;~33+s9`70HAnG&eZJLGzc91MzzF&!OGJ`^ z_c^pQ*O!^)WrY24I5)1SvHGlajNjw*pRP5A=Uhley2#Epf}PUSyV~L7)(Y;lER~6z z`uYw`@cu~vBsC0QU^xADXGz@U&(FGmRep0YW($3>o08i!K=aG>u&_pYG9QSIC6~!s zezt_!T@>K5WrdIxHWv$zgD-8Pp1?s<_%oeomOAZzlApLJ1L|(l9(G?%FoKMxrhQZwo(xtJVk0Iz}$wG<35067khs#mmJ1 z(;>h{nFO1+%It(11}YX#>HynFcnuh$-#yhc@vK|IiA8IDD?|h!QRav^!aWH$9>Ny; zWCS-l|b5YqrVA7itv& zKb#J!{i)nTy1csgKC~1^H4~Wj$eewX1z4et4V?tvu>t6ayakBJ0Xs1Q(T`+db-S*P z^N`T0`{VHP5Sta~j^C2vLQ4BKoURL6jE&MM*8TdP)Wu=eals_=aOtvBE9k$Dhnh$+ zvf0vDO+?AO*&+!0^QB+wVI5TY&-XIw;9f7*<*OXlbY033ggrnV&&lbwVs-!#zm2+a zGHpHDk{EA+I*7JtVcaY|yT?xa=BRy=k_LhzF(l-;@wv6+JY#=~w%`& z16fpxl}&rCbp4~HRBUPO5He;Xen{G<(6DrW^y{Oa@-hmu3HS9@qeU9h6NScpHwnK5 zHrZfOMY-m6Zx$$CXqGDZF)z?SIB&k+zx&VER@Ye_1k1k>wcHjbY_^$WcNqjuY^nC_ zVyhho`{imMMD4XjP4Uf9oayz`ujRTtekIbL!o+732=|%TtJZDuN%>X; z&xbUYMz5NBqh_fu!`v%FJ5DQ!H}Cw>n8&d=1EoxU=GLqv1e`N&wRnAQz_of5Y+B!Q zH%STe(a^hKB(Lq)wM~|=L7LmyIFv`#olx*T?gZ-OuYJeS%M?vMd?M&!Q|rZg6;h#m z%S#z^RM%;S{~;oBv_J=o{*58$ZwV2!N1@%O$KoKOW@4bN0KE@Ugm2aI008j=3&2E~ zftRHtRvv-c?#q6|DdNF@T{vrMRGsgWX0+Hv*b4Oh#dZRfj#UTg!4_MH2xDVU+6z%v77Gm1v5XYwbE$7hS{ zje#T#y;WpUS*zI!t7UtE!y>q{7J2f@WXi60Pf;dw^N@`cU*#mWdz;3RJ)=NeRFG70 z3;;BNKd`ovV#+sKvfzZgG>APz%e7z>xyZQX3;I^-zQvi}pylU!4?owxLHA=Or0+FC z__piQ!`SAn;}_o`U{BEAn9|v^a_Z|`0zdPTD}OzhZKkEJ z*{STj-_Ii0XEt+O-lyctsHCw~W`CryZGZg#`f#G|>VueG6tRPRe;~@9wE`>B&F6pi zVJ@r!TvCbyH<2<6$e{cGBZp(2aF7u8Db-V-V)YOuN|8G zs#z9>CygcL8!b90j1LE^?>8N5^5XzNpBv;QL&@E*npgXtBa5c+^BinkjF_{`6<6BC z9QWLE;9Kab@4C*RK5zOTN=$zie0e};F;q($0Yn5n%;quc8^qjYRT4X2X{=}X-cYe} zh~4YcIU$H>vQ5ow!o1=QeQ|TvF@4xz`VBcB$(Bn_aUI7oWPYj7S^^b!|9#q%dp}dg zx>}oH<*XS}a6F(pggo0~rQvCdvFMOu;1!Jz#^u3iDDreiUy|4eW>qNkz9VmH@Q82< ztEMzdJo7)|JDhO{S`i_b!&4!)MAIgCEwl;Qh81$!G^7-rBm~eCDL2AeE=>t|i1JSq zgL806_~`%7IY4#usj2)Ia2!_4*woIU71V)b_^2f`p79?6m0p`sDxjs7lfCq`d{eNB z3fZ*)_J{8!IJ$=B^=9!#ny-J*wJ=t~eEVpTP8qj`pz7JQ9wl2cn+Ff8MUS;HLxKsI~#J0oY|~uw^~nglC890R+MecerckC0j34E!j?= ziYwq~(XOJV#93sZF)U4l(+nE&nLg8;e<~6hju}_U<$^z-%PldKjc@y2@7-JH#VQjK z53#d*|0PUv#Nxn;4*7OMrjyU9CJJ>(QYTgaTA`vfGafqi6L-NA0&|Z4H-Ba8dC_Hk zY4%$vB0Wq!zLTa(9^<3p0G#=GDy3s)F=@hzFQ4NtO)>x5Q|*GjS@p)7<5$%n5XQllwdg@3~`vxDLH_BkKfo8>$keXx?b8z+HoMl-zxC{g?b%CMg>$g8`c``8 z?9LPAa-kI!qEF$F3r?$d4R3=U$5>_x8?*eUth)k^b`uq^4o&`ND#_jtnA){_Q@A3D z8+VUL_-ykWk*>6B^kom0^6RJ1T}@Y-^5A4+!*_4fk?<3!T=uvP@b!@~|OF^R?ecMWxYy^RA z01-&I@ZnomW1~e6Mc)mt50GnEPqw17OLv_`B_x-7;t(3ZKUtn;{jA$db1fujIOK^t zG|i{FL+T)J{{43_ZYtI%NhUT+VlTl{R0>$6h{uXnMntk8Bo%Lg4@8Oo#kPMkG;?H4 z$bseu%wjeN)7$fcVQ#^baUd0dk+M#~YzC0u8|#vODwRsFERxuFBZDj6 z)E`knNm}dxh+h2U$HrgF`9^6{=z#n;!(8rZ{Er;!N&<85%hNbZiNzDdpE52NkDIR> z;5I^wII#F=bd3jmi-xkZ*_YalR-lny6856BasC>5vQZ<7?bUkn?Sug}%mqov#8UYd znGv(~V`Z~xFFfAsYwGV`-xB(d!YJ&pT)&-Q*|DZWRF84-uxJ9c8R;9^P|wViL_Tq| zvOr_{pJj=RE%Y^jMZPyDwx8=^A*-L5aWDMhg=)o3C+gc8BZaVtXO{?ei4UVX2-{ti zo$wPh?k)TiOtgXwqY^BtTnmXx%jX3ij(<-}KLtrVrnUgBJqBU*lZw3gYYSHQe{20b3em`}% zo%XL3C25kv(&h+90e!S^&H#?s$7&IeR4wjTnUIAGI_1MvcWrBDLUc$1v(wS zwp~HH@tB<9@E_oag|fE`DNUU%y)=Fh3@l!M>(J$82*EHbj#PZqK0 z`Fm`6_r;G{2x2|+JT@g{uuu(TmzDKUrhnXLs|>^CUfvG>#4Ihh$r>uJHeMuTaQjQK zwc<8I)6j4mpV)M!tkUA8ie#q4lFVmoIju;tU#{+Ns}T47U}aH5(ZH4M-#=L~=0Uv* zVuf_0kE1YKi`ln2m&$_9(6(U9$WiCB+1L#`7-yAW^0ZB4rJd)0so($}Y!E0|=`te? zL2mq)?>Wo*p*LC>`3-q_+o-|D3^;HCM73T0Rb10aw+-)voTh3%{08Oh2UV8|)7%^M zEZf-e#H1{4+^&FO~U(-lK7fD_=KJeseJc`zBf(M<51h)srtamg6Y z^Q*OqOUO^MWS2#FeE>%K?iiaf4vSh|rM$sJN&DnjtiO1?8Q$1w;OBEn@ZZ6LUfN%{ zhFmCc03yb@or4Oef9ji5RvhC*+3>=z)I6S-KsxHFp=}=M)#2MnV6Agx@&k?N2Eod_ z`nL?H>HhmPOZULWl&RB}+?eRzm@M-5ikEhBDX_>c+59tI8t}72+;>F?{enj#cPE&X#=-485${C#R#MH(VFq>P2bgIta= z*oKHOtQ3RXxQT_&PQu4M17S*S5j;6otU?ypzO%^~?-&mBg*SY(2>12$<{Ms-S{{sw z&VWyuqMW)8ocQWWO$6P-0ugJwBGlC~s$1ztRoeE%CTiY;j?)HJ6*2m37zshouY{vm zG_TQF5I(8XhLtV{)(%SVwZsV0w<&*UE7W_YdS4kAZi-s9n5wn3!d)!_bz`=i> z!BC=>3uO*PHqCqz8@Er)Bv28m>mr z`U;TU#W8$>sw+#~0VY_LU2tH*6M78ef0h1_pJ?Upa$H1G!5Q9LVBDCYU~fORe*#EX zxDIhsEh}xe8c)c$RpyoCVv5kL*+bX`a)eE1`E80DKkm2Rx;75EEyvm$O>QCk6_Z59 z>zTg!LF2s*vOCGE(d)xaatAFbBMHPz^*zqH%-9nCp8IUG78)E;oFm1}>Ro!8t{eleYffPyaj{y!I6IOtX%8^b1n!W@z3gVnhHnc+yKq%)L?+moCp zNIc8N;@Y@_7uB38TI>~KjJ10q(AJ1L9!`}Xdcq*Z7;`*w81jtMR?QyS;^7B+5ylcW z3}$Qwn~8ML9vG^)t8{nEvLLyVLtIoB5$q1N&Ju2U3J@N<)G@z5)w?`N;HPaio<@**Qyz$ENWKO8UT$xvBH7N4Q3MrPQSa z@SMih`qHU9q0Is0;hNTkbE0^^!=zNR2&+{?*TF{RlkO{qn#xYF)o+*3cBoJ z|2R}RQMGG;YixQC2!dv3Uz6B?3O>8j=zd9xivv^Sq$*7$x$obov9$Z#Xbec^7zGow z=EoO`cK7*PltMlk?sdd$LnQk>7L7b%!QTp(Ge{}j&>K03U})W9=!c3K#X0|s&;V?? z->zM$mY^jPSZaad0UP-qQc!OB*)Wn2Hqpw?(h&=*U-0jeWbUyZ6T<`m&4pjv7Qn%# zte82xb1a3mjDgWSn$2lf8MwEh5;a6{d{da;RiO0XbVAkR$-aTsJ+0d+Tm3hJPp!-% zz^(k3aG3b|WV-k<^WpG9*md!b1AC+_KU_iIt3^}Kwu_0xtTB_`qcy2}Om_T?HC zU-!GV>ls2j21hLK;C-RNKDFaO98!@_f3R|id>vR2xuDBw`s4L0S(BAa)ml@LYt>E8 z#?z6}`;^m;6I#x=|Sf7d?F zZkr-+-$7gskoQ}G#i!_z|GI;xm0n|&`6pch$U$9befcBpd52P~>sQ_a6McN=>yhb9 zXx&`COGdZ{A>v8$d*daI%ec?lqd<4c=*uF>=$tr$?6Sul2_$#{7r_}V6YTkceU zY4)u9R_QhM^lo-|tJdxsN2skz*%UG6yZzZPB8FC`@d~^NMRe%uc;~dz zx?Z$NR|2PsoOYSg)eMq6`Mby3w?8doFc;|@ZEuCkYmL^I9p@KQM$->vil%oA*j}c} zv=B~EIZ(6`fKa0s>=-d;U`}vJYOT5TUE3wdF7r$MHRv{^+PxgxGDQUN2HZC|{9msy z1TI?l%LAc)KHH?RCtXHvViqHKJrO1GTn3ekAVXjc8ZalmrGoVkVB>}p!0QT`zvgy4 zpH=Gpl(+b?J@NriVB$WgQM`kHqSp;Ec?Vsu^u`JuI{TAU;&863H4kS+oBNAeA>Ps0 zY9_XgL7I8;6;oxUojbPncq&UhNcSHgijLDf4sA?vw=JWMHYZm`{#!m{i*bm_{FC+z z!-EoNH_e+(*BaGs*GA}RTz7X#a+zB71G-k!Bua;mIdnX=_I*G3XPr$8d$pRO&#+kv z3JlCGp3jZ153~@UTZ(j5y)s0+(8p83^A@!1lHX?;2@8WGPf*E#;xj&;CH>XzC!y*R z_DRWzqVQo_b7J^`TL*rwPwN?X2frvuu3)>{sp*PiJM#AJF40TEb{(_IvY_=b$jy@x z>LCqh`-Lt6x+#x*obH>?iR5t%k3Mml6H_Ml_Md^^YdM?QzL8AWaKIH=bZ_JUQ*B;q zZSD3fp`pS^FU$sDgqz2BLC}yteU1f#bmV{^>NQy6Ez50-^*Hl-Ra`DecPfba$rNd$ z5rTKsAT!l47;3WCD7d5;1R&H!5TRO$IQRjDdy4NM zrc`ObmTvjLiX$wiL$Y%FFISLG&{!rAqRZU>nwTL2#7t?L$9y_9E8Tz+VOi`u#s2PRqnjC9QH*oiO zTAC_}S(8hX{dnC6moRpw*C|CG0FigFp_&pz3b!e9*B-Q*G+uLyynw}8Zni~$Q$aQc z?D2I4(ic!pYMvMOWFHH|^cefhXzkCKyC@K7%kph%hhoH7*89W7jQvpy@#WXsXvtW) ziA+>+ct?fZaK?qnBFUt#^hl9oH#=a?>1Eqs|iA2oV~7P_SiIE1y zg`*cEt0KcCxo3}%Oba~fLiO~*gGbkLq$BcHg^9>b0;hQ`h>+;Sw-;$rcmRN>vP#y| zK)7gnl2+U)?tMfjI?>g)j^Fp;s^hJKmixIeV_T{L0cIACn_ z-iOF-8e`8*rZ?aa2Z~%|F z)1*`Y^7@1?ojHWsT6QC}_U#VqgcNq9d1p(#QkZTh4E2z@Fhm{J z#VpPlQkhhF2Rrmk#G>Y&iSmoG%7*hXPT}*YW`h*82mi@wx1l*GgsmP8T#hxo!@3ep zQv+?pJJd{{C;B0rut!FIcSd#YZGV0|&dg{#q!`Zu_h0d$xcL51bv!qaeCV|i6A=aT z&-YR*@jN`nPNh}}8vtBkgI`hFe@Hjmak7yaLrHZ70{P8*o7s0L8Dug^js`_*5`bTc zEA9O?p2>eR&29yy;nk+$Ot(r7#gN#^lIE`b60C+q0jv#=GqqQKJAxEuD`{@(n$8SJ_Y%gH^5%u>}j3=P)>LUnW;Uc)Z0x}UfD1&oLA`t#t)4*u;eSB zYA`g3PWJmtKBrYJkNBO@_lp|tMBkw4&F31^*vy6kOv!SUXI{itai3#n(-!Ku zzA~^^lB~(lmU9cq(uQr(5E`WqCC9kz&V}6&iC1%8l@l0WOjrbyzs=`-B$`WOxXjev z_E`t|zlCzz#NP4DJbRR`3XKTNI_{N+d?D9GI3lclz+{3)ip1N{5Oj)*afu}Z-%HPh z0fbb1*U=qH#IO%|Hy{JSbRa~bR-q`gZRrx>nTV#bQ46zF1=#Opx;VQ6t))3hp;H+Y z6>n3dKD~}aUL|Y6HKmX6+8fz17w5DNiTbx zzRioyI_@K$zk+ic)8qP)@Z#v4=H$%@8Z?!-w!+=8$Cu;?3XLCa_mdafygkddb1nbu zHgcJE@pGNjch$Qdvf*()Fu9*5xl`-^Tqf>}H1c>=*}$Y&#ht(7qsBk}bq2+ky)^kZ zN#looaiw;%SbDQL-E>#?l4B;0!F%;z&t~`Sz*mxlYzSz+&UK$(w=dI&Hw_BxtJ|~D zD7ZcW&uxu`sAJ2Di5TtcD{at8kZ@kB z)o`^cGGZ=yIW}Ia>OumDD6;X05nX#jlU95irQF}{A5H8Zrz}cx_jtBHOcIjRrjgGv zFSKSJul9%WuwOTE3V%V%y3^_LQiux z0md=)gcY;Mib99x8|%v^78cH}wh?*_VO9pzBTlkQgEjR?zD6KoG>{LS&V#h&C7$d5 zDcJF`{V#%+yBsPWil{M}mUDM$poOY)zoh|}X~koM14g+VesC)hGv1Lkg3HAqgb663 zKh$QqVrBfJLOo3slrmEt-L3nDBV;QHi%F_W6qbSt|Qi)HC`8 z8O7%vkNteKpgC~%JZxRAv^Bi7p*GliFm75}!*j6o-q8B$b8|@bL}q|mqA5=+re(nJ zXMg;Z@xG&dmXkLzU#G=%C$-&VngOj#c(7YvCDhkE7V+Pw8_y5ZSg^=}uDZjjfEI?| z1T{*Z^QC9UD_IWx{U-*@!6zgDGP{yf#;UG7{D^IrT?4*RzO@b)0GasO2aycEzeC|NWQ;w}fbVO(06ZK&xuP;Sq<2$BP+oBM z`+6Tpk!>kb===|}lG#rOyEjV1;sfA9in6YseutCuZQ^_GPVQ0ds|Zs{BOM2jnm*`eaOluFI{3hSS_ z+ERA~NF+Jv=g=U>}7%nJXaqCydhbwHu?=<_W>mAjA4x)V)VxtuNus<)A<=z44{i|LN*T65=nZ1!y zl`sSfhbGD0B2lGi#Y+NnD{E zqZzT6H+?I{Y+rLhc8y$ll}*z?l48m!$=O@4VQBXucOVwAzSX(bmE(MKY5E^46P~#FCZ*eRfTIq1AMC zWZ*W$AD|ywr=(9{fWta{HR@I#=fW!ao1+Mo^e&sAAA@q<_l@5HSigTKNyNSv3wqgc zhh{Ozh=VBx8z=>aS`I_E>YI9|K=_p*tK#BKsD^>3=8a0Q>aSDn#k+z8I(15}Jx6nw zEx$-jn~%z)ix2|^f9rKF78!-5rv?v&-&Y* z@T3DO9Cs|Vu>FtV$pJSN2vTrOBwp7Tfm};`e?nv%vju1fLKZSGhFB@6{o&^cJzXNT z4N?S3_Jm37p~ZkrACN5z@wG;4g+=*-$GjEsbeV$PJ<5i-pEnn&sM9)z?r-0CF-*{D zP&|tF7e5{8+Ofr<1=j`IMbpK2&QxBaFIWS;V)DWK-+v?1BOY7PM(O`hdwp-_Lxs5o zy#Y56dY;vlA(u)>t1nmA0#&HOiKLcoLG!H6Fysmaj_TKh+U7o4ZhKv`57;eKbr@GH zPRy}r@QiR^jI#40YjL4KoTI1Yk8e`OQklomiqwOf?6nUidW z20tIp28oGUn_OFkY3$@392sly?x7Cn1c^Jx3DwK36|x{oI+@DOkJjg8_z5GTdj5Kq zGXNTiU4Ev!`pcxK!dRl=k>C1_FfCIE^7SL zQ<{EgkrSme!zcuypQ>L|8s()nq{b*t5m$J^;P>X91KwBZ_U%~W>|hW{82f29s0`pJ z)H@o)s@tEe|8f}zMz%g@&zL!9H`_cbCo^iB`%7M|G!MSDgN%!g^4%hHeab*Teq z_L@;mOe=#kkrEu0F$OW+MbFo4moRvHjNih>2q6)f%(Uq#RneRzsvOkB=XT_rR&OUe zaTvOOk#fWsbAN7__XBBCSmfx4<$AR(PnDFoxJVU3&)AX{MR)A(Il^Qz-yLfqQ;#cL zTb7U7Bra}M;B(nG^{wheMTSpmsL5iz?lrR+IWB~`bq8E@vK#^PvbRHA>!C0gs!`4E zQ9XfH_v;`{80y@^w3%$L%k)2nMD!OZ&?6buEra3bLA zbLuaaI~+92k+bm}dcDjL*rxn6;K%)g-bBf?E9VkLXIaT~n&|q`_a8sXaR^f=`KQWp%(t zXsxvj1o8Q6pD(L~fqahO$le3{NV7Kx);uyA@2CriRU8S7F0ls_J~XV%P_5@F_Oke* z0df_V{JY;8Z$Anq=n%PBXE1Wi+*^bgY;rhNhj~boHKJOl7n2Qq1v`Nbv1{s(Z1qw9 zBx8Gvzf~s4FIS+qp{%ocPzH(5)de3}w2A<&aC(>pC%?~K1N)n@lJO~`^{73-RTTZe zo@hiB5OJg%z=rMa4hjLFM>B@uoihS^Tj>1^Ga%6`wiM ztfo8&=~AnzNFqiIC-Wr3*Xqzawz`n1y)QZ`js=jQ_ye>U-Sb7zUuLZnr+KQ{ zlR3rP$)*DI-Gc-a&R=c6M}wuWd=<$pN>exAT!AF`}pDp@E=cOE_1?r z+SmyVYXyMrr9fx-CjxF{K1MbA32jLZumeKIa>3v}R!>1x$Ke?TXUUke*!i zcYg_v`@&ES4X#LkJf|{FSJ1fHmvDr<%y_f^{eW5$O(DDEC z>;R2?W~%f$KL3KE9Dq>$IUNRYi$cp6RoLDjPoc$Kweg$(k7zn1ckg8!f}w|qybNOp zhICb_360%gc)gEnCal(cHnN}3%u+Ilh|S5`d^Oanx9@@@ zLH@o9RpDtYK9UD$1ZjUGiX60vBLd+#U^{8X%Sq1d^C+b}0NJY7G9$-^hd(sOO?GtM zZ->lCi@4Y`Y}{23c?O6z9XH{5nhs+n08_=Vf1J~VM=^BqAayKP?WS@iFht~H(X7U1 z2b~WPtQx%a5OqV<9TlfJ^x~hTSGMg1U90|=1C^QQ3WxQi>-n0=1eWzlByF1_UG-}I z9_LqExekq6I$?uZPN+esuFQ0A;$~)sj3oKX8$0PJ8NA%eve#cB>Afpp05+aXY43l_ zGFnY`LT+!U!n|(|jVSd%nEAXZQwlrs>#GH5E)iJPGjOa`W*MQ1M8kmq5GDUU)#v@6 zStt{K8=}^2Upir(Jsc~FccC`j{B3~=i4zmGmq#~3Vo7}5{Zr;r`dGq+Py&<5NGXk! z8NT7&kT~2eX?@b*t-PKm-$^*>8`VG8OdytWaGkM~)zttS+tpT)YVJql z)lRFF$ky{8e}$}l)B9>?FSqVHGhf>aKqiMw`i6hms=r^&Q=QLOCAAyjr{Q)53wAlw zeQRYefYAfU!34Q%!7Xz#HG z;fTY@qp_OWMO+_(=EwI#(Z)gxSyxPz*o*PItx(02x`7YOzc9Y7>Yt-DiDwM3A$(aw zZniV$%S+U6ZxZgM;~4(T)r>h`k_o=M8u!6!5vv_Dj~)iCd5HV13qSwxQDB^1MIPk~ zCx2Iz(>#zpW;*A*v7l*{UtCT8ADu7RwS>ET^d5kO&#F$`%}hwymo6dU@|>hG{=!ia zX^IZ9AQ6R+hx%K*h}6kyyQ_0H8eKe@*FqVzMN7i}OATb4)T~wIWYjSaye|(b^j`S} zwOu=*#HiiK0^L`;Yycmq{~3=gH$#e}sCZoae_nu9O5t?X7}r{;fwSOmfxFt1>pU4* zg%-muvP$c$8X!9@A1IXqr@japM|Baz7rj?n7eb(Qm=WFS(jOOyqk{=y6alb+1!RuI z(bR=5rLc> zZUt4du}c}xHf9W|!N5o(mQr&tX?2cPIcn%#{z7!scT`ArgWa4oDDa*IgSY-Qe!k$- zfRX}%9&M*jG*KtbENJ|tEQgVwV2g%D-rqvj;uf+kC0$Z$RjV;01jI#$H<`XtZyI|k z<$<(j0Q(B(`u1JC3=^v=9srwz+SsqQSy6cc=381qG8({Z_UVj)kT`grP@SCLg5W>W*G@S#t93e}@q$OmLrs^bOV^~HK{b_I>>K?obxl@UW z!018p>m%c1cy?Sd1rw`%gZW-NGaSP% z=d3Fik2v^^kUR3X!{9elv5jUTamnKN%Q$g_7W(|y6{u#^SkYi?nyVN-K<#0t=Od@B zzPX;BrYR;QejuB*R_>o#op}ZgC7EL<;o(g#J?bd>6t}endqDtbog&|+d21jmXm#+P z_z~&``>o1ClpS-vT$RBdSQB=loH!$?R*8O2?MaCDLVhn3SaDs9AjPH+5wQri?-YvQ zQ_n~TyCmS!e6=`Bm&-ad6GX%*qp+j2kv-6?ZTe!gnxsT8-(PfeB259&gXVXRwLB?a~_Vg>v7977{4!(QZrQ9a|0?sS;BS0)|3qw%&Da?F zDmR5y>IIm+cN}phc4RI7kHeh52WbpE0jU(DzFAT{@Nn@q*_Y|IWYd5>Z)6F8iCl?b zmFq6qKOy=H#V?Ej88x8%?@C?4=wTTe7XZh4SrNbVIq+!rZq?Z0q$hoj3@jtn2ru~-;@OX4)aS}do-iYb162oB3el+cgumJEub z*;U)9eQCAvGOFe=9toIBWQQRoUT;(!&kFPmI@qG%Y>+wA)D={=t0VUQLKJr%b zt=sZxDN2(tyZ7q~y2WXX|tf;X^5NdBhu&mejo}@b=VFF%} zWIA?-^S{HRMNzQ{o1_>BD5auuF(LBfQs6`o83elb=Hi*iCrk+xYP1*3TLZ(*&fFE9 zh`SaDF+b&YIPGq@3o6$d%oNIJv=*B}*s^XdA-KM6WO^(ZNSNM$-UFo)K=1}Goi6!! zSFitg48yzTie0SSLEak*6E;HYv!$p106Pyp>=S}Y;p&dTY9KYG`S#9>AAq=| zR>{~m)XryXdTWhBQuyq)l-$8T9UexhJ7z!|Z|NG5e&YoboDqDO$L|LHioZJ&-tQ47n|pa zFyo>GP|s(R+i8TOKqVdSM#Kr^r{eNU=R$1r@#puMX3P`)O*KFWDUDSQb{owdu-y8r zFUzOSz$O*LT1I*hx0XXz7((8go2;|wnlJ~fy^XMp9isJB%6WDwE3nn;x9id&PW@Go zm~_rjt%9Gyq%+j|;Kc-Lr&#UULo(tku>d?1hsSCQ)93?aHc&>Rdgeu0gtnDrw=`zM2?Fkk5uJH~f*!R;!mb_0 znpjKlU|j0ABSW!H4gl+0yWj|Hm6$<*%6wRJ z(@6tESljl}Ez0@N%+$(j5#7I|0=KoM4O~w2{e0a{LR3wlP4?Q`gnNdtFKg=T3?1oJ z#4VjbxC-Ev7DZce@-qUaTdh2p@r&+ACZdW#NvWKDl>M$*LhwL*0wmcHxhO8bELubo zK&k2yjvU2auToQ$TQCY%%M|uOloP^ZT2kx$hM%i6lk-~#$#8MNufG{ zad_0K_NQ=0Yjte^Qq}bdE9h<(@-jZ+U;rwRfzOzYxq;VV;JLM|4l`Ts$3zg3oVmSh zWU6kXpgZ~KLV^e#rlv5mY3fl;+i|A5zn;dhr_OAgbC35+@)1BkBt)U&e0dE7uLbV5 zS;?9|vK%hAI_yWjgSdVN0U#PK2uvyUwYU~|XK@;+qL7jV+9N6P6MYv8duY<`iE4DI z6;X24Qo=ZFz!h}K=ZrWS4-D!}#pHws;srslend-|?qV&}b}5XNl)Xdf{(|ufZcoOh zg)!lI-oEsC!~hrn zu3XtFO9zfa+QTm~k88O{aN?vzw%nL?1H6(KdcOlniUJ;~sU9G!Q~9@ZuvFb2y3woP zgej~hyuKkM4uxlH!2Z8y#j7a2z^gJ4p;ilqi?gZNYd<*RtNrAVUjv8KiG+9#>KX*1 zqR~iX?t;D?ts?OXfXw&zoHTtyN@XH*3L_gsB{3;7vS8-OoOO_&GK@-&uU_yYom;*e z-TX0gT!lxDZ8>BDTSWrDD!b9V%XL~eD3DyOh?tUA!OO@uw%YwH-jspcN({)Bgu5H* z5WnetTTPO+QgkK7-nr?`9Ec|E`+QYstwC=!aC-WO&5fLO6&S~~_Zm7-fhkhkY&%># zp=Fh52Jl&+h@X3=cz{j<$$Jv~6Vz6sW~}HCvRJhLLY%|f8wAtCGSOths%T?vO75n( zGLiL)@^vT=e=UT7xHjTOgt9ur)IOvsXpVy02p6Fu&J)e~k5h7CcTi(o|luh zQxi$ras=j%nSqLa@d)>!g`?j(Lu#p^f1ti)(e7`jxUzs$n`xo^l!2u4E zk)gE@^kC=4PuOF7z1uWuTMRJ32?A93+1L_U9hTkI9rLruF%U`%bdGR!k@AiFwTZ z$BK{ujb1w8QK!6!B@zm(uz<8xr7ANZbcGy*YFmW{*Hk|!)b)2oCwxU$mDYL$_YQT` zbJWuDRPs6jF4aNgNhp1~=BQ?`J@oZnWDdEROu6VTb58$88dPJT7i($Xi;C_|ggMN|1j6ZD%M|X$BG@ z5qYRrR~7%y*UED*f`m;;og-}1Mr$D}3@C-}*RZ?GIqGv&zVquH8NDOsik)JZB;?MI z)oxI#Z?|qR-?X=AKP`5E2@wDAAl5Fu^WE0nwv%1SC5cGfG=wBana|=lukXe8$=>Kb zrOMGlturY-QaUl!GyZxJ@&{EL)GKzr!F*#qqP-=R@b);!$^?C^~fEW)Sp zf!XVo{sj2q(6Y~0KZT@AC@Nll4k2y)*Gq2FU`~mOl!CD=WFiR{X`Vq;h=-8@Tg6!Y zBaqp@Q$}Sv+xH-dCi7Q*;@Os7+zhpak>!Fxw&*$n0X`15^0p*t(2~pe0jPt6eNBo9 z92xdTBoUbq{lo54x4S|%eR=iMw`(5d5-A+Lv5HwnEPXMKp22S6c457-ePTgMg+3p_ zZj)|ZNY6Gu!F)FMoK_Ci#-6(M4vmMjVqH_4GAm<2?rLQQ^%-E zJas)o6W>?R;jrP}M2 ztbzqK9Z8PX^%Ob~lslPgl4R~JssHg_PPY%jvwsKS*{d~{Zdd0o5-dP-4zga`XqK;! zM0muevFSsm_sgu~zPUoLNcVcsdtsw-%(V$s1b^k_)|~RQV?VDJi&?U@u0~g0`&|!O z=VF)HgMf~*;mNzEHaV5&1MUn1-6~Oflpx76V~TgVMt9eO-GW$jDTrRPXh-T29x++c z`eaWh*pW@BUekrSTtRbBaMh_Z)+;;A`p;nCY~bFQ#+lXjeLX>*HF4u#lgenHd%e~1 zl(Za6vdD5w(hrE>;_x0&`PSUhH2tCJ@#aCUv-wtTKFP{2vINnj=(9e~bk!UI681+> z`wqk(Qr)$0Gd};aXTi)ZW48)ITBBQ+|3VjQN{P(11tOf()kIlFkT;;^pfpvo?ID+E zk@zeMw0^!IY}+$3kUVFS&vn#IhbztHn$FsT4dmd{rx@J!0ui<%qjK8EEM@lhZnpEh zo<2c2U*m(IrvpRszR&aNCG@z0(bcz4pQCKp^8>h%V5WQ|GFxt1?UyEF^${%&M)47Ubk?P|j+!>s_e)6&@$!K;W!{(RUMS7}ND1$yk$Zq~eN6t#@F28(e|$doEO^CQ(s?cNP|xkb3gQeG>FIgM4Kwo#9z|gaP$?& zDnrfQsMdT3m%Bx?mW5{|In?&|Jy)EH%_CI~*z3Zm^R8Y`#z&Q}O>~@i{;cr^?r-oD zKO#R!;kqy|4C@|FZ=hPU-MTUzPxvOazYcpnyz1M4;)6~Zg$;hPiqZp&<-f`-B#zSN zV+A?9SS&EZkvrOv!Pss}@tM$!lv0;(#6fjm7m)m4YEk8xZnI9CU5i-( z;1sK^ed5ry_SucOan#Zd_|vJ@(-3|YRz^DF_7+@11=GGTt$)9vs#I81#lxfLgo%79 z=IZ2KUgv5?Q3L_ovdPEN08_ zt;FX2N@aHs2i@baEGZHEt|mYYks5KI{>@;Gt^zOPxffaS!9S`_3z=KwBOT;WuJ)6@Z~G)z3mwzHyp}jqTw)_QS6=0cMko|36)hq0XU1c0dx%BedIpcb z;w)-Oe(h#;!?^I(wFTPNzI{GSL5-B}P3-3kV$)TWlK0M;=iwqk;{*i-`Qzk!ED-=iHLkSbM-ke8COsKOen z`WfSW&f_#Cu<1P|;AFq$PBH@G|d+h z$u3W*&Mmey;1kQ>$MaRvkXmjteY!XDv>*XGb${^w8f?z-Z@-cMHJBSNk?+I?w?ZHb zsQ;`;dQpFzq0pUpPt0a$PlV<*hBLBtAivFDHDP}P0Le{CGVQfJNc}ft1=!rCjwOKX zs6E&t_EWJQNS=)D1eba`>H)>Y@Vb0~|dI(Dz#;lxnraS+5VQSmL z@vu533#s)wLyYbU)@L<8iU0H9&O@J&tN6>gmvGlCHy7rHb+Z=1oLR4+cRlZfM`jg* z*%u8MavXoGqoxZqWNb6_fdz3L!T5|2#MqO~_ERmbd487A;R(1|{AF;lT>YzVI;MQj z`EYBJ^!2-0*$*z~sxzKFq4>y23OqMxucKwvm)5Oy z2{5iZNl-b2TO#qOD)}p+X^vpE*o`}fGs(B4QtCjLMB%sEA%xIj!3}hMuJbyrdZ%%T zqKTHK$kpnwSmw&ywqiiUSdT zr+W{FBgKpGm;c03sEvvU^M`$rBb-^Ch)>F8v3h}X9s9sGrodB!**Gk}%l3+``s%SmUgTu%R^oK4a*yS@ zIY{sY`0*5GjqG>c@_uKV>#PhrArex?W5H@?b5;8WV5WmLs9U5Jee@XId>J}JSA#bp zbn2?^{Hqda3>8)uQp#ZQO0-l2X$y8yw^LEhQMsc3ewM8SCg%E=Wrr*8Ldz7HVz?Y{ z>9rE^No1{VpH4?F&IGNS_CHA1CU@SX2@g(1?%0pyaGiR`DVFN7+@!p^g4=CAQEzAU zpQ?Bw!O_GT&Z{z@5?U1>PFW9C)iH=}Zz=5-p7P#DjgB^9?-H3BcszmY>=g$3Q+1|< zvV94u^RCWsZI5v+TU6(~nVIm`$G-3gEL#@ zhIZ)-&lho?&$$;Rbk1(2@JmAeE8y8$msGR0W(k{Ft{{s}&h4vAw}@!bvevOwMghTv z3EffRrztm-^8V{XpQ_pBL*T%*@w48_$EI-p{hV5G9%(lR=Ig2jaADRa@W@I+p(f zsL6tg&B3sY3gC4GDs2@=((I{pDIXpbLgGsId4Cy%ZhW2TO)`?|BYK`-21Q<-M|v4A z)bVrHt@G78hI#ViuVQNH$q7b~4PSV$2w-Yl{g8a=Hq4!a$bIZq6eQ{7VU$8gLb$i- zmirBVq$hix@-JLB4ofmIK~x}}_X%4LF$b6R+~!g^)Y;q;jXVDs+zE=9`bY2<-k=Nz z;FByDeXAC%DdG6@GPmCH6W_TONURmLFC7B1n7dwPTn^ZfOB>(lgE0iohy^948K@b+ z-?lmcF#T*m?Y#7*=?mhTq83G0Q4xEQGpuOhA`$!O`%9S3NOxdjqu!FQ`y`*5jp3T; z(I%_W-Qy|kTxFQzeikg-_)Ak?YC4o1%nL0XJI$qzk`FbzUX2MBW2uN7?Pbt5zHdVG zIKTze6?x!(t)!zz-FonIfO8<}MGqhE4V27bEQ^p>>80G!(P)h+Urf7mJW-X!)nzdp z;Lv%g)4+vLL`ijDe)5ioBDLK^S!pnv_V|4v#Z-E}kx!i1+LV#=8mTtrtvjuRY>Qk{ zv@&EgJ0OD1?9-51wF=XTXY$mlI=ClpgPcknGXkc|4@e8Yg&CWGxuCPh=9Fo``*M+= z*7UPLnT-l>*g3Q*tRV^?VRIE!w+e-pz3`3uYetl=CuHR<7jQlt%fkV5b^zA#y7;q% zN%!%1WF8QR;`_qTsbTX|DH&66XSOL%CkqbPI!+3Lw1|EW(zQ9LnwB1nw#%S9m0e4n z`A6ZN%kG~&CbRUEp-NK}N&JOJs!sM+ZN(uLhB6b(C&P`|wy(O?`OrI4(Pt|v zOc$>4{T87yeV~FD65c|ff&;=`+D~`YZ<}$mJ zxKo`Ns;flC+p@?Xxu6fm$k+e9g6^J@Ok??qDGJ7V_9!`up0d}>|AW`#C( z-rcBm-mMN9JetcTG3t5>0HbB@xbg>2Y-Eax))l6NsqAZQ5cGZ>pAms5a=YAGdKqp! z!f|`^8loE%EE?5%sT?hd`9kD4#dyJvy}L0YBq7i4ENiM{vMGK{1Ca=u?J8#%Fh?LC zdW7!-s$D?~KxIn&n1FCl$MJ9wVBp*ta>K=FfzuWLehSgE*vL(SRLvKR&6_I#M~#Q_b?<89)& z=!WujZ+6D*V?CqLR3^*hYo!F#hj(iZq=nJfZc@f^paQb(_C@lz;NcE-2rgPC!I%>u zpf*<@2~rnnrXNlHejI2w*26Tc69XQ?cJ@M`S}!f8RT*mmRRY2N=i>>YBn=5bq0A0^pbuK;Qx zO`lkzhtX*YIJ&A2i*I_a*4_$BHJbF}*b`PPgd(2;UtY(`^gKCpjTWbf94A*lt6wI( z%^JY==Pm#M5*sNo5mo0iT^x?smQ3(;aGv8Md+Z(9HgAnUhCa;1Vru`@E0F?JM72U^ z4tD}3e{LnmqF$xEKoa+5XJGl5ij-Y66t)tFW)6EeJJbFZ0j~Iz;G^zp zw_T1Sw`r7t5?CO2ntY@0N4|+twX!4=i`~ig$q}#6OOjKLW6n?YMyDcCWZUSS;)u@J zYf&?eLz-Ije51Z{3y;}h8-AS6U;|K@OnRW2q*=+yMS*i6O)=eC!TXtu zM${U4wa$~laKYH?wCx)KueN<=dP4n3@TZ#o`1yk!I7s_MBHwWpV0$5(%pv45w!cl? z{he0}6isyDvh~UFc_|BDr3`@Uay5nHle5i?xDNPgF~vBwS0sBD1rK56GuV2HQ> zG9btCw}^U^&z1u6;45=q>x4)7;8Do6FihTlwE-vh#ukn)ljy4keGg>1>fhxY1RV``?Ry+p8L3ZKsCQa3J&>Gm#1&mN)7KqOhOg zgeIhvMxY8)ll1ss@Sfj>NYH+v_B%0n>cz`}(bwlK+v;@9a7bSX$jSGP(#*2U2ILZu zO$AiH3M4X{LDH(!_y@P;nhgJ#GVB~LlDdI?j!X#9LAFh1QG4WA7M0*F5b%5)jh?*3 z8JZ2Fix4MC-OpVn7f_s8o_JI)nPm<~E?$S-H&>)-JOv(}nk=Um!7n%mP(W0oan0s{ z+>!E2QlF)4!Azcor;3Vo@73FkaX*F&b;8-s?12-^aHKDp%SS82E^<7_reI;(HMb)X zGR6~F?`kM|;}}fQ5hROuP%|kgb{=<*y(brk1Hd#VuvoPAIzYiPJhg*ZW1wiiojgq5 zIye}IGz=ncZWl64#NbK_@}GOuqBI&?cDLxtpQ%)~84cj{ppl%}1)cQ%e~+e#GRf8H zqF#C~pCjGB4zdV?b^5TmY#5^$5qc+BByXZeLhMq%$>dA9vm^$Csd*Bs34U5LY>1%} zxu~z5oSb;5o-9;_$m04IAhtd24ImGhiocTf0Ds`W>r`pC#C3m6hlodE6&-l|zp}17 z9Io(LE0NVj5N-8D@1pD~i5{JZP7nkktWKg!tP(^Bq7%Jr)Yv6j^tL+DTdZCZ7OUkR z_x|p4|G4MhJ-d6(^Ue3o%scPQ8_U8sE%^XKqhR;hi)~sWJHmn-X}hQVPX!7qt36n% zQxg7hs6_X-7Pj*9_9zKv82?VhH^!oErrgX{VBFst12GmgjDNIO+>=ksuByLWRF#bh$6TDTbVA>fHN^(36qw9?8&_Ja|u*;Wz2MSnX3W%OB@;WsfCwKh9+?2QSdqq3q6cHazlwYbMTY&lXs6ku1m zYuRjys!pR2PJ-CoA;y$sNV!)JHhN{YjoOmDU(-yNrX2Y_n(Iu7hEq1i6Sdk|c(r54 ze&P8}Jin+Yo!{7~P+`DJJH<}0tdiT9(;c;Yu8u-d$& z)om=a>)x~`8f9B))#O`QGxbw!OKq3iOc{0+YAA4TxW8R)UDld3S~?n*8wZ9wH8c9k z?=}N|X$XR!E&6p1p^f!0;;()#{GCuXOg3stQ<#{i&A<^!ivb~SD%9mr$OQU(`5wM3 z5^}i=dZhp2?(^g16|M~hjk`KI4{K$GNmQ6^NCsy&%6<{yjnoa?#>=OMj7j=YlzgcthwLQT8oMM%>qhqD=b=` zxiR?y8b-xXRT~`Uq^dg&~2tTGq}^23`gKC+b&f8=CmS!M&BcyUcx8xlgrw zh%k%BfYbwBE+vw&W1AO=M~Z{9WpjY2SoM|Jp?1WOgC9pR#@T)>1DH^bvV5=35~T>? zW&{IYkRF09np!;;v?2I$E*Prf(b3ry&nzvBh&{Lbrm=I_`{pk&EahG$xiu;Doz9da zm^r;zGG+L(X8XU>4}xL>t2q*$%v^7M`$S2y*0c;_AkKJD`odJ(xzySZg99{|OWM3K zN-ooRUq3KHl(y0uy{l;;S^=W?mUzym`wL@@L!*B?zb5cfj(rzvSPcJE{Z3q2l4%rMAuH+2qi!X&pm_sE*;?2Zjk>e#ELBbZsL7uRSlTVE! zav*8Kd1O@7=S!A*#H}j_*8QtJ`@+Zo*l4~b+t@8>AzyTw*w;JP?=lFZ**q3Tx>BvA z6ozm!uoq-fmuAL;U-D#hm_oHTjYZ)ZI19`hJQ-G6aL^h!Kf-&2>K=zX?UC~)hYH-su1&3XN-&i{e*A$VCCd>Lb4cP5NmwtLnLc5 z(A4vD`(ug(atoEXc9YE!88GcL#IvG+Vr*qnmXSYl23iM79dAI9%&FvN8 z6P-`*#WLgh;GOI*SRC))G@BcX)Ki2ODBd5J$bRgPK_ezE;C#bbrexjyEhGwRTLQ_^!Ib|gJKd#l5TUR8 z)vldnq(k7QzJKv}>&0P2IANN&Lrj|yfqzFNg&}AC7T&f*$_%JYB_XnqMl8C!t5crf zl!9e=3wUu$ytxQ>S!qjkx7Mo@rJ=D=nuA1HH!xohiQoOduH;~g-=1aO2Y!BX>{^VyX%M_=S5w>HE>f~{m&z+(IlvU(E!fqH?lGl(?2 zP1Cuutm8*mBr*qa8gS413Ar0IL|#IA?JSTx$A}H1S)EFve4E!T&Rfm@czSAz|05$H zNR{W!wuseu&YXXn($%^$|8`yB9kSwh2I80Vhw{BGS2g*lJ(PQ}FK6hA4pX`^!qsNzu3v__J zw!Ckt7=BM96=!RuIyh!P2qy0o63q5^^DxzeX{`n~I9yMKTjw73*UWAVsWIm~R{rO_ zt&E+;ArOy;TNkjK5}v1ND~Xx!%sLb=fNs)ZY`!EBEF%7<=YH~8hd7ry^+SPK)R>&X z^5u2VzmNFES-De}t4$%^Wr+RGj+Etr2CI;`ldrSspLW&SdS6JDa%pBsW&9`ztPZ$f9p$2VQ0Mibuk!OACQS%X4PS z=e=+C^S=o1z1KN>Mc}RED6bBc%jSb1y-F<;Q@y`Rl2c@`ZbnDqRSK~J+rr(|sdw~p zmQ0!+72TaaKMSqAM^&E+E$IvqQ~QP1G@w_G+V%xa&FKzF*!V#FReQ;Z2pEuIqC z`;6vyhfO8%0CQ`kj-n2GXt9n$=0cB}D&lF>aaX^S^did$V7%R@acZy1T`qzxWTo~w zNHW;o7#-JNoF14cWC09R_h#{rEpEnHba)86+W9gRdp}qf97|#W877q&1Ofye|K{21mokqi*4I`cVJVv zJ}idsl1s(%3DJiUPo-ghfz1@P4bPXR5RMOOgV3MX&tEvw!4leuzuw|2|M|2zNt0x0 z@CN8OFlpXWihSb;j_6JZxwLb*B{p}XMJd9pfjZc`K|QaT5yq5F4=YAgBAk{wL-?FUtM6~DYR*A_%asun>C2XFm;r>_W1TVx%8qbA#f?|h*O)3o$ z5rnVQ`%_reu23L69Bq2bN~L;PbsW8Tc`=XjG6D+kaK2@)zpdA)2(>eoKNc5f!^ z^G6dJ1Ct2rXU>n=%pbxP-c`2uZQcJe!W5$Q!gw@D{%kqoy*bq`%Rl$+jypVjDLO|& z{2kXvy|wC_e;$I0vwkK44C_K&@st2oQ+ikL%-!4}cis_x5p+@_=8U!@@AZJ=+!qE#RdXb9#~y{s zWy?kMx@nWYs@Dp>f7fMG;*(1*ulnAVJ{)d!kv2*j6@H^N^kP_ylV{cU^^UK&W514P z@KVdzH|y5?FIM9}CM?Z|7AmbP_6nlx7CkEQz*~$ zk-6|g^+33U>U4$0r@J4_M)K}2cdwGHnMxm2zv&DeZ(oCGCj73oNmVG?A@%YOC>$Um zzT>j;X=QhrH$qZ<#gup_{Oh|~E&=y63nfS;ANj83$<*$*ixq|NYCJ@o+A)bGm{Tz2 zDN{lQ;*b8-Ny9wLI(TjM{t)g@?pJdg@=ytl=#Dz473Ef>LWy_DVbM5@LHCWk}Qp+V$(g6ph#{1R<2%_Cayc_b=31#tqUiBto*Sxg`<}sv2 z;0SjxiO8BF>1M%rwm2EgTf=l65e2y3kMEjl*7GB!(ARuJpD7=Jq?;dGg;@!hM{kfrZC-kq%1qF1FVr^} z2mAE+7s9^3HX9uFA?%R3Co{1(*HAv7o!f$WI(Xn2fZxO=>uuzm8AE4FIaXXc!Xe|1 zW=}B^{Q6MFBC8KG1!DaS;`v~Jx~$4Rx4*21s4LVR$pe}A%t^cSaoxDCVciek!OFjb zT&;Cuqinye5#*F@#5ULbUYV;=g@<@@r`wM@MCNkpjsx|Q2NlUc zxTTv5X?Xp>eQxAk33@P;`E(8uyTq=JMegjDs7cW=@XU<{tu5tB4 zE@>FQ$V+u;pnt2le^K;s`!IRUIX?BDu?OkI{y*!|SrmXz&hYLSw{RHEZEF&x$4#S7 zAy>aA+~f}{K#vQ z;a2|2jK1`alhtZIn%}4%R^P=UySe%#b?ZRGSwFchlzXYHeLspiGu}gSLsF}weRSRD zuY-FM?3u#R(U#pn^{*fMn}#DZ?K2$R+xp;Ik#i{NBzyOZf~eSnL$f43Hf!jhd7aWr zz2-_AqIY)fLAT)6mg?cv<1K6UDDKqiWeh6AqP%QB;`LvSlQav`H zXG4hck&E+NoHpI>^?VyMv8=ZqB<-h_Vt70Q5nG;ZpF*AZrVH9Bvsm8e)-#8q{A6g? zE_#-ts@r*Eij+Y8cu%vm;9eeKWUJGMEBy?GLM1v5I>O+m#x8#ud$1qgdbyp49+hoX zasKxG8BP3X2I-KoTUqM%7-*GJFo$SF8h!k0R;9;g!ubH7B?pH)?(@{qY6ud9zxrO@ znJs6!dB7A^z0f#G*fcxEld`_U`n}-^LxISKEv3}uZ<$t@=uN20Gtm4Wqzjl!`(x0< z2yxubekI{tPx6+-+T1iwb2^#_KU1)We>zT2sdYKse`FbrFDn>lYcu^l2*miXs+IId zWNqw#+HRA2%T>6Gl6KSIeu4K&58KsxS)7yqS_b(f^G!?aQ@EuK^7R#6P2q_i)0%#U zO}w5tvEQ02jNoUdHgT62ihVf{?pV)Z7MHZn5o?h|;=8%~v(pq!w&LHF&%4?kJ?oMa zY#Rh)Za1TIv}U!>>W=Xs*=oFsMv2#nUp-B*-O+T>@i_gO+2bLAUj@^Y!3OX%gNOFw5AgT2MFO=Wfz(NNlhIXuOar zpIt3lb?5t&p(!jDdEcvPB!XIMs>#p2OUJe(cl*bHsqo`a;lx8lOk{n?2hdR|lQhB(Ar5Sb1X22(^dh8xVo)Gb+TB`FYX>$QVkquk#OZYoFw};TMbN zuwTc0?Lwf28hS03?Ung;FdK zP1?UlIJ%nKyG9S;Ty=LI=`+25MJz4%r;|ov#q<+i=|IFMtPFxZM8(dY$V0vYcj`r2 zpom|SGqH>KB+q7~F^PW7KWPY1J$iH80L-r6XsX(a3bK`~JBCmOLB8+(!M3!X0n@;- zMLA_5O$S@_>z7*JcmrE7ab4oh6Ow-?Q>``2jVsp?JlTo;WHHm!8g^MY_Xz{`jd`%H zlGmHbnqZ&W{H&dwcq-=V5iRN6-a~i!kdc*lU3}$vQGdB z;!;<}#ysZxB48h8CzB5hTnS6`R_ga(%~x!ipx2Q5uWxKk(xQ68)@3I;_N0aE!(6)(s1TwrC${g zu4xmY9h`$|)6>zgeBMx&5WGg2Hp1Py&&E8Yp+NUm(VTtPDpAZO1LsXz-`j7G86AuX zUYCpCS;X8JB^njb$gST}gAIE{A)d4>FtM|^`5u0Dlov! z^L#kWQH9j~at}*sg^l@bw&c1Kk^w;lm<(>!L|w|_`WAD(Ac7b9A#HNbtNJ0m78&g! zBzcIMIDIWWeS0xo0XAN&XR=x<+*|9kC2sVn(-n_}XdwDk+l)*FZX_Rt18rji z)LkhTbjkci>ZGawJyf3u5c@OWH*fzvn5$fV#nv}l@8ZxNPDH^eaL4dZD&ZZkEQ^kT zEzfvQ*g(6`G%8?wepQ&sfD9QnVq9rnSfdZR(0}pqT{bc%?HoF<(<_(1pt;%&1taCB z;R2ur@VqBXfEwumh%4_yi7Y4Zf&jU;^#MD*=mKd2pf>{M-DseW1=jR)#Vh?}i73qS zOA_PtAJGb4UJGXxT`zBPIE)q~DNMkPnOFhTAKzyHh>gspW@(S%(gim0+1C#?2=+ zMn1lrY?0)QPt!JUvLSKpIpcmw$w&oJkn}*-qj_lsP{VFpT;lRPp3E#D%l`hnL@G`^ zV%j>SxgSs4qQ+i>&`x>c0KD%gN0r$CvBmj$k`_D;oBSq{GS|z=$tk@kVFmDdT(IRJ zsz6~Xy+(}`bPks~+nn+9nM+0c0PS)%IqjC@*g{HXE3`rFI1#YSZ zDP0xHK7jsl*E~~h_X*$Q|#3N9hG7s|*Dz8nQl=;tBKSfv&k~;XL z0cUhGUL4Wi2oROAFq^58wELoDGRa9u|`W` [!tldr] Proposizione -> Dato il poliedro +> Dato il poliedro $\{ x \in \mathbb{R}^n: Ax=b, x\geq 0 \}$ con A matrice tot. unimodulare, e b intero $\implies$ poliedro ha solo vertici interi +Possiamo quindi risolvere il problema rilassato con il vincolo $x_{ij} \in [0,1]$ (insieme agli altri vincoli diventa poi solo) $x_{ij}\geq 0$) + +Non è utile usare il simplesso perché il poliedro ha vertici fortemente degeneri, si usa infatti un algoritmo specifico: + +![[Algoritmo Ungherese]] + + +## Assegnamento su Grafo Bipartito + +Il problema dell'assegnamento si può vedere su un grafo bipartito completo. Siano noti i costi $c_{ij}$ su tutti gl iarchi e si cerca un abbinamento tra gli elementi dei due insiemi di costo minimo. + +![[Pasted image 20240214183550.png]] \ No newline at end of file