From b6f0e8574e05b61e63457ae82cef7d452d3ccbf8 Mon Sep 17 00:00:00 2001 From: Gianluca <gianlucamastrolonardo10@gmail.com> Date: Thu, 28 Mar 2024 19:59:49 +0100 Subject: [PATCH] Ci siamo quasi --- .../Lab2/out/production/Lab2/BFS.class | Bin 5015 -> 5770 bytes .../Lab2/out/production/Lab2/Main.class | Bin 2217 -> 2234 bytes Algoritmi_2/Laboratorio/Lab2/src/BFS.java | 21 ++++++++---------- Algoritmi_2/Laboratorio/Lab2/src/Main.java | 4 ++-- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/Algoritmi_2/Laboratorio/Lab2/out/production/Lab2/BFS.class b/Algoritmi_2/Laboratorio/Lab2/out/production/Lab2/BFS.class index 348d385d60ec99810e1b66d5c2b3eee9f53aa096..041e207f9977a33c57a19c4ac323e3e47dc23d2a 100644 GIT binary patch delta 2220 zcmaKs+jCP@6vn@uCOK)EUO;S{(w54_mef*bgbpN9M>;|~av4QI)R$u#OWGu-Hisf0 zjew#cTJ)5g0-^{gRG}b&f<ghsf{GMThByBKAAEDXRKJ}Qj_JTS?VRkr*V=3SzO~oh z+bTEKxGxW%Is@Qg+~{-r?TMubD`@rL9<&LJYE?Vc+K3u!shy>1k&qe_D6D#V^4#0j z18xK{LjfJeq>Rh-aHO_Di$p>}J*>rY5XBTXO7MaQ9dHUbf(+M@4IRrAbb7EHFA5a2 z8r6=Ps?p?G>A@<zBv2Gp+d>UmEU4;>!}?N=;<_5s;{ugc#&6EMDl%af>K)-&3t765 zQ1G$`Yv46Pj*9VaxUkNHSMaL9=%5;nM#C{}UN{zxYE9Ahh`?jU9>?9rVf!RwjWT9@ zVDci#`kDu?<6Z$*P>bnmI2M;-HhS;|HW|Oz{cf4(Et#a-=oUqVsXcFd@D94UM{RDN z9qx$h$96e}gxF_jN{cvZ+)$1SA9GaXrVARV4+yMEXP;=4DTUIiq^-tH*M<b^!l@qD zJJj}hA$_UV9CzWeKu&#qeZ_pOS@Tzjd?&th<9l3D@Pn+}Re_2B9a1>fskMb_&GMMV zoUI0Rtz(72_Nt82Ogoxc8r4{HBot3foU3VV%i04Oe(6GItc=+C#ESON9o(PE@L%v; zD?1~Qd3xy(4QeE^Fsz4I7f(|x7D{w9MAUdZ6j$)0z@*z$jet$FD)>pD{Qq4AoTf1L zx(hb;oZvSH9*$fbJ7DnJ17l5g$&4*r%tIExZrJIPja+QytT46FjcwS@nY8YpRq*d! zyhmG)aXouTY%%t`7bc|t;|#q86R;DzIC>sWVmC()#L<ZNu?J523|P?y@Bys?<M{g_ z_A=g7Y{Ey_N0OOXhy6G}nvc1sf-7c>PZ-1WKS+Pm>kz$qr_!w)&Z1#VQ&6JdQw7z- zm?9L+RL~Ik9X1<2qmK=Tner(t;kU==&ACbZ^`6BU_&(wvA%2)XCVnU8TKIz&{$Lt^ z0)Zv84b_w*p|da@o6(1(X?$5mGls-By$;c<*JAdMH;EM-8^(QU=!a6!687^HY*%g* zVFz=^HON}~7#vJ=>ujc{apc-@g2-yxktBqf$PQakA>*9D$y797-Ze)1J8yv{y&IF$ z(u2%tN^i%bmh^L0u5*_3-InyNY3Vch4)wE3%#)MS%^0S1=`~XN)GSIjuH+Xhe0Wl1 zzvf>h*_nb&vPz3=kww;Ik)5^3&RS$UEwUbqY%R%7jUbaTOfu<pC$jEQ#R<Nw)X~E` zG@A$LV%@t+%l078>#(0hOA-?n_f?lB5g9<VADZATae3`Yw5JyP@t}a;>2>yFmNY#g zM{@)(Lb+e@+P#Y0e-v@AatbTJ6I<=8mW$KMXmlj8)|*JDS-%6$1N{HzL?03CylOxl zuPP|j!4Ax)gaRDob?L<<_TL;H{sJ7svuvO?HpOxVU&-TN%`(UqYJ@_c2XLDGu5jLE zm9Yz7uuvkk_9YUso22;+`%1nNT{z48D*LaCsrNFuyrt%AA#DdO+W>8{%?sct81ol$ zco+Xf;~$J?UdD4wavm4V>f$1+E8mDZ-`FHJ%s-8iB_~koPuOpb9IR7K5^wry#+Kfy zj(zM&lqIp*Yd^xRS*fa&r}Ug>unVlpS14xaaTw&KxkSB}Q|jx@RF>vC>jKqrhm`EZ z{i!;rSqxIif=bQBd}c;!Hf>U~X_J~wbzc+bBB5;fhRMx`_ggBygdxt{99_e8{0#5E Dc9jKN delta 1628 zcmZ9MiEmUz9LK-&`i|{(x6~HFZI{cM5O&*cj9_$W5v*5(V$@h9CMLTZEQ@;-TI%g8 zASx;-uN>vF#RJ5vg?6!MY%$eT5)<{WF-EK3-+Rjx%x>n*%<q`*XJ&r0zxC+K;MKXy zKLFT(@>nowc4u(6gRH{B?WuuOVpo4Qm*_0!a$7U~*<zsv+t3z7BXS|+VJldf+}702 zAOa|c(2E@k^_f&YpU)PGk7Ntke6cIvn^S0aci1<(!_~Ki*RJXo@4gWFvCI9(N`|ZP zJYI0{VhAtcWp~QFJsiZVc+Ej6gxB$gyU|+iZm@5;Sg?OrYS3LD=uso?xxj>atdcb8 zn!$Y~tYBJ$Ac}1bLhJ?Dx3HV-9*!R1yx4=WOHi@+1e`IB4D4lFiz>0eWL!1Ec$1?= zzBl&aEsn(cHm!=kcd(x}=2Sm2u9~*#nA;PYQG4B%@Dn8oew>RRMl;^Ud+a@nC-FXe z7W(iI4&Wec3DT*j@d2$0%P@iuafr!RbL?V}={va4VH}~fql{V389&D{=J5T8=<j<S zr`L(~bXy90@f_ATXmoJWL3|Ev%0Y*N&b5ESFmQ@K22OLyr?7>su*@)6SZ3W)eca8~ zo*_<X!RG65V#N7~I9bN{I0JZC<IHND*$PfGKJ_3B#JQqCRN*e#hKcFp$R7JS1jqL} zPOlT1A$hA$;NZ+0S}G9tcn~7~V-fF~bzKy@scu=P?0t;M!G*3JoGdB3D|4T)C%bD> z+DK&~6UO32w10-PUbfM?KbURLO^<5ygIHBT&u~p2y%!rb`W3y_6^(vcqaUfDckrs6 z;}x1m_jCB@;&mhXYK>kykG{@BH>7$zv3>QwQS5yU*Na`L#dd44U0Upv7CWWIp44Io zwb<Ph`}qxGC5JCoy#6P)bnTon^J3d8V)-y|*X5FhSOX4EA{|{a409|VEu&`|+a|GH zVF-bUS;lkT<Rsb^l2*i;#Jys=LwXM?7R}P69Wf(z8O@txarv%UB4MS1-yep3mj8c$ zk?J<R>TctE03N-?L$`6BmHj1}Fvg;}fcr7dVx7R#DB~G?ixe(<)xVCO9eh*H^TtcD zruD9+@dfuqu2Y(M<T^?3s}j5Nh@|l~E7(6{c`p2!A<oF9u7zbU{2Mi_#5@0Ds9%WR z&~KE2yglOA@|H}*n#$O@DK-vg5@Ch!&7}Dq8n;|RG-+MHKx-MV#9Eu85vz<sq-2dU zf0YN^=*7>l{Rs{D8BxsgExL*p{Ho!Aghoo}3Q2HF1j*)&7tAWgN4?8o^4q}DJw$c# X5(%3>GsKxwSRgOTMNW>>Xkg+$t=cS- diff --git a/Algoritmi_2/Laboratorio/Lab2/out/production/Lab2/Main.class b/Algoritmi_2/Laboratorio/Lab2/out/production/Lab2/Main.class index 90720ff9e33207c51bb006f685d4752eb3ee7351..bf9286671bb03c9fefd0e19a3864335107bfa92c 100644 GIT binary patch delta 187 zcmXYp%L)N;97Ye5am$!-E4$yu%EsJC|FW|qDYs!S8}C4tER<Mz0ZS`o%Cnh?&FTB< zbRO2*I<I}tZYgPrt;7~5h9ARI;{4$Lmn&T*zI2pyr2Ra8bg7_|0&XGcpp<=)AA}e| z^MyIodZvEar0?T81sWJQ6zOBKz+y{@9Tl$B7)1f^mtn#*dO1$an3JH)A@T!~RN1p+ Kg+~1{%}l-)l^^Z^ delta 170 zcmXAhy$-=(07Va_^%L|5vH6CYEJ_>0mza!1B>u|Y$qSf>)gmbqFJLq^A@OWVmy_I^ zbMMP|80Vm6_oe6vR|;43q;L{+f88IR6rSilZy&X3p^^ozZ#3V`M-)eI%6>aSA1i}Q zxYO>_1|@9DI8+#-v&3MF$(||~>P+Ijo4hb%9;X5)7O|JY;>Zf0G&K&a*`Uw}gWT*3 D+%p{h diff --git a/Algoritmi_2/Laboratorio/Lab2/src/BFS.java b/Algoritmi_2/Laboratorio/Lab2/src/BFS.java index 0641c79..e42eb55 100644 --- a/Algoritmi_2/Laboratorio/Lab2/src/BFS.java +++ b/Algoritmi_2/Laboratorio/Lab2/src/BFS.java @@ -159,14 +159,14 @@ public class BFS { return alberoBFSdallaSorgente; } - private void cammminoMinimoImpl(DirectedGraph bfsAlbero, int sorg, int dest, ArrayList<Integer> path) { + private void cammminoMinimoImpl(DirectedGraph bfsAlbero, int sorg, int dest, ArrayList<Integer> path, ArrayList<Boolean> founded) { //Se ho trovato il nodo if (sorg == dest) { + founded.add(true); return; } //Se sono nella foglia sbagliata - if (((Collection<?>) bfsAlbero.getNeighbors(sorg)).isEmpty()) { //Pulisco il percorso corrente perché errato path.clear(); @@ -176,32 +176,29 @@ public class BFS { //Allora devo ancora esplorare for (Integer node : bfsAlbero.getNeighbors(sorg)) { path.add(node); - //System.out.println(">>> Nodo: " + node); - cammminoMinimoImpl(bfsAlbero, node, dest, path); - if (node == dest) { + System.out.println(">>> Nodo: " + node); + cammminoMinimoImpl(bfsAlbero, node, dest, path, founded); + if (founded.contains(true)) { break; } } - } public ArrayList<Integer> camminoMinimo(int sorgente, int destinazione) { //L'idea è quella di usare il BFS Albero, perché aciclico, ed in questo modo trovare il percorso. - //Proviamo con la ricorsione - + //Provo con la ricorsione //Implementazione sbagliata, ma l'idea credo sia giusta DirectedGraph bfsAlbero = bfsTreeDirected(sorgente); - boolean[] founded = new boolean[this.myGraph.getOrder()]; ArrayList<Integer> returnArray = new ArrayList<>(); + ArrayList<Boolean> founded = new ArrayList<>(); System.out.println(bfsAlbero); - cammminoMinimoImpl(bfsAlbero, sorgente, destinazione, returnArray); - - + cammminoMinimoImpl(bfsAlbero, sorgente, destinazione, returnArray, founded); + returnArray.addFirst(sorgente); return returnArray; } } diff --git a/Algoritmi_2/Laboratorio/Lab2/src/Main.java b/Algoritmi_2/Laboratorio/Lab2/src/Main.java index 85189f5..5b21021 100644 --- a/Algoritmi_2/Laboratorio/Lab2/src/Main.java +++ b/Algoritmi_2/Laboratorio/Lab2/src/Main.java @@ -5,10 +5,10 @@ import java.util.Arrays; public class Main { public static void main(String[] args) { - Graph mioGrafo = new UndirectedGraph("7; 0 4; 4 3; 1 3; 1 2; 0 2; 0 5; 5 2"); //Num Nodi + Archi + Graph mioGrafo = new UndirectedGraph("10; 0 1; 1 2; 1 5; 1 4; 2 4; 2 3; 2 4; 3 9; 5 7; 7 6"); //Num Nodi + Archi BFS mioBFS = new BFS(mioGrafo); int source = 0; - int destination = 1; + int destination = 6; System.out.println(">>> Sorgente delle Operazione: " + source); System.out.println(">>> Destinazione delle Operazione: " + destination); -- GitLab