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 CHANGED
@@ -6,4 +6,4 @@ register(
6
6
  max_episode_steps=50,
7
7
  )
8
8
 
9
- __version__ = "3.0.48"
9
+ __version__ = "3.0.49"
@@ -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,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gym-examples
3
- Version: 3.0.48
3
+ Version: 3.0.49
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=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,,