gym-examples 2.0.80__py3-none-any.whl → 2.0.81__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 +15 -9
- {gym_examples-2.0.80.dist-info → gym_examples-2.0.81.dist-info}/METADATA +1 -1
- gym_examples-2.0.81.dist-info/RECORD +7 -0
- gym_examples-2.0.80.dist-info/RECORD +0 -7
- {gym_examples-2.0.80.dist-info → gym_examples-2.0.81.dist-info}/WHEEL +0 -0
- {gym_examples-2.0.80.dist-info → gym_examples-2.0.81.dist-info}/top_level.txt +0 -0
gym_examples/__init__.py
CHANGED
gym_examples/envs/wsn_env.py
CHANGED
@@ -57,7 +57,7 @@ class WSNRoutingEnv(gym.Env):
|
|
57
57
|
self.episode_count = 0
|
58
58
|
self.scale_displacement = 0.01 * (upper_bound - lower_bound) # scale of the random displacement of the sensors
|
59
59
|
self.epsilon = 1e-10 # small value to avoid division by zero
|
60
|
-
self.rewards_individual = [0] * self.n_sensors
|
60
|
+
# self.rewards_individual = [0] * self.n_sensors
|
61
61
|
# Initialize the position of the sensors randomly
|
62
62
|
self.sensor_positions = np.random.rand(self.n_sensors, 2) * (upper_bound - lower_bound) + lower_bound
|
63
63
|
self.distance_to_base = np.linalg.norm(self.sensor_positions - base_station_position, axis=1)
|
@@ -75,11 +75,11 @@ class WSNRoutingEnv(gym.Env):
|
|
75
75
|
def reset(self):
|
76
76
|
# print individual rewards
|
77
77
|
|
78
|
-
if self.rewards_individual != []:
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
78
|
+
# if self.rewards_individual != []:
|
79
|
+
# print("\n=================================================")
|
80
|
+
# print(f"Episode: {self.episode_count}")
|
81
|
+
# print(f"Rewards: {self.rewards_individual}")
|
82
|
+
# print("=================================================\n")
|
83
83
|
# Initialize remaining energy of each sensor to initial_energy joule
|
84
84
|
self.remaining_energy = np.ones(self.n_sensors) * initial_energy
|
85
85
|
self.consumption_energy = np.zeros(self.n_sensors)
|
@@ -89,7 +89,7 @@ class WSNRoutingEnv(gym.Env):
|
|
89
89
|
|
90
90
|
def step(self, actions):
|
91
91
|
rewards = [0] * self.n_sensors
|
92
|
-
self.rewards_individual = [0] * self.n_sensors
|
92
|
+
# self.rewards_individual = [0] * self.n_sensors
|
93
93
|
dones = [False] * self.n_sensors
|
94
94
|
for i, action in enumerate(actions):
|
95
95
|
|
@@ -106,6 +106,9 @@ class WSNRoutingEnv(gym.Env):
|
|
106
106
|
continue # Skip if sensor tries to transmit data to itself
|
107
107
|
|
108
108
|
if action == self.n_sensors:
|
109
|
+
if self.distance_to_base[i] > self.coverage_radius:
|
110
|
+
continue # Skip if the distance to the base station is greater than the coverage radius
|
111
|
+
|
109
112
|
# Calculate the energy consumption and remaining for transmitting data to the base station
|
110
113
|
transmission_energy = self.transmission_energy(self.number_of_packets[i], self.distance_to_base[i])
|
111
114
|
self.update_sensor_energies(i, transmission_energy)
|
@@ -113,6 +116,9 @@ class WSNRoutingEnv(gym.Env):
|
|
113
116
|
dones[i] = True
|
114
117
|
else:
|
115
118
|
distance = np.linalg.norm(self.sensor_positions[i] - self.sensor_positions[action])
|
119
|
+
if distance > self.coverage_radius:
|
120
|
+
continue # Skip if the distance to the next hop is greater than the coverage radius
|
121
|
+
|
116
122
|
transmission_energy = self.transmission_energy(self.number_of_packets[i], distance)
|
117
123
|
reception_energy = self.reception_energy(self.number_of_packets[i])
|
118
124
|
self.update_sensor_energies(i, transmission_energy)
|
@@ -125,7 +131,7 @@ class WSNRoutingEnv(gym.Env):
|
|
125
131
|
# Calculate final reward
|
126
132
|
# rewards_individual = torch.tensor(rewards[i], dtype=torch.double)
|
127
133
|
# final_reward = net(rewards_individual)
|
128
|
-
self.rewards_individual[i] = rewards[i]
|
134
|
+
# self.rewards_individual[i] = rewards[i]
|
129
135
|
final_reward = np.sum(rewards[i])
|
130
136
|
rewards[i] = final_reward
|
131
137
|
|
@@ -133,7 +139,7 @@ class WSNRoutingEnv(gym.Env):
|
|
133
139
|
# rewards = [0.5 * r + 0.5 * (self.network_reward_consumption_energy() + self.network_reward_dispersion_remaining_energy()) for r in rewards]
|
134
140
|
|
135
141
|
# Only proceed if network consumption energy is not zero to avoid unnecessary list comprehension
|
136
|
-
self.rewards_individual = [r for r in self.rewards_individual if ((r != 0) and (r[len(r) -1] < 1))]
|
142
|
+
# self.rewards_individual = [r for r in self.rewards_individual if ((r != 0) and (r[len(r) -1] < 1))]
|
137
143
|
|
138
144
|
# self.rewards_individual = [{"ind": r, "net_consumption_energy": self.network_reward_consumption_energy(), "net_dispersion_energy": self.network_reward_dispersion_remaining_energy()} for r in self.rewards_individual if ((r != 0) and (self.network_reward_consumption_energy() != 0))]
|
139
145
|
for i in range(self.n_sensors):
|
@@ -0,0 +1,7 @@
|
|
1
|
+
gym_examples/__init__.py,sha256=bowSmkeNAOZSe_xKiNCfFdMmeF7fyV4gyu5a13H9RZE,193
|
2
|
+
gym_examples/envs/__init__.py,sha256=lgMe4pyOuUTgTBUddM0iwMlETsYTwFShny6ifm8PGM8,53
|
3
|
+
gym_examples/envs/wsn_env.py,sha256=ePw-tBdSKYUR2G1l5VD0yTMqFSIRerTxBf49kLw5DGg,17066
|
4
|
+
gym_examples-2.0.81.dist-info/METADATA,sha256=mp1kGR4uMvgCxdrjfBjt0QPTyJqIKd8T-Fwi7YvgoZ0,411
|
5
|
+
gym_examples-2.0.81.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
6
|
+
gym_examples-2.0.81.dist-info/top_level.txt,sha256=rJRksoAF32M6lTLBEwYzRdo4PgtejceaNnnZ3HeY_Rk,13
|
7
|
+
gym_examples-2.0.81.dist-info/RECORD,,
|
@@ -1,7 +0,0 @@
|
|
1
|
-
gym_examples/__init__.py,sha256=1BNt94Y-ZBFKM09grE3oS4yWNI7qkuapGX3c7aVQxyk,193
|
2
|
-
gym_examples/envs/__init__.py,sha256=lgMe4pyOuUTgTBUddM0iwMlETsYTwFShny6ifm8PGM8,53
|
3
|
-
gym_examples/envs/wsn_env.py,sha256=SyD3DwXcsuSpLHxZhaVFnL3oe4KbdvQvP-bm8qIquhs,16706
|
4
|
-
gym_examples-2.0.80.dist-info/METADATA,sha256=rRA4HZBKdJwffh-LYmwbiRulGQ-Q_8K2Lophc-KjWrE,411
|
5
|
-
gym_examples-2.0.80.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
6
|
-
gym_examples-2.0.80.dist-info/top_level.txt,sha256=rJRksoAF32M6lTLBEwYzRdo4PgtejceaNnnZ3HeY_Rk,13
|
7
|
-
gym_examples-2.0.80.dist-info/RECORD,,
|
File without changes
|
File without changes
|