gym-examples 3.0.10__py3-none-any.whl → 3.0.12__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 +23 -12
- {gym_examples-3.0.10.dist-info → gym_examples-3.0.12.dist-info}/METADATA +1 -1
- gym_examples-3.0.12.dist-info/RECORD +7 -0
- gym_examples-3.0.10.dist-info/RECORD +0 -7
- {gym_examples-3.0.10.dist-info → gym_examples-3.0.12.dist-info}/WHEEL +0 -0
- {gym_examples-3.0.10.dist-info → gym_examples-3.0.12.dist-info}/top_level.txt +0 -0
gym_examples/__init__.py
CHANGED
gym_examples/envs/wsn_env.py
CHANGED
@@ -83,6 +83,12 @@ class WSNRoutingEnv(gym.Env):
|
|
83
83
|
self.packet_latency = np.zeros(self.n_sensors) # Latency for each packet
|
84
84
|
self.total_packets_sent_by_sensors = 0
|
85
85
|
|
86
|
+
self.network_throughput = None
|
87
|
+
self.energy_efficiency = None
|
88
|
+
self.packet_delivery_ratio = None
|
89
|
+
self.network_lifetime = None
|
90
|
+
self.average_latency = None
|
91
|
+
|
86
92
|
return self._get_obs()
|
87
93
|
|
88
94
|
def step(self, actions):
|
@@ -167,14 +173,19 @@ class WSNRoutingEnv(gym.Env):
|
|
167
173
|
if self.first_node_dead_time is None and np.any(self.remaining_energy <= 0):
|
168
174
|
self.first_node_dead_time = self.steps
|
169
175
|
|
176
|
+
self.get_metrics()
|
177
|
+
|
170
178
|
return self._get_obs(), rewards, dones, {}
|
171
179
|
|
172
180
|
def _get_obs(self):
|
181
|
+
|
182
|
+
performance = self.get_metrics()
|
183
|
+
|
173
184
|
return [{'remaining_energy': np.array([e]),
|
174
185
|
'consumption_energy': np.array([initial_energy - e]),
|
175
186
|
'sensor_positions': p,
|
176
|
-
'number_of_packets': np.array([d])
|
177
|
-
|
187
|
+
'number_of_packets': np.array([d])
|
188
|
+
} for e, p, d in zip(self.remaining_energy, self.sensor_positions, self.number_of_packets)]
|
178
189
|
|
179
190
|
def _get_observation_space(self):
|
180
191
|
return Dict({
|
@@ -330,20 +341,20 @@ class WSNRoutingEnv(gym.Env):
|
|
330
341
|
|
331
342
|
def get_metrics(self):
|
332
343
|
# Calculate network throughput
|
333
|
-
network_throughput = self.packets_delivered / self.steps if self.steps > 0 else 0
|
344
|
+
self.network_throughput = self.packets_delivered / self.steps if self.steps > 0 else 0
|
334
345
|
# Calculate energy efficiency
|
335
|
-
energy_efficiency = self.packets_delivered / self.total_energy_consumed if self.total_energy_consumed > 0 else 0
|
346
|
+
self.energy_efficiency = self.packets_delivered / self.total_energy_consumed if self.total_energy_consumed > 0 else 0
|
336
347
|
# Calculate packet delivery ratio
|
337
|
-
packet_delivery_ratio = self.packets_delivered / self.total_packets_sent_by_sensors if self.total_packets_sent_by_sensors > 0 else 0
|
348
|
+
self.packet_delivery_ratio = self.packets_delivered / self.total_packets_sent_by_sensors if self.total_packets_sent_by_sensors > 0 else 0
|
338
349
|
# Calculate network lifetime
|
339
|
-
network_lifetime = self.first_node_dead_time if self.first_node_dead_time is not None else self.steps
|
350
|
+
self.network_lifetime = self.first_node_dead_time if self.first_node_dead_time is not None else self.steps
|
340
351
|
# Calculate average latency
|
341
|
-
average_latency = self.total_latency / self.packets_delivered if self.packets_delivered > 0 else 0
|
352
|
+
self.average_latency = self.total_latency / self.packets_delivered if self.packets_delivered > 0 else 0
|
342
353
|
|
343
354
|
return {
|
344
|
-
"network_throughput": network_throughput,
|
345
|
-
"energy_efficiency": energy_efficiency,
|
346
|
-
"packet_delivery_ratio": packet_delivery_ratio,
|
347
|
-
"network_lifetime": network_lifetime,
|
348
|
-
"average_latency": average_latency
|
355
|
+
"network_throughput": self.network_throughput,
|
356
|
+
"energy_efficiency": self.energy_efficiency,
|
357
|
+
"packet_delivery_ratio": self.packet_delivery_ratio,
|
358
|
+
"network_lifetime": self.network_lifetime,
|
359
|
+
"average_latency": self.average_latency
|
349
360
|
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
gym_examples/__init__.py,sha256=kcZhlTThwzjMoXcErF9Rpjo73RBaXYxCJXEKmNW1Stw,193
|
2
|
+
gym_examples/envs/__init__.py,sha256=lgMe4pyOuUTgTBUddM0iwMlETsYTwFShny6ifm8PGM8,53
|
3
|
+
gym_examples/envs/wsn_env.py,sha256=LcfTSNY6AKL-gW5adcmS9T2aOxerBuFPl8AVGaeRH50,17904
|
4
|
+
gym_examples-3.0.12.dist-info/METADATA,sha256=nT5ITiPaKcPghJtG2m_47AHIE7f6olO5pVxB-xPNGNQ,411
|
5
|
+
gym_examples-3.0.12.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
6
|
+
gym_examples-3.0.12.dist-info/top_level.txt,sha256=rJRksoAF32M6lTLBEwYzRdo4PgtejceaNnnZ3HeY_Rk,13
|
7
|
+
gym_examples-3.0.12.dist-info/RECORD,,
|
@@ -1,7 +0,0 @@
|
|
1
|
-
gym_examples/__init__.py,sha256=RBpA4jzbyv6IceDsSXiR6P-U6Aj3OvlZ7eCOQr7F7j0,193
|
2
|
-
gym_examples/envs/__init__.py,sha256=lgMe4pyOuUTgTBUddM0iwMlETsYTwFShny6ifm8PGM8,53
|
3
|
-
gym_examples/envs/wsn_env.py,sha256=xg4nJw0EyK3_Vt4vJpyhEIG44FnpFPSOiSsQM1KxDt8,17613
|
4
|
-
gym_examples-3.0.10.dist-info/METADATA,sha256=xmZDjTODWMEFRTJHb9bQPAzvMw9NP7yYRWFIfFKqQCA,411
|
5
|
-
gym_examples-3.0.10.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
6
|
-
gym_examples-3.0.10.dist-info/top_level.txt,sha256=rJRksoAF32M6lTLBEwYzRdo4PgtejceaNnnZ3HeY_Rk,13
|
7
|
-
gym_examples-3.0.10.dist-info/RECORD,,
|
File without changes
|
File without changes
|