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 +1 -1
- gym_examples/envs/wsn_env.py +27 -4
- {gym_examples-3.0.334.dist-info → gym_examples-3.0.336.dist-info}/METADATA +1 -1
- gym_examples-3.0.336.dist-info/RECORD +7 -0
- gym_examples-3.0.334.dist-info/RECORD +0 -7
- {gym_examples-3.0.334.dist-info → gym_examples-3.0.336.dist-info}/WHEEL +0 -0
- {gym_examples-3.0.334.dist-info → gym_examples-3.0.336.dist-info}/top_level.txt +0 -0
gym_examples/__init__.py
CHANGED
gym_examples/envs/wsn_env.py
CHANGED
@@ -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("
|
93
|
-
print(
|
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
|
|
@@ -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,,
|
File without changes
|
File without changes
|