gym-examples 3.0.43__py3-none-any.whl → 3.0.45__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.43"
9
+ __version__ = "3.0.45"
@@ -10,7 +10,7 @@ import torch.nn as nn
10
10
  import torch.nn.functional as F
11
11
 
12
12
  # Define the network parameters for the final reward function
13
- input_dim = 7 # lenght of the individual rewards vector
13
+ # input_dim = 7 # length of the individual rewards vector
14
14
  output_dim = 1 # final reward
15
15
 
16
16
  Eelec = 50e-9 # energy consumption per bit in joules
@@ -90,8 +90,6 @@ class WSNRoutingEnv(gym.Env):
90
90
  self.steps += 1
91
91
  rewards = [0] * self.n_sensors
92
92
  dones = [False] * self.n_sensors
93
- # if self.episode_count >= 599:
94
- # print(f"Step {self.steps} with actions = {actions}")
95
93
  for i, action in enumerate(actions):
96
94
  if action not in range(self.n_sensors + 1):
97
95
  raise ValueError("Invalid action!")
@@ -123,7 +121,7 @@ class WSNRoutingEnv(gym.Env):
123
121
  self.total_latency += self.packet_latency[i] + latency_per_hop
124
122
  self.packet_latency[i] = 0
125
123
 
126
- rewards[i] = np.ones(input_dim) # input_dim should be equal to the number of individual rewards
124
+ rewards[i] = self.compute_individual_rewards(i, action)
127
125
  dones[i] = True
128
126
  else:
129
127
  distance = np.linalg.norm(self.sensor_positions[i] - self.sensor_positions[action])
@@ -144,14 +142,8 @@ class WSNRoutingEnv(gym.Env):
144
142
  self.packet_latency[action] += self.packet_latency[i] + latency_per_hop
145
143
  self.packet_latency[i] = 0
146
144
 
147
- # Compute individual rewards
148
- rewards[i] = self.compute_individual_rewards(i, action)
149
- reward_latency = self.compute_reward_latency()
150
- reward_network_throughput = self.compute_reward_network_throughput()
151
- reward_packet_delivery_ratio = self.compute_reward_packet_delivery_ratio()
152
-
153
- rewards[i] = np.append(rewards[i], [reward_latency, reward_network_throughput, reward_packet_delivery_ratio])
154
- print(f"Rewards for sensor {i}: {rewards[i]}")
145
+ rewards[i] = self.compute_individual_rewards(i, action)
146
+
155
147
  # Update the number of packets
156
148
  self.number_of_packets[action] += self.number_of_packets[i]
157
149
  self.number_of_packets[i] = 0 # Reset the number of packets of the sensor i
@@ -172,12 +164,6 @@ class WSNRoutingEnv(gym.Env):
172
164
 
173
165
  self.get_metrics()
174
166
 
175
- # reward_packet_delivery_ratio = self.compute_reward_packet_delivery_ratio()
176
- # reward_latency = self.compute_reward_latency()
177
- # rewards_metrics = [reward_packet_delivery_ratio, reward_latency]
178
- # rewards_metrics = self.compute_attention_rewards(rewards_metrics)
179
- # rewards = [torch.tensor(r, dtype=torch.float64) + rewards_metrics if isinstance(r, int) else r + rewards_metrics for r in rewards]
180
-
181
167
  return self._get_obs(), rewards, dones, {}
182
168
 
183
169
  def _get_obs(self):
@@ -298,15 +284,24 @@ class WSNRoutingEnv(gym.Env):
298
284
  '''
299
285
  Compute the individual rewards
300
286
  '''
287
+ #-- rewards related to the energy consumption minimization and energy balance
301
288
  reward_angle = self.compute_reward_angle(i, action)
302
289
  # reward_distance = self.compute_reward_distance(i, action)
303
290
  reward_consumption_energy = self.compute_reward_consumption_energy(i, action)
304
291
  reward_dispersion_remaining_energy = self.compute_reward_dispersion_remaining_energy()
305
292
  reward_number_of_packets = self.compute_reward_number_of_packets(action)
306
293
 
307
- return [reward_angle, reward_consumption_energy, reward_dispersion_remaining_energy, reward_number_of_packets]
308
- # return [reward_consumption_energy, reward_dispersion_remaining_energy]
309
-
294
+ rewards_energy = np.array([reward_angle, reward_consumption_energy, reward_dispersion_remaining_energy, reward_number_of_packets])
295
+
296
+ #-- rewards related to the performance metrics
297
+ reward_latency = self.compute_reward_latency()
298
+ reward_network_throughput = self.compute_reward_network_throughput()
299
+ reward_packet_delivery_ratio = self.compute_reward_packet_delivery_ratio()
300
+
301
+ rewards_performance = np.array([reward_latency, reward_network_throughput, reward_packet_delivery_ratio])
302
+
303
+ return np.concatenate((rewards_energy, rewards_performance))
304
+
310
305
  def network_reward_dispersion_remaining_energy(self):
311
306
  '''
312
307
  Compute the reward based on the standard deviation of the remaining energy at the network level
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gym-examples
3
- Version: 3.0.43
3
+ Version: 3.0.45
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=jHkqSzVWpJBxw3lveDZRAlJn9tKBUizPSQm4q4Ec1MI,193
2
+ gym_examples/envs/__init__.py,sha256=lgMe4pyOuUTgTBUddM0iwMlETsYTwFShny6ifm8PGM8,53
3
+ gym_examples/envs/wsn_env.py,sha256=BA0zRUuNy104AHvJIcSV68AxZ9BC-gouJJGWYpbC_Jo,19592
4
+ gym_examples-3.0.45.dist-info/METADATA,sha256=r7wWW-D1S5N1xGMhPi9eLXjHdvAOzAMOcpXLhWHs5bE,411
5
+ gym_examples-3.0.45.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
6
+ gym_examples-3.0.45.dist-info/top_level.txt,sha256=rJRksoAF32M6lTLBEwYzRdo4PgtejceaNnnZ3HeY_Rk,13
7
+ gym_examples-3.0.45.dist-info/RECORD,,
@@ -1,7 +0,0 @@
1
- gym_examples/__init__.py,sha256=v16UW-Z-uwXvUYm4QHBNqhWNXR60wfJm4p2JkJlUz78,193
2
- gym_examples/envs/__init__.py,sha256=lgMe4pyOuUTgTBUddM0iwMlETsYTwFShny6ifm8PGM8,53
3
- gym_examples/envs/wsn_env.py,sha256=MXuHoi82JRleOBG5aXpUjlf58L_QeXCBeWNSceyBcGA,20145
4
- gym_examples-3.0.43.dist-info/METADATA,sha256=zyEgD6YW1AooTqez0qIsvvApqcqswdHfMtzQJ0V0TAQ,411
5
- gym_examples-3.0.43.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
6
- gym_examples-3.0.43.dist-info/top_level.txt,sha256=rJRksoAF32M6lTLBEwYzRdo4PgtejceaNnnZ3HeY_Rk,13
7
- gym_examples-3.0.43.dist-info/RECORD,,