From 52b5f5ef92b622ea1ac2f8bcbf3711830bf7bb34 Mon Sep 17 00:00:00 2001 From: Valerie Date: Wed, 22 Dec 2021 09:20:12 -0500 Subject: [PATCH] bandits run on boot! --- .system | 20 ++++++++++++++++--- src/modules/n-arm-bandit/agent/exploreOnly.ts | 18 +++++++++++++++-- src/modules/systemd.ts | 4 ++-- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/.system b/.system index b2f1369..1d44da1 100644 --- a/.system +++ b/.system @@ -3,7 +3,8 @@ "instances": { "B7FFCD6C11974FC7A74509B6683D7420": { "config": { - "sshd": "invoke sshd start" + "sshd": "invoke sshd start", + "invoke": "invoke EXPLORE run 10" }, "module": "systemd" }, @@ -45,6 +46,18 @@ "base": 7.786595862237511 }, "module": "n-arm-bandit/bandit" + }, + "7E884FCACAC74FDF985D46B2BC937B5B": { + "config": { + "bandits": [ + "SLOT1", + "SLOT2", + "SLOT3", + "SLOT4", + "SLOT5" + ] + }, + "module": "n-arm-bandit/agent/exploreOnly" } }, "aliases": { @@ -54,7 +67,8 @@ "SLOT2": "05EA8268E28F4C9FAC7F8E5BE0ABAB5F", "SLOT3": "0F0B6AEB69754319A7E480E3989F7E54", "SLOT4": "34064741B6324D9BBCEE0A1364F21220", - "SLOT5": "18461538E5A1487EBC9F54040295440A" + "SLOT5": "18461538E5A1487EBC9F54040295440A", + "EXPLORE": "7E884FCACAC74FDF985D46B2BC937B5B" }, - "devMode": true + "devMode": false } \ No newline at end of file diff --git a/src/modules/n-arm-bandit/agent/exploreOnly.ts b/src/modules/n-arm-bandit/agent/exploreOnly.ts index 44af85d..7050196 100644 --- a/src/modules/n-arm-bandit/agent/exploreOnly.ts +++ b/src/modules/n-arm-bandit/agent/exploreOnly.ts @@ -1,6 +1,20 @@ +import { exec } from "@kernel:base"; +export default { + config: { + bandits: [] + } +} +export async function run(tries: number) { + for(let i = 0; i < tries; i ++) { + const slot = this.config.bandits[Math.floor(Math.random() * this.config.bandits.length)]; + const result = await exec(`invoke ${slot} pull`); + console.log(`Pulling ${slot}...`); + console.log(`Got ${result.toFixed(2)} reward`); + } +} -export function run(tries: string) { - +export function addBandit(name: string) { + this.config.bandits.push(name); } \ No newline at end of file diff --git a/src/modules/systemd.ts b/src/modules/systemd.ts index 199cdda..d1c1b5f 100644 --- a/src/modules/systemd.ts +++ b/src/modules/systemd.ts @@ -6,9 +6,9 @@ import { exec } from '@kernel:base'; // } // } -export function boot() { +export async function boot() { for(const [name, script] of Object.entries(this.config)) { - exec(script as string); + await exec(script as string); } }