gym-examples 3.0.48__py3-none-any.whl → 3.0.49__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 +13 -13
- {gym_examples-3.0.48.dist-info → gym_examples-3.0.49.dist-info}/METADATA +1 -1
- gym_examples-3.0.49.dist-info/RECORD +7 -0
- gym_examples-3.0.48.dist-info/RECORD +0 -7
- {gym_examples-3.0.48.dist-info → gym_examples-3.0.49.dist-info}/WHEEL +0 -0
- {gym_examples-3.0.48.dist-info → gym_examples-3.0.49.dist-info}/top_level.txt +0 -0
gym_examples/__init__.py
CHANGED
gym_examples/envs/wsn_env.py
CHANGED
@@ -253,7 +253,7 @@ class WSNRoutingEnv(gym.Env):
|
|
253
253
|
max_transmission_energy = self.transmission_energy(self.n_sensors * initial_number_of_packets, self.coverage_radius)
|
254
254
|
max_reception_energy = self.reception_energy(self.n_sensors * initial_number_of_packets)
|
255
255
|
max_total_energy = max_transmission_energy + max_reception_energy
|
256
|
-
normalized_total_energy = total_energy / max_total_energy
|
256
|
+
normalized_total_energy = total_energy / (max_total_energy + self.epsilon)
|
257
257
|
|
258
258
|
return np.clip(1 - normalized_total_energy, 0, 1)
|
259
259
|
|
@@ -264,7 +264,7 @@ class WSNRoutingEnv(gym.Env):
|
|
264
264
|
dispersion_remaining_energy = np.std(self.remaining_energy)
|
265
265
|
# Normalize the standard deviation of the remaining energy
|
266
266
|
max_dispersion_remaining_energy = initial_energy / 2 # maximum standard deviation of the remaining energy if n_sensors is even
|
267
|
-
normalized_dispersion_remaining_energy = dispersion_remaining_energy / max_dispersion_remaining_energy
|
267
|
+
normalized_dispersion_remaining_energy = dispersion_remaining_energy / (max_dispersion_remaining_energy + self.epsilon)
|
268
268
|
|
269
269
|
return np.clip(1 - normalized_dispersion_remaining_energy, 0, 1)
|
270
270
|
|
@@ -276,7 +276,7 @@ class WSNRoutingEnv(gym.Env):
|
|
276
276
|
if action == self.n_sensors:
|
277
277
|
normalized_number_of_packets = 0
|
278
278
|
else:
|
279
|
-
normalized_number_of_packets = self.number_of_packets[action] / max_number_of_packets
|
279
|
+
normalized_number_of_packets = self.number_of_packets[action] / (max_number_of_packets + self.epsilon)
|
280
280
|
|
281
281
|
return np.clip(1 - normalized_number_of_packets, 0, 1)
|
282
282
|
|
@@ -310,7 +310,7 @@ class WSNRoutingEnv(gym.Env):
|
|
310
310
|
dispersion_remaining_energy = np.std(self.remaining_energy)
|
311
311
|
# Normalize the standard deviation of the remaining energy
|
312
312
|
max_dispersion_remaining_energy = initial_energy / 2 # maximum standard deviation of the remaining energy if n_sensors is even
|
313
|
-
normalized_dispersion_remaining_energy = dispersion_remaining_energy / max_dispersion_remaining_energy
|
313
|
+
normalized_dispersion_remaining_energy = dispersion_remaining_energy / (max_dispersion_remaining_energy + self.epsilon)
|
314
314
|
|
315
315
|
return np.clip(1 - normalized_dispersion_remaining_energy, 0, 1)
|
316
316
|
|
@@ -321,7 +321,7 @@ class WSNRoutingEnv(gym.Env):
|
|
321
321
|
total_energy = self.n_sensors * initial_energy - np.sum(self.remaining_energy)
|
322
322
|
# Normalize the total energy consumption
|
323
323
|
max_total_energy = self.n_sensors * initial_energy
|
324
|
-
normalized_total_energy = total_energy / max_total_energy
|
324
|
+
normalized_total_energy = total_energy / (max_total_energy + self.epsilon)
|
325
325
|
|
326
326
|
return np.clip(1 - normalized_total_energy, 0, 1)
|
327
327
|
|
@@ -329,7 +329,7 @@ class WSNRoutingEnv(gym.Env):
|
|
329
329
|
'''
|
330
330
|
Compute the reward based on the packet delivery ratio
|
331
331
|
'''
|
332
|
-
packet_delivery_ratio = self.packets_delivered / self.total_packets_sent_by_sensors if self.total_packets_sent_by_sensors > 0 else 0
|
332
|
+
packet_delivery_ratio = self.packets_delivered / (self.total_packets_sent_by_sensors + self.epsilon) if self.total_packets_sent_by_sensors > 0 else 0
|
333
333
|
return np.clip(packet_delivery_ratio, 0, 1)
|
334
334
|
|
335
335
|
def compute_reward_latency(self):
|
@@ -338,7 +338,7 @@ class WSNRoutingEnv(gym.Env):
|
|
338
338
|
'''
|
339
339
|
# Normalize the average latency
|
340
340
|
max_latency = self.n_sensors * self.steps
|
341
|
-
normalized_latency = self.total_latency / max_latency
|
341
|
+
normalized_latency = self.total_latency / (max_latency + self.epsilon)
|
342
342
|
|
343
343
|
return np.clip(1 - normalized_latency, 0, 1)
|
344
344
|
|
@@ -346,9 +346,9 @@ class WSNRoutingEnv(gym.Env):
|
|
346
346
|
'''
|
347
347
|
Compute the reward based on the network throughput
|
348
348
|
'''
|
349
|
-
network_throughput = self.packets_delivered / self.steps if self.steps > 0 else 0
|
349
|
+
network_throughput = self.packets_delivered / (self.steps + self.epsilon) if self.steps > 0 else 0
|
350
350
|
maximum_throughput = self.n_sensors * initial_number_of_packets
|
351
|
-
normalized_throughput = network_throughput / maximum_throughput
|
351
|
+
normalized_throughput = network_throughput / (maximum_throughput + self.epsilon)
|
352
352
|
return np.clip(normalized_throughput, 0, 1)
|
353
353
|
|
354
354
|
|
@@ -382,15 +382,15 @@ class WSNRoutingEnv(gym.Env):
|
|
382
382
|
|
383
383
|
def get_metrics(self):
|
384
384
|
# Calculate network throughput
|
385
|
-
self.network_throughput = self.packets_delivered / self.steps if self.steps > 0 else 0
|
385
|
+
self.network_throughput = self.packets_delivered / (self.steps + self.epsilon) if self.steps > 0 else 0
|
386
386
|
# Calculate energy efficiency
|
387
|
-
self.energy_efficiency = self.packets_delivered / self.total_energy_consumed if self.total_energy_consumed > 0 else 0
|
387
|
+
self.energy_efficiency = self.packets_delivered / (self.total_energy_consumed + self.epsilon) if self.total_energy_consumed > 0 else 0
|
388
388
|
# Calculate packet delivery ratio
|
389
|
-
self.packet_delivery_ratio = self.packets_delivered / self.total_packets_sent_by_sensors if self.total_packets_sent_by_sensors > 0 else 0
|
389
|
+
self.packet_delivery_ratio = self.packets_delivered / (self.total_packets_sent_by_sensors + self.epsilon) if self.total_packets_sent_by_sensors > 0 else 0
|
390
390
|
# Calculate network lifetime
|
391
391
|
self.network_lifetime = self.first_node_dead_time if self.first_node_dead_time is not None else self.steps
|
392
392
|
# Calculate average latency
|
393
|
-
self.average_latency = self.total_latency / self.packets_delivered if self.packets_delivered > 0 else 0
|
393
|
+
self.average_latency = self.total_latency / (self.packets_delivered + self.epsilon) if self.packets_delivered > 0 else 0
|
394
394
|
|
395
395
|
return {
|
396
396
|
"network_throughput": self.network_throughput,
|
@@ -0,0 +1,7 @@
|
|
1
|
+
gym_examples/__init__.py,sha256=kLKssrjnaeFOFJ1ors1hcg4zveeEAFGrpuK_idNHjpI,193
|
2
|
+
gym_examples/envs/__init__.py,sha256=lgMe4pyOuUTgTBUddM0iwMlETsYTwFShny6ifm8PGM8,53
|
3
|
+
gym_examples/envs/wsn_env.py,sha256=z_q_zEz2l8qhFcAfUMS8Pt6jp74bn7Zyj1ND7clNjWg,19846
|
4
|
+
gym_examples-3.0.49.dist-info/METADATA,sha256=QqU80pNoPfWZkckvgwF9JWywF5qDhZIIoNtyGFXetI4,411
|
5
|
+
gym_examples-3.0.49.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
6
|
+
gym_examples-3.0.49.dist-info/top_level.txt,sha256=rJRksoAF32M6lTLBEwYzRdo4PgtejceaNnnZ3HeY_Rk,13
|
7
|
+
gym_examples-3.0.49.dist-info/RECORD,,
|
@@ -1,7 +0,0 @@
|
|
1
|
-
gym_examples/__init__.py,sha256=ZehSlz7OTIZqRjGB9S80rgzaj53-KcgOU7ejr9ugqts,193
|
2
|
-
gym_examples/envs/__init__.py,sha256=lgMe4pyOuUTgTBUddM0iwMlETsYTwFShny6ifm8PGM8,53
|
3
|
-
gym_examples/envs/wsn_env.py,sha256=E8T8JqXFAQDfCrgBwVk4bibgg7v3d5pqNhxCM-aZXDo,19625
|
4
|
-
gym_examples-3.0.48.dist-info/METADATA,sha256=_bmDbz-c9noRL-J7USttwAi02WKWq13A-fiq6JpPA2s,411
|
5
|
-
gym_examples-3.0.48.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
6
|
-
gym_examples-3.0.48.dist-info/top_level.txt,sha256=rJRksoAF32M6lTLBEwYzRdo4PgtejceaNnnZ3HeY_Rk,13
|
7
|
-
gym_examples-3.0.48.dist-info/RECORD,,
|
File without changes
|
File without changes
|