From 9e055f7e0e68c5f664d14f14ee82d2203e56fd4e Mon Sep 17 00:00:00 2001 From: Kurteshi <agnon.kurteshi@etu.hesge.ch> Date: Mon, 20 Jun 2022 22:19:03 +0200 Subject: [PATCH] push selon autorisation --- fourmi/fourmi.c | 1 + fourmi/fourmi.h | 1 + graphe/graphe.c | 3 ++- le_plus_court_chemin.txt | 2 +- tp_fourmi | Bin 72128 -> 72128 bytes 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/fourmi/fourmi.c b/fourmi/fourmi.c index 2189dc7..462f519 100644 --- a/fourmi/fourmi.c +++ b/fourmi/fourmi.c @@ -7,6 +7,7 @@ frmi create_fourmi(int nb_sommet) fr->path = malloc(sizeof(stack)); stack_init(fr->path, nb_sommet); fr->distance = 0; + fr->ttl = nb_sommet; return fr; } diff --git a/fourmi/fourmi.h b/fourmi/fourmi.h index 140b2d3..5f2ec1e 100644 --- a/fourmi/fourmi.h +++ b/fourmi/fourmi.h @@ -14,6 +14,7 @@ typedef struct _fourmi stack *path; int distance; //stocke la distane parcourue par la fourmi int depose_pheromone; //permet d'activer le dépôt de phéromones + int ttl; }f; typedef f *frmi; diff --git a/graphe/graphe.c b/graphe/graphe.c index 0a9648a..e85393b 100644 --- a/graphe/graphe.c +++ b/graphe/graphe.c @@ -236,7 +236,8 @@ void create_graph_vis(graph g) void shortest_path(graph g, frmi f, int noeud) { - if (noeud == g->nourriture) + f->ttl--; + if (noeud == g->nourriture || f->ttl == 0) { stack_push(f->path, noeud); return; diff --git a/le_plus_court_chemin.txt b/le_plus_court_chemin.txt index 8071ff1..c6aeb19 100644 --- a/le_plus_court_chemin.txt +++ b/le_plus_court_chemin.txt @@ -1 +1 @@ -the shortest path is [0][1][3][7] with a cost of 8 +the shortest path is \ No newline at end of file diff --git a/tp_fourmi b/tp_fourmi index d17ce93c5315f4c3094f59e6faf87ceec5994e74..82c056cc98098eba2fe0510d0e5444c0d9c8cf89 100755 GIT binary patch delta 10129 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 delta 9983 zcmX@GndQJ{mJJ+?oT07^U=X@lkTIM|<hg?W|L#>=ZhZCSyL{{L?wm6`ufjIhFvqYk zElAjWi+vrl<Rmq)dIp6#5Sjx*F_=wW$SrQv5CP#DpvhJzK*TN3#8;(Ee#NaPDeVi9 z4nUJmoovV>E|mb)oPZ|VpRzfL$3#M4nF9lZM=!5Fn6mw0J$aeRWk!L?RjPqZJ?fLs zs=7>e3=*E4s3s$P=I{Ui9^I}#Jh~Y?I*-42qtC!FIYCX<a1N@t>>sGI&f_lx|NQ?y z;pE}Z{BplSJvyJh5d8c9|BE$~@2M#;{+|3_&Dl8oH(2qD?$A4(0{aCR7#LnG0qO5_ z{m>nHr`z|AN4M*TH2(JoI?sXZ+-JnVFj>)7(OMX!sN400M|bE4kIn!Nh*n>aXeY>p zrb+$`3~&>Eq<Qe?9fKGVKl!4%3gec^-_-3GQzx5hxG*XFnp~}6pr8kGN-wXwF9X9a zX$DZBn9g<wQMOmy85myFPd=@oXW;M)?A{;U43@56YE)ia0P%ZyU-~dG?2>_KvV~~c z2GXPm(q#PTCqmPQ8kHAC5KY}6O|lS8_uarY%>ZdS{PX|+$%)#EjPoY1(bQln{WW>5 zwmy@~ugUkc^_WC{O*YrkS1bk@*~@#zn}K1MGQ@}nu3#f1-53~N9QiT%jE1gZ>kov* zAlHgQbmf6`sX%l!L3I6gWng%b2GOOCqzmNS?I3<HuK-AwDnyqGMAu!AE{-3Qowe<m zj{lgvR#P41W^Dt;+{t&f^%>_*=GC#{FRWu=U?>sV&%nsQ@Iv&*<S-q1#wU}@blTMR zx-fuKQtG$=|2;Zecl`VR-=ldih+-(^@#wX^>%zeB;>Tnq-HCi{5T!dnDgDLE$p>`} z8Qmv;*0o^b`#M=y&z$k<<WxNe(JRhi10kxufByg9qqo^$@<J~e#^TA>^(>gQzDyR> zH)s4f*;Bt)a`Bh{|2<j{@V5qn(=WvO&f_n#C%@P4WAvF^XW+|J_jz)oy*g9q=gGOY z`b;XHC*LyE<M{IF|Nl??0vw=($as2ky`cuvqE8?NjD?eL8tU^oLgWQL@e8oBx=t1| zs$*O_d8*L^#wC->j6X7Nnw(+cz{L1|@+uQ2#=Vo@ns_j=yqj!pI*&1B@-@>A#@CbM z&9oW!PwqA|X6&B4-%Ot|dh&ZSZ6^J<lV!}c7@0v5Oy}QBK47NDJO2&XDPXITCvP{m zW!yUXtGNpk!|Tb`7Qu|WC-++fF-A;&WRcDIXR@EAE917wQ!FF-{=5Kb(>m~pUw~J` zcJgmacP92%lU=ML80Su&Yo)7l|K<PxKAmqodP^^ObUuG^;Uzd3ok;O8W>M7u#U|^E zJCom8sdBQ}Ffe@Lk8}Moxgkn)vZ1vD|B2^dwJ*9EI*-3lc{RDgdODNR^U0Dnu1wa? zCMVcrF`l1%+Qywp{n=y@TRkTB=aU-@)fw+i&apLMTswKLtv+Mz<g>PU691ln&AHI+ zz|(qwzvToY$RYvO<CBB!bQw=hZnV>2TJRJU=uG)fC(pChW3->lZEw%`ezLc{3FE2B z4fYyL3!hBRwKbT0%ie@>_GEqsJ-!+va1PmO#K7=E;qhc|2SxU?AhyQi$;A%VjI$@N zchF!edOW$_QJ=~2@#GDTdQ5_kCtEo>GoG1T=V$;@;Hb}-J^8+)gh-PiB&jiiiY(TL z|Nl3;ewiHTq{GDYaI&S73*(;2bx!iUIS;|U_yH=rHcVdSq%irhwTX!J1F-0eZU-4l z*E^+F9^I}FCNr8#GRZxhT;m+UbmRdj)iKVV{Lk5dDeD2)AyyA2C%Bj~GJ(Y|-Uo@P zExZqkMgay;G^QFcFr@M89jp=p@xq}z{+5{xlk;8FnL_SQ{_m{Mqzu-`_<8a&S6jxV zlb^WiF}2;BEaIlYxPP*(n-P=b-N}V+4jk9-fF1Z?vXrd`)AqZdC}Qfn3pOG4F1Q%d zy*oMA-Gx6a8I&4?_B((=q3ibK1MbpHx;m5Zx(9RJ&;ke0i-y~itvnRi&uKF-yy(0= zInl#F==&{@@vRa6|NjRklYqOE7kenPnEv|ze{zDC0^_>LuRR=@Vs1^=^E7c)Lss1U zg3<C|se(s$YsG(1nQ{Du)Ll?6w|$_+!0_Vs&Hw*jZe;>Tvc5J01Ed^Cy$Lav>Ef-) zb>5mxZMP<W@pO~(y9ss#$eeBmj?QBqy|%lxV0t!Aj_}f8lDIXw$;+DY_T+tDT8tYe zzx49f2)Xh9f487VcWVL2{$5iSh%X^FvETUrzqvK%|NsAtAb&8)+yq(3cyaOy?;!ua z>j?V-I1nb3X@bKEVuI!M|Nr-MfdVuB23$EP@gze+0c>mM@fV3VCeMy=W$L;<d4i9u zkhCTP!;5d%zyaY8V!xWa-^ZM3(REOX%v5=OvZAjJllS$>{=UX?Vqj;0sz?U`kiqi= z85qEodgt*MT~{YB@D<k+3}#?>;dAZ(|5!xDoqO&7{}&wB|Nq}72Ce~Y-vlu*yfDA| z|NrC%0aBCy`>M$tz5;Tw>yPfxFP#G2u3tQ6cpQAd1hRwk+GIyRHO7gPGyI&G?5<2+ z<LAsT5rdR+e6CCmjFD!_*O;6a6FRxTUxrOagMs12^~sa`Eg8>FKI88rUU2#U|87Qb zG#yokMbqs|lMUk>Wh5^D|L@rCqH@HtwdVi-|NMO_|6#%ScXCgFE0g=>$(I8nnPM(Y z)(bRcQoS@eHPDOk=Hv~5ri_~>KMV9{+&tMV$exM$(&X|WdA3Qa3=A*MPM#B_$#wZ6 z#7`dGlMDT1C+7ysGSy$0%pL5?WpUyE|87oD>tr&cxiDBJ?)>DQU~f%>a3r6loCjAj zCCnb3hdp|o6FiPHZ|>Ua=+P^hr7|fbmr47=<opm9#;cRJgt#*HPyQ8R$GBm#WvCzH z#K|3@ru<%^NM_ZYoqQ%#nsLJ97onX@;%6rphj}u^oSnQcEQJ5sX^1<IJFxu!4{1FJ zhMk3od2~B)fMVg=<lt}vzLsDl6L(CW7%szjbMm_IM5fF$lLaG`xJwmafqQzgU4$DG z%jwB&5m7!CAPbt06hu45IL120AyURZ7D##kHJe^AokmGC%BTPTf3ffM|Nk&WO1=yX zFWyepiPYr&d<v9*4|;UF-k6+dD9coRYI1#KG~>R>w<Bel0!~f-6{*O0cd|^BIg{(D z$)Qox82?Uw6XndfbFx9S8<Wz>$raJYjBh8eiPmS5Ju&%ibSmFbKO~R+oE#7%!?<U1 zZcL<MlMKv97RUboKi*pM|NnnbGvc*EH<%4hQ*+^pgpW=B9^>c~a15TNKpJYMd-U4Y z$S^Rx5C<CqDmFldyfk5CV1SfHU~^`|&FP<96>GxyYV!J66RxetKvBWaJ+)?Xpt+`0 z6NC$DlpgTtwN(b`0oNlpCmX~$$%q|=TMbUmJ*@EL{Cjd=oEhVh$w%X27{5<eiuYmC zIy$)^-kA665wH!Qc&<7;c|*J*<MPRm;*CX`!Q!BHG9(c&AO8P;@_{IA#wn9S6I_`5 z4^5t(pckiq7^K_vg~xFR4v?=rKrQRe<1gF~{r?Xxm=I0)eXNl9_5n3B*$<<{x5nZB z|6d$F{Qo~pkvd4xr^)Jx>ij!BA<+Zsjl7UOG&wd=fyrBPa(!X|2j`*x|2vPr_%!)? zq88)#$xKP+_3ID(|9{+h1K2ISwg)8`7+%PN6AZZ0@aVODCjpDpB?my|p7RC|aQKT! z!o+h9fy8ZH;R4kVg$E!Cd*R~FhyMS6t?AKgy9+L)5P+gK2`(W4Hq`k5sJ7-?eh^&! zI)j^0pC<oL@-TBe@c(~z@CJ`=uscB!e6aHxC{j3Y{QuwC8Un5~Y^^0h<@J70n1j`U zG63Vh$+MHS)i!}F?iPUL+3Oyi$6gr!0Q-Xzq^AX{XR@7{0%Ol)-V|*nhXa$XQsfQJ z!^30gKDfCay{6wKz_rT@_Qwd(&f_oMPVP*pVG`aynLSk{KGvCm;l+)8C{g)y-~azF zrtJU!e;=qe^60g-04X}W7o=zcs5|Ev?$c{)ZO*{p80Oh|%`w!o^Q&WsW9Oexk6zsn za|VWBAI-lW&2Knf{NLP{TEsOuL1x0Hf{DzG7Mmv(3vtyiUh)6G1QP>;(#rq;EtnV> z%vS#YAHl@H@L<*d{}oIO4Aa*9|38C?fuV5S|NlFf7#N;!`v3m{69Ys2mjC}5m>C#C z_x}H{!_2@?xcC2mA7%yy@qPdQ=P)xc)E@f(zlWKDf%)kF|7(~T7&=b=|9^&=fnnLX z|Np-*GccSy_y4~L3qw7_>hu5qo3Jo296SI2e+UZ$!|U_^|5vauFdVq>|NjgY28L&s z{{KI~!oc8u<^TT&EDQ{*um1nfz{<cd<NE*qDy$3)=Rx%|D+5F9&Hw*1SQ!|;-unN4 z0xJW9!0rG4H?T4=nBM;X{{kxmL))GI|G%&@FbLoK|6hcSfx+V8|Nk~@CJYQ89{v9x z!^XhC{rLa?8a4(7gUA2>FJNO}kbnOF{|Pn*2CL`)|G!{kU`TlW|33#i1H*;qldsjy zlU)VM6Rvy$ZA{L*Y)lJz*f|&&KpoFD3=9m-lPA{8J3d<W|Gx;bDsQkNu&Or<3=G$n z{r|rTRNTN!VP41xQUNlBhmnCHVe-d%dBtxl|Np;@qUsV@l?np`gAXGE!^X*m4eCt) z*H4aWkYg;LT-l(_s5p6PgFK_`<f9GpjEg5fZIEYrxo<LCqnwie!T<kTLG=XO#u^ro zjUclUm>3wg9G&desK&JF)a1NIIi|IzCigYUG3HNR+bGYNHTi6#GGq4SkB#z-3X=t! z)EVU_TQ<ov#!rrHl4n|cVRBWI5@XKfxlPJS^_Tzu??d)CQ!B_429Pa(m>C$}UY`7@ zNsTG?>g08eVv`k`IhZ1@PCnNtHrb(>gE4lpXR|U>*R{!c&2miNuTSo4R%7~dYx1^c zIi{XFlh-v$P5#i#!qk3e^0`K-$pS4LOdWS7OSPym`cHOjk!SRpoY*4I7%;i9#hta{ z!T<lPn?I&{vwOitd(5B%G_dg<*m%yW6p(Wn7!p9eY6b=d*g#GybQ}mabkm<QIjJX& z(PQ(;9w|O1TgJ&7nZ%@Y7#J9s7|aD37{Em~!!qd5(pEK)v>-(KrVLCvda})IRi1r{ zF#ghr$+@#tcs{7X1QsN0o;!OQul8<c1_l;}TqXtv4#qfP1_mA(Q3eKA5e9}#s4Hzj zse*xlA(3(NheMvcBBBfo%rhi&K+fTs+^|-Hv43*>VM&dnA`A>HW}Mv&3=A9`_QDJd zEaqU207slC0|Sc%m?OclcJhM5l1zU@ChtD1%2y4NaRAGBa9B-#ci5P(6C~upp31<$ zP{0u|S^tQnbS21SU!ed728ITX9FV*pKd8;s#Ibnt#Z_w3pF#4`;_*xj3^O?NLGm$@ zSxgKJ3pj31?%gG6`w}D{&!x-2z_5cO0wkXRHva&}9*|5DM*$N9!x09i$s!C4tn89A z7#J8hw}O;u^Ks3X{OgDs&j%3(1~!f;CI$vBoyj^!rG&ji85r0)`FfZ@;_^%k47~Fv zM;?{sWaeObFT}vW-aPs3YPEV(Q3eKf9<H~buw`K50QrfjMS_8WotGI@#<8CjXJ8QE z;1MukW?<mR;bLIm;Nt<Y88|M9FfefNbAohmaAbfu0$>gg0~^O@CI$xnGzJbqrvFR~ z3`~*23=AB?JORugr&uvFFbFIYWnf_BWfM+>rjU9_s$*cB)5OfcAehF$$SdW-%)r1j zF@r&9B1ka{8;B2!aBz{sz`(#bN4Qmlfq{`l0^|;+i7_H+MGTB=Tp+a|y$tgvtrZb_ zD#n1679mz`Wx|?NWEuM>&s&R{R5+273MX<>;aofU{#tNS`Lz}`sc>3N)?J61R5$}B z=dD9cDxAnkg>&)bMeEe+p-CkLlvFsONhKeYR5)*gl0vMAGZO>D3QiwT@{QwkXJBC1 zz=@oEIFXYNCp7t#q9mWW3=9lh(B#8CLj)8npbC$TV=e>3WcT$F(8L5vt=u}3v)98D z(?oD$Qek3X;F~{r#(KT_58@0A?DP4yfkgI*F)*+%-~mMh-%(JqS||w0fgJYWB*ZHq z&&<HUc|a7Dgun@ff%BL+JPEOIf>I)f03S#d2Ll_2DmbxdgX&F4f@N|5sTO2@1xl*T z5)2FioSc(gHz<IUFeeXJF(`#1Ct*%rW;>7=I0<v{2<!sc4@$yZd^{jF11Bg6b3v0Z zCnyPXA(C(<D4C`)a0xQCg3=)<33CbaTm!r60La)(F$M+&Zf*fxZ59Rw{=Cv$25w%c zze2<r7`XX(K@uFC`63Jq-27mU0B6)>xs9szcR(g)i7_y6i}1L!fP&wUg@HkEjW`1X zqah=kr4J;DK7vpTjB~147#M`oL6TC|ERb9wd=r!_v>4gMpsGPbt{@GJa|E?O25~U5 z{cr;bFfho08pz<>BE`zUAXJ}j$iT?Ks0cEOdE$vWk-1_FAOUSq!N@%EK%Hm-NPwFW z>>cKbcj`oUflTCq2r$(;h?cT~@-HJdC_yk!d{8GE4AQ~R$aM-7VH01}F^Cz0w7g|2 zc7nJ8T-k!%Fu$Iafk8Z-f$=TWGZErx42*A;Kw6n521po#jC!jHN=Hl+eI&1f%=y9t zN(oF8GbG(X+^=AlF-=U6l6Hm|f13$HOJ_1Le&d7aO<`aVa{?K5o$akXM7j;63^b(A zI7f>O;)?6C){`%6Qf0K5{B4swqswHm%{sE}))3`spcVqy(Tky~*Na<Ej^C^m4soo5 z<ZO_0c0!$#At@@!z`%GE%FSVrDFaC_Vg<S9p%ui;We|#iagH53#087wK{3HJF+$?> z<OiE&1zv+<b_vvw1Sy8eyjx^lIH69;g=&{hV_;m)2XRIQ0|SF>7s#r)9H4MI3bhK< zd;%$FoKwKgz#wsHa^4mx+4qJZAqIwPkUE-yan5%Rh&y7HtS2wsB3}>UvrL>(&n9^r z6ncp~+?)&yEE8AMvq`3cEXf2%2J^&@ddWW^r#3_R4fT>gLGqKJ{0;STMkWx;?m#F8 zH4X*_>1+nZBybclPyAEIASZ4Lk(>^p80x)1ii#K*v!IH8)G^4NhbjUUejs&uAT^l` zj1^EdU+Ng-q%A-)3=H!j6vHHtnk)v!7O0vJbqsR5plZHC)qp}lx`KhR6RPG-os{xL zsG3tyHPV#~jNL+@IAjK;YzC>5mXn`uRrUb|i@YTRC~PLwvoU~uEzilo02NzM&&D95 z01A+BaIAzIK+Kx~ZLBcPspf<Pe7J=5<dALFhM;8dP#dDE44(ANxfmEEz*$sJzMFx8 zfq7y_t#mpAqXD<|<OAEpm3%=~7;%A=F&AH`ljN0PU|_TcCm-gCb84l&>rDQ+O`Gw+ zWYz7;2JT!847?yWCo_ntf?`*ZjZF(;Be-b|PVAexAnsBWwVqtDT~!2BPBJQ5gOV20 z#0Z5u;tULjCvV&?Y<U=F8V3VANR!M3P<oIAr}qHRs5}D$!#22gHMt?iN{U!d{<~cj zVh$Gr11Ix=Qiu~66q7-2Vqyn{#IngwJ6wZ6ET)MO(z%Hx42<01Vw7oOf}|cuodA@Z z!NBm41=K{`!U}I98c9H!h|$o7t`|4NiZCv$_5NrR5z$0sVsD<DxLZvVR3o$Va6JQ6 zxX2YNJ1_G_Py??Tl+Zlc&W26iuv^rw0L+tdgH`|nv%!3Q2>(Hypcjbm4^Ea$wGIqy z9B)8o1cF4J+3Y7X?@{4d2IAPUtpHW8la2SN@y1IqFz`<RiCVHrPfpuo!s!6wXt8Y% zoV<9C5l1SBC(RZ%`R*QNi7qfl9+Xd+CZ;g(Zw2vr*$gI2>{Vvun{2aJK~o(h#Ks0o z6IUTgf`M_4P%#4|n*_+MOcOH%q$DP{?v<Ci15H9pp?#m<>=5<ac}9~EfnG*1-vv-7 zf(0}Q!_LWf9u(F2*$fQ)sYOK$j0{W{L9*Q7WW)|`AF}fb2!Ns;)IMbA1E&%O4p94$ z9nwBy;V_*%{eXfTs1e96$PB9P1(ZQug@d3dwcr8Sup(~q)dMO_JK`q)KA^_S3aW}# zz!J^Tll2a&FnUZ5KB&xeGG=ncL3yT+F_UK=RO0;!(k=>C^(}JpiG%)38>1#m9+G3) z8#USTkRtCJkUTS3erd$y^g}j`B9oUKGLlr1gcL6eK!b-23=I0v;`;LB_lLYjJD|8b zpzuBes0iUj>ND^n^%)>(f`eB;3YI1~kkbUT+sVQKDxo+8_`s?d*f<oxt#dU{3B&>J z<ih$4Pnj4P*uf2UPVUKU$AqOpEp$#k-VTuQ9H16DCqI}Yz!5ds<d}_uCMfYRgX=L^ z48LcF<bK9Ef<ls$CmfSyJiU3{v6Ebk0h=o>nlj4sFxd&SGI|@bvVLaeW-<_FWo6P3 zYG!5J%_Ppi$T)ZN#Y?e_jLSCbU)jRKEzFV5%E9C$#L5}9ndN3Z6Jzw|mfOipOiLp+ zzr1VD3|gC`_3)U8l72>hZmND_dR~5>zDs_2UQT{uO0j-oUP)?kd~$wHeqQC|_g@V+ z`+iGd<SZ`DjW5VZEy|y~;rjy>RGrDCxv6<2#rgq7`RPT8xw(lYnfZCnlMTO#ZJzn# z3ZqqGPELL@LvCV8QD#MaW?p6qj9pNanODM)mlU6tUs{x#8DEfElv2u&o0yrW2U4Gz zH+dtI;^rg2S{NBUHhcbQXJVW*`QpELM(N3h|HT>2CVT$Zmx2u)fflfUf{=?5G)g4E z&=4_s(tkb1gvkg0i!)UxOuqGBPq805{DiI+HY}w&`Ql&ssUD0E811KPGBWB*38M`l zTxVop5MmHuSQ;_Ch>_8a(O~*cM#lF{3lgTUVq(-|`r$VH789czW7u>>W=3(QxAxPm zm>KmX(fd$mLER)KK?aZMjm(VVQs~_Q4rYiY&C%00F*ELC44+=e!szb^8<bcDmEIl* z@-72I3bX~Z1uDKG4kEq-Dt;I$&M}>ll~J5Adb%VlV?3kf^h#Dnea2<eSF$peGqO!r zWMhnH`W898iH*@s>TDRq2v}PZ)cgT?`$Ed}M{JB`lIXoI2atyt1Q?{J7qT<zGd<Lv zzKEUCEeXAiwh5{Xy#sL=D((QPTp1WZgU(?4FGI!A`xLLB;t#F1dvP%OF*2G?Z{TDU zXEHY0zKN6Z9T(G4hv|z%81*<kpayzuzbV4#&dl^fYr2vIqZ#Ao>5&qQ_MCstgRNnx cn!Zqi(Oj_XA%v?Z385J#7xsuxlVm&q04jTh^#A|> -- GitLab