From 81be7dad34367d86df5bf2d2b480e3c3bc124cdc Mon Sep 17 00:00:00 2001 From: aristidecod <sie.ouattara@etu.univ-amu.fr> Date: Tue, 21 Jan 2025 22:17:19 +0100 Subject: [PATCH] try to implement solutionFractionnelle --- .idea/misc.xml | 2 +- out/production/aroTP2/App.class | Bin 682 -> 728 bytes out/production/aroTP2/InstanceReader.class | Bin 2335 -> 2335 bytes out/production/aroTP2/Loot.class | Bin 881 -> 1009 bytes src/App.java | 3 ++- src/Backpack.java | 30 +++++++++++++++++++++ src/InstanceReader.java | 1 - src/Loot.java | 16 ++++++++++- 8 files changed, 48 insertions(+), 4 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index a346fd7..1b2d693 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> - <component name="ProjectRootManager" version="2" languageLevel="JDK_18" default="true" project-jdk-name="18" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_22" default="true" project-jdk-name="22" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/out" /> </component> </project> \ No newline at end of file diff --git a/out/production/aroTP2/App.class b/out/production/aroTP2/App.class index f3dffbcc762d201aabffbb6ae573bd035da8db2d..f385ca79a766fbfe129b15dfa2d50392d0a867a1 100644 GIT binary patch delta 295 zcmZ3*dV`hg)W2Q(7#J9w7>p-!br^Fo2r>w<GYIoAh%m4*GH^I0CTABUCTBA;a2Mwn zl{i%fC6;97b25lAh_f?D@GwX+NKKq?%q_zp%g!Lj!ywO~F!8Pxqtavv#^sC#lMgT& z)+;hFF@OLQ10w?~0~-S)gE9jHgFXWz10w?i1FP0{2F8sH3=B*RDhv!@X$A&n22}<I z1|En41~mqC1_lOB1`P&H1}3oPNCqabp_029*dw<ya0+p4W8m@8-o_xXi9u9*8-p~$ zKp`gv7LYXzybNp%f(+~o5)2$*)5RbrFlaGoGcYjlGVn0yFz7NcGUzcdFt9K%f*oiG Hc9#(VumdBR delta 250 zcmcb?x{8(S)W2Q(7#JAr81yD`b?|aB2r>w<GYIoAh%kswJZj7>&LF|gAj!iZ#UMSI znbC?-cCsDgaz^dR&lnBsWf+(kK!AyXk%5(gje(Itj)8$epMjBqk%57MRcku~<3<Js z1||l11_rP+0|PUI0s{jB4@3cjB7+hG0|O_6GJ^^O6IgQ~0~6R#(cKK}k=q$Kg}Amc z@c3+E5YXPnAcioEkAazi!HR*EftP`eL4<)FY^oSUCxa@38Uq6ZF9QdII)erSBZDRb S0|N^KBZC$LBZCguJ-Pt$h8Z0I diff --git a/out/production/aroTP2/InstanceReader.class b/out/production/aroTP2/InstanceReader.class index bcce837946a70025a3a851972fc22b8e964e1cc4..9a1d5b11a0914dac9a5b1a1a0bdda4d0958bdced 100644 GIT binary patch delta 115 zcmbO)G+&70)W2Q(7#J9wHgZ(3+6pifFfxd0_+%xPCF<uS=B4ZVCuOB3mso3t@v|`$ zaWVKZ6!S2oGh_%baPzY<lyNbXGgPoMRPr!XF;s7!$jZdHc|V&wlVm9aGebT@Awvm6 T4FdxM7Xu?hEkiv+BZDLW)BzfJ delta 116 zcmbO)G+&70)W2Q(7#JArHgZ(33i7it6mT&VG8C~h6!S2YFqCfI%gV&4BfwD3$RMiW zla*MOsGpOVm#*)hl$DxXVyzj*&&E*6#o)_O#lw)!kRiapy?H;IJCkHS12aPzLj^-M ULk$B10~Z4$LoGu+LnDJE0Krijpa1{> diff --git a/out/production/aroTP2/Loot.class b/out/production/aroTP2/Loot.class index 677c206f5b43a39187728543b3333c45abeee666..07f1b7ef8b118f561e0965b6f117e4420a682f7c 100644 GIT binary patch delta 497 zcmey!_K}_I)W2Q(7#J9w7>p-!B{_03a4-n+FbFXSGcvFiC6;97Gcqu`2{AA*i1ILq zF^DrVi039|r#k27B`21IXO?6*=jRodB<7VAGct&4czU``oL0-vk)B!-1kuZ^q3JeR zkWoj5gF%gvft68#QGt=4jX{HpL6bp?ok1I9sLo_R#zR7k3_PBBd8tLtIf=!^sm1IJ z`jfSpv{(!o8RRDGG09CXXA-JsW?*38X5e7}0e&bg#30PTz`)GF$iT`V!NABM$-uyn z#=y(~QY)dgoq<tHdMg9FmdsWLUM=Z1nYO&G3<4V&7#Nrsq!<_o^7#LU?SQywC zI2qU(_!u}C#2Gjlq!}0(6d-0W$S}x)EM$<V2V2g_z`!8E0J5HmfssLuK^|(U4cHM3 z3_@C47}&M8Fz{+^VG!8GAi}_~0d5@|14uUy*mxc=TL@}ABZC5iBGe>(21c+PE69X( z2+a;)Q2`{~tWe#|3`$^S$_y$D3=A9$j11}wj0~y_x(o~qTnvm1dJF~(MhubwW92%g delta 343 zcmey!{*jIA)W2Q(7#JAr7<4CcC2<KcFfa)6FbFXSPwbIl5!3MWoVd1jvNfZYAU_*} z0vCfKgAzM~GDv~S<VMCravTh5j10_-3XF^lJf3-ZsYT8?iN(dK#q124j0~!i*D|Uy zvomN<ZeTL5XJTMr;AY@q00Dk5&BVaSz{()Pz{nuVz`zj6z{J4Jz`($-wVi=cOL{8< zyOzvW2HuSf3=B*RVhjunLJTYn3=Av`EDWp+oD6IXd<^Ui;tUK73J`4!5)6_cvl;lo z)-ZyMVgOkLvPOy_QyOZI1p`Qcfq_qJ3j@2>76#s33<3-c8{pQkF@UskfsN(?v-zM# pGc(A5Rmn2QF)%Q2FfcO6GcYo!GN>~!FmN$2GH5VpG3YQz0swR1BYFS; diff --git a/src/App.java b/src/App.java index 919c748..7aa8157 100644 --- a/src/App.java +++ b/src/App.java @@ -3,6 +3,7 @@ import java.util.List; public class App { public static void main(String[] args) throws Exception { Backpack backpack= new InstanceReader().read("src/sac0"); - System.out.println(backpack); + backpack.sortByRatio(); + System.out.println(backpack); } } diff --git a/src/Backpack.java b/src/Backpack.java index 121d485..10ba315 100644 --- a/src/Backpack.java +++ b/src/Backpack.java @@ -1,8 +1,11 @@ +import java.util.Comparator; import java.util.List; public class Backpack { int capacity; List<Loot> loots; + int sfValuee = 0; + int sfWeight = 0; public Backpack(int capacity, List<Loot> loots) { this.capacity = capacity; @@ -12,4 +15,31 @@ public class Backpack { public String toString(){ return capacity +"\n"+loots; } + + /** + Méthode pour trier les objets par ordre décroissant selon leur ratio + */ + public void sortByRatio(){ + loots.sort(Comparator.comparing(Loot::getRatio).reversed()); + } + + public void solutionFractionnelle(){ + this.sortByRatio(); + + for(Loot loot : loots){ + if(loot.getWeight() > this.capacity){ + sfValuee += (loot.getValue() * loot.getWeight()) / (capacity - sfWeight); + sfWeight += capacity; + } + else { + sfValuee += loot.getWeight(); + sfWeight += loot.getWeight(); + } + } + } + + public int getSfValuee() { + return sfValuee; + } + } diff --git a/src/InstanceReader.java b/src/InstanceReader.java index 58e01ae..1724721 100644 --- a/src/InstanceReader.java +++ b/src/InstanceReader.java @@ -23,5 +23,4 @@ public class InstanceReader { return new Backpack(capacity,loots); } - } diff --git a/src/Loot.java b/src/Loot.java index 46c20c0..e2a85e0 100644 --- a/src/Loot.java +++ b/src/Loot.java @@ -1,12 +1,26 @@ public class Loot { int weight, value; + float ratio; public Loot(int weight, int value) { this.weight = weight; this.value = value; + this.ratio = (float) weight/value; } public String toString(){ - return weight+" "+value; + return weight+" "+value+" "+ratio; + } + + public float getRatio(){ + return ratio; + } + + public int getWeight(){ + return weight; + } + + public int getValue(){ + return value; } } -- GitLab