Add average reward hint
This commit is contained in:
parent
0fd1073341
commit
1fec3a99ff
19
index.html
19
index.html
@ -11,9 +11,11 @@
|
|||||||
margin: 50px auto;
|
margin: 50px auto;
|
||||||
background-color: #f0f0f0;
|
background-color: #f0f0f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1, h2 {
|
h1, h2 {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrapper {
|
.wrapper {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 320px;
|
width: 320px;
|
||||||
@ -23,6 +25,7 @@
|
|||||||
grid-gap: 10px;
|
grid-gap: 10px;
|
||||||
grid-auto-rows: minmax(100px, auto);
|
grid-auto-rows: minmax(100px, auto);
|
||||||
}
|
}
|
||||||
|
|
||||||
.gridcell, .gridcell-highlighted {
|
.gridcell, .gridcell-highlighted {
|
||||||
background-color: #fafafa;
|
background-color: #fafafa;
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #ddd;
|
||||||
@ -44,6 +47,11 @@
|
|||||||
border: 2px solid #d4380d;
|
border: 2px solid #d4380d;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#avg-reward {
|
||||||
|
text-align: center;
|
||||||
|
font-size: large;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import { shuffle, randint } from "./random.js";
|
import { shuffle, randint } from "./random.js";
|
||||||
@ -54,6 +62,9 @@
|
|||||||
let combanditState = combandit.getInitialState();
|
let combanditState = combandit.getInitialState();
|
||||||
|
|
||||||
const handler = {
|
const handler = {
|
||||||
|
nTrials: 0,
|
||||||
|
avgReward: 0,
|
||||||
|
|
||||||
getCell(idx) {
|
getCell(idx) {
|
||||||
return document.querySelector(`#gridcell-${idx}`);
|
return document.querySelector(`#gridcell-${idx}`);
|
||||||
},
|
},
|
||||||
@ -95,9 +106,13 @@
|
|||||||
let reward;
|
let reward;
|
||||||
this.completed = true;
|
this.completed = true;
|
||||||
({ reward, nextState: combanditState } = combandit.step(combanditState, this.action));
|
({ reward, nextState: combanditState } = combandit.step(combanditState, this.action));
|
||||||
|
this.avgReward = (this.avgReward * this.nTrials + reward) / (this.nTrials + 1);
|
||||||
|
this.nTrials++;
|
||||||
|
|
||||||
const rewardText = reward.toFixed(0).replace('-', '−');
|
const rewardText = reward.toFixed(0).replace('-', '−');
|
||||||
|
const avgRewardText = this.avgReward.toFixed(2).replace('-', '−');
|
||||||
document.querySelector('#prompt').innerHTML = `You got ${rewardText} points!`;
|
document.querySelector('#prompt').innerHTML = `You got ${rewardText} points!`;
|
||||||
|
document.querySelector('#avg-reward').innerHTML = `Avg reward: ${avgRewardText}, Trials: ${this.nTrials}`;
|
||||||
setTimeout(() => this.init(), 2000);
|
setTimeout(() => this.init(), 2000);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -129,5 +144,7 @@
|
|||||||
<div class="gridcell" id="gridcell-2"><div class="indicator"></div></div>
|
<div class="gridcell" id="gridcell-2"><div class="indicator"></div></div>
|
||||||
<div class="gridcell" id="gridcell-3"><div class="indicator"></div></div>
|
<div class="gridcell" id="gridcell-3"><div class="indicator"></div></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p id="avg-reward">Avg reward: 0</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
Loading…
Reference in New Issue
Block a user