Professional Documents
Culture Documents
ІК 02 Дзюба Анатолій - lab3 2
ІК 02 Дзюба Анатолій - lab3 2
Номер варіанту: 18
class ValueIteration:
def __init__(self, reward_function, transition_model, gamma):
self.num_states = transition_model.shape[0]
self.num_actions = transition_model.shape[1]
self.reward_function = np.nan_to_num(reward_function)
self.transition_model = transition_model
self.gamma = gamma
self.values = np.zeros(self.num_states)
self.policy = None
def one_iteration(self):
delta = 0
for s in range(self.num_states):
temp = self.values[s]
v_list = np.zeros(self.num_actions)
for a in range(self.num_actions):
p = self.transition_model[s, a]
v_list[a] = self.reward_function[s] + self.gamma * np.sum(p
* self.values)
self.values[s] = max(v_list)
delta = max(delta, abs(temp - self.values[s]))
return delta
def get_policy(self):
pi = np.ones(self.num_states) * -1
for s in range(self.num_states):
v_list = np.zeros(self.num_actions)
for a in range(self.num_actions):
p = self.transition_model[s, a]
v_list[a] = self.reward_function[s] + self.gamma * np.sum(p
* self.values)
max_index = []
max_val = np.max(v_list)
for a in range(self.num_actions):
if v_list[a] == max_val:
max_index.append(a)
pi[s] = np.random.choice(max_index)
return pi.astype(int)
if plot is True:
fig, ax = plt.subplots(1, 1, figsize=(3, 2), dpi=200)
ax.plot(np.arange(len(delta_history)) + 1, delta_history,
marker='o', markersize=4,
alpha=0.7, color='#2ca02c', label=r'$\gamma= $' +
f'{self.gamma}')
ax.set_xlabel('Iteration')
ax.set_ylabel('Delta')
#ax.legend()
plt.tight_layout()
plt.title(Максимальна зміна значення через ітерації ')
plt.show()
Value Iteration є ефективним методом для вирішення задачі Grid World. Такий
висновок можна зробити тому, що, як видно з динаміки навчання, вже з
приблизно 20-ї ітерації різниця максимального значення почала спадати, а
починаючи з приблизно 65-ї ітерації була наближена до 0. Тобто стратегія
оптимального рішення була знайдена точно знайдена вже на 70-й ітерації
(досить швидко.)
Чи була
К-ть кроків, знайдена
«Штраф Червона Цільова
№ необхідних, щоб оптимальна
переходу» ділянка ділянка
дістатися цілі стратегія дійсно
оптимальною
1 -50 -100 +100 14 Yes
2 -25 -50 +100 14 Yes
3 -10 -100 +100 No solution
4 0 -100 +100 No solution
5 0 -50 +100 No solution
6 0 -25 +100 14 Yes
7 0 0 +100 14 Yes
8 -100 -100 +100 14 Yes
9 -50 -25 +100 14 Yes
10 -50 0 +100 No solution
Результат навчання від значень винагород впливає на здатність алгоритму
знайти оптимальну стратегію і досягти кінцевого стану. З аналізу наведених
результатів можна зробити наступні спостереження:
Експеримент 1: Значення винагород забезпечують знайдення оптимальної
стратегії і досягнення кінцевого стану. Штрафи за перехід та червону ділянку
великі, що забезпечує покарання агента за недоречні дії і стимулює його
швидко досягти цілі.
Експерименти 2, 3 і 4: Значення винагород не дозволяють знайти оптимальну
стратегію і досягнути кінцевого стану. Штраф за перехід та червону ділянку
недостатні, щоб відлякати агента від неправильних дій, або нагорода за
досягнення цілі недостатньо висока для мотивації до швидкого досягнення
цілі. Це призводить до зациклювання агента або до знаходження неефективної
стратегії.
Експерименти 5, 6 і 7: Значення винагород забезпечують знайдення
оптимальної стратегії і досягнення кінцевого стану. В цих випадках штрафи за
перехід відсутні, а за перехід на червону ділянку відсутні або мінімальні, що
дозволяє агенту ефективно рухатися до цілі.
Експеримент 8: «штраф» за переміщення було встановлено рівним штрафу за
потрапляння на червону ділянку (досить високими), але агент все одно
знайшов оптимальний шлях до винагороди. Взагалі, великі штрафи за перехід і
червону ділянку можуть заважати знайти оптимальну стратегію, особливо
якщо нагорода за досягнення цілі не висока. Агент може уникати ризикованих
дій через великі штрафи, але не знаходити найкоротший шлях до цілі.
Експеримент 9: Штраф за перехід більший, а штраф за червону ділянку
менший, але, оскільки від’ємний штраф за потрапляння на червону ділянку
додоються до штрафу за перехід, це відлякує агента від потрапляння на
червоні ділянки, і він знаходить оптимальну стратегію.
Експеримент 10: У цьому випадку, при відсутності штрафу за перехід і
червону ділянку, агент може зациклюватися або обирати недоречні дії, що не
дає змоги знайти оптимальну стратегію та досягти кінцевого стану.