gym-examples 3.0.43__py3-none-any.whl → 3.0.44__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 +16 -21
- {gym_examples-3.0.43.dist-info → gym_examples-3.0.44.dist-info}/METADATA +1 -1
- gym_examples-3.0.44.dist-info/RECORD +7 -0
- gym_examples-3.0.43.dist-info/RECORD +0 -7
- {gym_examples-3.0.43.dist-info → gym_examples-3.0.44.dist-info}/WHEEL +0 -0
- {gym_examples-3.0.43.dist-info → gym_examples-3.0.44.dist-info}/top_level.txt +0 -0
gym_examples/__init__.py
CHANGED
gym_examples/envs/wsn_env.py
CHANGED
@@ -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 #
|
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] =
|
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
|
-
|
148
|
-
|
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
|
-
|
308
|
-
|
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
|
@@ -0,0 +1,7 @@
|
|
1
|
+
gym_examples/__init__.py,sha256=qIKbuc3FY1hkHzkw8FzbDPnI1CoXn6KiYNCe0zG0MQo,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.44.dist-info/METADATA,sha256=0MoxuoqIDqB_-OPW9qSPtKvzT-r60xF8txnG_tHkxcg,411
|
5
|
+
gym_examples-3.0.44.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
6
|
+
gym_examples-3.0.44.dist-info/top_level.txt,sha256=rJRksoAF32M6lTLBEwYzRdo4PgtejceaNnnZ3HeY_Rk,13
|
7
|
+
gym_examples-3.0.44.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,,
|
File without changes
|
File without changes
|