gym-examples 3.0.334__py3-none-any.whl → 3.0.336__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
gym_examples/__init__.py CHANGED
@@ -5,4 +5,4 @@ register(
5
5
  entry_point="gym_examples.envs:WSNRoutingEnv",
6
6
  )
7
7
 
8
- __version__ = "3.0.334"
8
+ __version__ = "3.0.336"
@@ -54,7 +54,11 @@ class WSNRoutingEnv(gym.Env):
54
54
  def __init__(self, n_sensors = 20, coverage_radius=(upper_bound - lower_bound)/4, num_timesteps = None, version = None):
55
55
 
56
56
  super(WSNRoutingEnv, self).__init__()
57
-
57
+ # Create filenames to save statistics for evaluation
58
+ self.statistics_filename = "../results/data/Statistics_filename_" + os.getenv('ALGO_NAME') + ".txt"
59
+ with open(self.statistics_filename, 'w') as file:
60
+ file.write("Episode return, Total of energy consumption, Std of remaining energy, Mean of remaining energy, \
61
+ Average latency, Network throughput, Packet delivery ratio, Network lifetime\n")
58
62
  # Initialize list of episode metrics
59
63
  self.num_timesteps = num_timesteps # This argument is for the PPO algorithm
60
64
  self.version = version # This argument is for the PPO algorithm
@@ -86,11 +90,29 @@ class WSNRoutingEnv(gym.Env):
86
90
  self.reset()
87
91
 
88
92
  def reset(self):
93
+ if self.number_of_steps > 30000: # Change 30000 to a parameter taken from args or kwargs
94
+ self.episode_returns.append(self.episode_return)
95
+ observations = self._get_obs()
96
+ remaining_energy_values = np.array([sensor['remaining_energy'] for sensor in observations])
97
+ std_remaining_energy = np.std(remaining_energy_values)
98
+ mean_remaining_energy = np.mean(remaining_energy_values)
99
+ consumption_energy_values = np.array([sensor['consumption_energy'] for sensor in observations])
100
+ total_consumption_energy = np.sum(consumption_energy_values)
101
+
102
+ # Append the statistics to the .txt file
103
+ with open(self.statistics_filename, 'a') as file:
104
+ file.write(f"{self.episode_return}, {total_consumption_energy}, {std_remaining_energy}, {mean_remaining_energy}\
105
+ {self.average_latency}, {self.network_throughput}, {self.packet_delivery_ratio}, {self.network_lifetime}\n")
89
106
 
90
- if self.number_of_steps > 3: # Change 30000 to a parameter taken from args or kwargs
91
107
  print("Episode count: ", self.episode_count)
92
- print("get_metrics: ", self.get_metrics())
93
- print(f"self._get_obs(): {self._get_obs()}")
108
+ print("Episode return: ", self.episode_return)
109
+ print("Total consumption energy: ", total_consumption_energy)
110
+ print("Std remaining energy: ", std_remaining_energy)
111
+ print("Mean remaining energy: ", mean_remaining_energy)
112
+ print("Average latency: ", self.average_latency)
113
+ print("Network throughput: ", self.network_throughput)
114
+ print("Packet delivery ratio: ", self.packet_delivery_ratio)
115
+ print("Network lifetime: ", self.network_lifetime)
94
116
 
95
117
  self.episode_return = 0
96
118
  self.sensor_positions = np.random.rand(self.n_sensors, 2) * (upper_bound - lower_bound) + lower_bound
@@ -206,6 +228,7 @@ class WSNRoutingEnv(gym.Env):
206
228
  dones[i] = self.remaining_energy[i] <= 0 or self.number_of_packets[i] == 0
207
229
  dones = bool(np.all(dones))
208
230
 
231
+ self.episode_return += rewards
209
232
  return self._get_obs(), rewards, dones, self.get_metrics()
210
233
 
211
234
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gym-examples
3
- Version: 3.0.334
3
+ Version: 3.0.336
4
4
  Summary: A custom environment for multi-agent reinforcement learning focused on WSN routing.
5
5
  Home-page: https://github.com/gedji/CODES.git
6
6
  Author: Georges Djimefo
@@ -0,0 +1,7 @@
1
+ gym_examples/__init__.py,sha256=a2Ws3UTCWQzuNccW3gwQPx82jqZpDGK-4QIRyVobyX4,166
2
+ gym_examples/envs/__init__.py,sha256=lgMe4pyOuUTgTBUddM0iwMlETsYTwFShny6ifm8PGM8,53
3
+ gym_examples/envs/wsn_env.py,sha256=fPTN2K9Wo6N8TiL9b9CCF4MSrdyv4_h5i68haPagIkI,25556
4
+ gym_examples-3.0.336.dist-info/METADATA,sha256=b2Ib3GLoq0oMrEjqD_5EAjeD6nU5x7-YdR1MFQulHCw,412
5
+ gym_examples-3.0.336.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
6
+ gym_examples-3.0.336.dist-info/top_level.txt,sha256=rJRksoAF32M6lTLBEwYzRdo4PgtejceaNnnZ3HeY_Rk,13
7
+ gym_examples-3.0.336.dist-info/RECORD,,
@@ -1,7 +0,0 @@
1
- gym_examples/__init__.py,sha256=icrDtusfsDMkeXkb9cxtrM1qmjLBTIRXAd7bUUup2Fk,166
2
- gym_examples/envs/__init__.py,sha256=lgMe4pyOuUTgTBUddM0iwMlETsYTwFShny6ifm8PGM8,53
3
- gym_examples/envs/wsn_env.py,sha256=2bRJvedMHD4Amjk_hRvtcoaXZ4Gv_Fp7sZvhg74_KIo,23701
4
- gym_examples-3.0.334.dist-info/METADATA,sha256=MYSkA-LbZZGL6mnGAMXZTU4C3UuqHvjXZmIr7Z_ooWI,412
5
- gym_examples-3.0.334.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
6
- gym_examples-3.0.334.dist-info/top_level.txt,sha256=rJRksoAF32M6lTLBEwYzRdo4PgtejceaNnnZ3HeY_Rk,13
7
- gym_examples-3.0.334.dist-info/RECORD,,