From 9ed01abea4f2f8210d034e71684e325b86b80f9e Mon Sep 17 00:00:00 2001 From: Manuel Plonski Date: Fri, 30 Jun 2023 16:04:52 +0200 Subject: [PATCH] ich glaube ich habe es langsam gefixet --- db/commoditys.yml | 2 +- econ/__pycache__/exchange.cpython-310.pyc | Bin 7965 -> 7972 bytes .../base_distribution_agent.cpython-310.pyc | Bin 4970 -> 5069 bytes .../price_believe_distribute.cpython-310.pyc | Bin 4820 -> 4827 bytes econ/agents/base_distribution_agent.py | 5 +++++ econ/agents/price_believe_distribute.py | 5 +++-- econ/business/Price_Believe_Business.py | 9 +++++---- .../Price_Believe_Business.cpython-310.pyc | Bin 4115 -> 4169 bytes econ/exchange.py | 2 +- main.py | 2 +- 10 files changed, 16 insertions(+), 9 deletions(-) diff --git a/db/commoditys.yml b/db/commoditys.yml index f5195e2..2d6886e 100644 --- a/db/commoditys.yml +++ b/db/commoditys.yml @@ -4,7 +4,7 @@ spec: max_world_price: 100 - name: "Food" - max_world_price: 5 + max_world_price: 10 - name: "Grain" max_world_price: 5 diff --git a/econ/__pycache__/exchange.cpython-310.pyc b/econ/__pycache__/exchange.cpython-310.pyc index ed015d30a7d89c931cd20f2901c7ddf9f63f50d1..07df5ba86ee99a85322f8c3f178d35656b8a2240 100644 GIT binary patch delta 617 zcmZ9{%TE(g6bE2WX=~EU(2kQbZG{Sv1q~EPYzU=VMV2oIeb&}A)$SMJ?!5tCclZ4)c_ipk7|Ju8A>J+rcf~ zw0daV`(b?`n&g>ik@~&e=r+*=7wuP9ifGcyNG1`_@gJGcmeMCj6 zkc=U5@1peYmU>qPg#|@Pj25S*<5otT4M*yoA-z*NXesl@rdDzBUAd$#u{Wcq)2MfY s9?%5>;5HZnSuhCvU>x*=`=A6Kf=6J5kCQh4YJN`(>?W5e!-vVjIcFGyZvX%Q delta 617 zcmZ9I%}*0i6ver;)})W247Jl*XbDjhOC&Kiqy=d$%15d!j8UnTIt+G9Dxo&dE+k-F zxOa269TF23xG|bZ+_NTugdOD{aP7*K`pzT4gjxJ@a_&9v-a9)*uV}n6jBt?L`pQ?umHv~IOsG5$n&VX9l39-F%(;4rx6K_8CviUqMwNFb1hb(N&iP|m#EBkd~$DxIXNFHtTtQ2XJHw;m>|MF4w>}y6D9anERQ?W{W`I0U g0)oH-FbO;bo&nE+S3rXgQXR5+E&WnGbeMkf5AQOAMF0Q* diff --git a/econ/agents/__pycache__/base_distribution_agent.cpython-310.pyc b/econ/agents/__pycache__/base_distribution_agent.cpython-310.pyc index 68a11fc5d644890060c78f2e2c72207e638cc549..3ea6b7b4cc2c2d7b079efb49b2985e60a7834604 100644 GIT binary patch delta 796 zcmXYvPiWIn9LMuZnlw$5v@5OKS~p$Yx<$GwXxW?&5d?Lsb>bNK2f}EAD23LSD6AAb z^d<Aa zyI&u9Yq@RvEkK*Uhs&m?^d;8{?Sb?-Gn|t@0%Z9grDvHT+w^?5b(;k~1T_JXlObbOOs=XP$L{Cj;f@(WR#ZMkzM~?5zp@X3%fH+AXN1clt3Vc2q}&R(0u;Yxgemt* zd|Mgg&odLF=O}Om;mE8+dV;XZzh#Qr9g^qy-^?;x<4f7q3!&PVZfXPY2oi#}}2&W06+$5<{f@pakDo15y{yMuc-ouZ;Mwp<30k(Ma(5s3T>m#+h zhtcT)?iUk;mIW2T#C7UM4K+OXWFMXYb|p8NO55m6Y`zzD+>7{0>LBiAKdMM&e&B~V z0h(Qu^t(5Lj_0#!in2s1O_5zh3~-5d>B?xpzl^N=beY&eLWM9#s1grpSF6YnNsNK z%s+3x8+~KF1-Of!;FcJekCk03IH`UH$l&k95T7KSe2GGJTK)t zg5&s2`ytAt$!Yu|%1{Y@i5ozwqgS97Z0b#b8GL_egOzER9AQl6cV zQTl1FF^{`O4IJDvUM-#>N7EM4VBsvI&N#=&GiC^OGR{8Cj=v>dr|Ym0gy|5nQRQXU zPDKIu(VBzX_|tlNG?GmAM#z#CCN>9K5}#!*EL~w?m0+v#7~7MKtBeCVqVu5DyYD?@ zsX-VP@vAX`bJ-F!a6RkHww3Etr7066+M2w^fezymBdS}Br84ekZ;o%##!nN{phF5Q zdUG(WQPl$aqqQ9lZo{_X#)Nwc+3Fxc(@So{3y4qC;*uO3pRvr=2|}nz&-Vs&F>XOP z;`KXzukFbx4*1s#xlY?hw0xdEk6l0-hLacZa&C2}L_TRVDvT;)ma)J%&sbut5JJ5# zdwow*YolvN4OnB9j|ffIZFTSXe#`52UH8B4M&H9@k^H|3T0Y-KSB|KvmB-B3IOtd% Gd-(@xPmM_c diff --git a/econ/agents/__pycache__/price_believe_distribute.cpython-310.pyc b/econ/agents/__pycache__/price_believe_distribute.cpython-310.pyc index 35c1b31be06710eef12beb00d9c50e3bcb1b4d4d..c7839f570671d59938576698a820aed3a0ec5d1b 100644 GIT binary patch delta 685 zcmZ9Jzi-n(6vyxR&Q5H{sS{KcMf*h2jiQ)QF1*1Q&ti z&MYS}mgG-B9x40s#)hNl(u^>^3+h$Y*QG>mj3K6Lzw+^?}2rL%GdQ(uVGQW zyrXx#4s^0Z?*VMcMUvJTpL_tk5E0n@sU#Q*>R delta 565 zcmY+Azfapx5XaxW_w0nY4o*UdOhHu=(uTBDYSc7Updvt8bxI``mR2klQj63IV|A$m zs>0mm5L+cOl#K!T59ojx*_hxj=zzok8v}QSrI!5BeZTMCyC3J3(@OfAZKni%KWo3e ztI@;s5B>5Z$x!Txf#|7Fd9bGaDrq3C0~v}hD%7s%L(d2eQhH7J5Am;_*0Sp>yw)d> zj*g7i09Cv(r=b|t5;-ud^r~OO;&2Yi(Q-aNl$Hy|10#V+KTe@{fQA5#|dW~8rX6=u!CF9E^azQFQy*&Ic|A` zVK7D+i;Q{30%L+P%XotyG6m-`hw+s0f;#v;Q^{s!3Q~{+hyFAq3!~g&Q diff --git a/econ/agents/base_distribution_agent.py b/econ/agents/base_distribution_agent.py index 24353ff..5946805 100644 --- a/econ/agents/base_distribution_agent.py +++ b/econ/agents/base_distribution_agent.py @@ -23,6 +23,7 @@ class Base_Distribution_Agent(BaseAgent,ABC): self.tqty=0 self.income_offset=0 self.qty_offset=0 + self.trade_curser=0 super().__init__(simulation) def set_target(self,target: int): @@ -125,9 +126,13 @@ class Base_Distribution_Agent(BaseAgent,ABC): self.income_offset-=income_to_confirm self.qty_offset-=dis_qty self.income_offset=round(self.income_offset,2) + self.trade_curser=len(self.trades)-1 def reset(self, episode): self.qty_offset=0 + self.tqty=0 self.income_offset=0 + self.tincome=0 + self.trade_curser=0 self.trades=[] return super().reset(episode) \ No newline at end of file diff --git a/econ/agents/price_believe_distribute.py b/econ/agents/price_believe_distribute.py index 9013636..3e61bf6 100644 --- a/econ/agents/price_believe_distribute.py +++ b/econ/agents/price_believe_distribute.py @@ -24,7 +24,7 @@ class Price_Believe_Distribiute_Agent(Base_Distribution_Agent): # aquire based on current price belive cx_id = self.select_best_cx() - price = round(self.price_believe[cx_id]) + price = round(self.price_believe[cx_id],2) if price < self.min_price: price = self.min_price order = self.distribute_resource( @@ -136,6 +136,7 @@ class Price_Believe_Distribiute_Agent(Base_Distribution_Agent): def reset(self, episode): # Clean shop for today + self.update_trades() for cx_id in range(len(self.exchanges)): cx = self.exchanges[cx_id] cx_orders = self.open_orders[cx_id] @@ -144,7 +145,7 @@ class Price_Believe_Distribiute_Agent(Base_Distribution_Agent): self.collect_balance_from_cxs() self.collect_resource_from_cxs(self.resource) # book keeping - self.update_trades() + self.open_orders = {i: [] for i in range(len(self.exchanges))} self.orders = {i: {} for i in range(len(self.exchanges))} return super().reset(episode) diff --git a/econ/business/Price_Believe_Business.py b/econ/business/Price_Believe_Business.py index 3630703..5898f76 100644 --- a/econ/business/Price_Believe_Business.py +++ b/econ/business/Price_Believe_Business.py @@ -13,13 +13,13 @@ class Price_Believe_Business(Business): self.expense_per_unit = -1 self.income_per_unit = -1 self.distribute = Price_Believe_Distribiute_Agent( - simulation, self, production["name"], exchange, 0.2, 20) + simulation, self, production["name"], exchange, 0.2, 30) self.craft = AutoProductionAgent(simulation, self) self.aquire = {} for k, v in production["prod"].items(): a = Price_Believe_Aquire_Agent( - simulation, self, k, exchange, 0.2, 10) + simulation, self, k, exchange, 0.2, 5) a.set_target(v*2) a.set_price_max(10) self.aquire[k] = a @@ -47,8 +47,8 @@ class Price_Believe_Business(Business): ie = 0 if ie > 1: ie = 1 - #retain=((self.max_storage-ie*self.max_storage)*amount)-amount - retain=0 + retain=((self.max_storage-ie*self.max_storage)*amount)-amount + #retain=0 # set target for aquire @@ -124,6 +124,7 @@ class Price_Believe_Business(Business): return self.income_per_unit = qty_sold/income self.distribute.confirm_distribution(qty_sold, step) + a=self.distribute.trade_curser def close_business(self): for k, a in self.aquire.items(): diff --git a/econ/business/__pycache__/Price_Believe_Business.cpython-310.pyc b/econ/business/__pycache__/Price_Believe_Business.cpython-310.pyc index 3641e431bda9c231f8fc356a79766462be574eef..de44c4e8b53288439cdc4b113250c27908f89c1f 100644 GIT binary patch delta 881 zcmZWnOKTHR6ux&dnIw~BqBTuY)0R9+lTjDemMZGPQpIkRN+?KNgfugj(IgY^OrS!F zEiM!k7anja6%ki1q=Fl_F8UV&g5atP3;hS4b4M`68O}Fn?s?qrJfN^&NV>_S&hXj! z`PRDmIT=xsk*C^LY!KT`45C&Pib^>fd&fB&um{?1!jihhYRuH(o{~>ZW9(4v3D-IZ zqq?`PT<82Gd=EWTG!7Tk1~0&CwVJ{3@IWI>vm6^JX_Op;Z|WSs3y12;lt^K?-~oYa-giW&VL6^J zob|r%xZQff7fs7}?CO)g=QfZaT4=Ll$&qJV(AG)cPjl&zOrBt2<&hFY*0ei%Mp`ws=!gI^aq&eu3-QG delta 815 zcmY*XJ#5oZ5YBTP$8j7d4WTJXTavUSbtME*QB$#?stlbfq^e6mL~ZOwE{PqU9n_+L zkPs|IEGNN)R3>Iri3zcT#K@A3u|pRICM39f9!PAx@15@6-FJUqOHfLAsgxGMPi?%j zN*_~kDaD>EPZGn#i9S@VIFzM@y!xK8$S`uCoamO2t;lx7Ou${KsO8XiB=@;zoxYH6 zGnRpG(FfA62sGptn})aYl4MEnL$0$eh{rbP&SL1m8G(Ud>U@^uiv%;!ja{!#k$8b1 zOOPj+CLk()3BgSA0$wB859~g#!S~ooxr7Q{MrdlmF7MdEj_U;c3TXvYp{%USvZTde zUwN(0p}~}S0sbgU$?;d$;&19i)KtB`?Y15UN27$}KC<1w<3}P_lL_|m*r&haA6U6Y zWJ&Uk_Pe`hQKHbo@#C;5k=h~TUNwrChWt$%?Fe&bp-1vXdA2o_qFYb%sy+! zhKvvBY~budB{$)G^1gY zN+|OR!6e7XXm>r|ZtV?x$F+U`8T{4HSrN`t^K2G$V`hye#4jV@iWEr}dm_3gmScr< zV*8YE;5_tzdq$ZR;Hj~go22CH=qbk%g Fm46e!qxJv* diff --git a/econ/exchange.py b/econ/exchange.py index 3eeda63..c0ab438 100644 --- a/econ/exchange.py +++ b/econ/exchange.py @@ -130,7 +130,7 @@ class Exchange(): if amount<1: # invalid order return None - full_price=round(price*amount) + full_price=round(price*amount,2) # Move resources into escrow diff --git a/main.py b/main.py index 51889af..9f9c607 100644 --- a/main.py +++ b/main.py @@ -41,7 +41,7 @@ sim.reset() while len(sim.get_underutelized_prods(1))>0: sim.create_bussiness(1) #sim.reset() -for a in tqdm(range(50)): +for a in tqdm(range(100)): for i in range(100): sim.tick(100) print(f"|Stats| Num of Businesses: {len(sim.businesses)} Num Tickfunk: {len(sim.tick_funcs)} Time Agent Tick: {sim.timings['dsa']} Time Logging {sim.timings['dbl']}")