Skip to content

Commit 89aed97

Browse files
committed
[example] for MBS
1 parent e9ca6d8 commit 89aed97

File tree

3 files changed

+353
-0
lines changed

3 files changed

+353
-0
lines changed

examples/MBS/EFC.ipynb

+114
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": 1,
6+
"metadata": {
7+
"collapsed": true
8+
},
9+
"outputs": [
10+
{
11+
"data": {
12+
"text/plain": "{'action_space': [0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29]}"
13+
},
14+
"execution_count": 1,
15+
"metadata": {},
16+
"output_type": "execute_result"
17+
}
18+
],
19+
"source": [
20+
"import gym\n",
21+
"from EduSim.Envs.MBS import EFCEnv, MBSAgent, mbs_train_eval\n",
22+
"\n",
23+
"env: EFCEnv = gym.make(\"MBS-EFC-v0\", seed=10)\n",
24+
"agent = MBSAgent(env.action_space)\n",
25+
"\n",
26+
"env"
27+
]
28+
},
29+
{
30+
"cell_type": "code",
31+
"execution_count": 2,
32+
"outputs": [
33+
{
34+
"data": {
35+
"text/plain": "[0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29]"
36+
},
37+
"execution_count": 2,
38+
"metadata": {},
39+
"output_type": "execute_result"
40+
}
41+
],
42+
"source": [
43+
"env.action_space"
44+
],
45+
"metadata": {
46+
"collapsed": false,
47+
"pycharm": {
48+
"name": "#%%\n"
49+
}
50+
}
51+
},
52+
{
53+
"cell_type": "code",
54+
"execution_count": 3,
55+
"outputs": [
56+
{
57+
"name": "stdout",
58+
"output_type": "stream",
59+
"text": [
60+
" Episode| Total-E Episode-Reward Progress \n",
61+
" 100| 100 0.789564 [00:00<00:00, 600.51it/s] \n",
62+
"done\n"
63+
]
64+
},
65+
{
66+
"name": "stderr",
67+
"output_type": "stream",
68+
"text": [
69+
"INFO:root:Expected Reward: 0.7786666666666666\n"
70+
]
71+
}
72+
],
73+
"source": [
74+
"from longling import set_logging_info\n",
75+
"set_logging_info()\n",
76+
"mbs_train_eval(\n",
77+
" agent,\n",
78+
" env,\n",
79+
" max_steps=200,\n",
80+
" max_episode_num=100,\n",
81+
" level=\"summary\",\n",
82+
")\n",
83+
"print(\"done\")\n"
84+
],
85+
"metadata": {
86+
"collapsed": false,
87+
"pycharm": {
88+
"name": "#%%\n"
89+
}
90+
}
91+
}
92+
],
93+
"metadata": {
94+
"kernelspec": {
95+
"display_name": "Python 3",
96+
"language": "python",
97+
"name": "python3"
98+
},
99+
"language_info": {
100+
"codemirror_mode": {
101+
"name": "ipython",
102+
"version": 2
103+
},
104+
"file_extension": ".py",
105+
"mimetype": "text/x-python",
106+
"name": "python",
107+
"nbconvert_exporter": "python",
108+
"pygments_lexer": "ipython2",
109+
"version": "2.7.6"
110+
}
111+
},
112+
"nbformat": 4,
113+
"nbformat_minor": 0
114+
}

examples/MBS/GPL.ipynb

+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": 1,
6+
"metadata": {
7+
"collapsed": true
8+
},
9+
"outputs": [
10+
{
11+
"data": {
12+
"text/plain": "{'action_space': [0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29]}"
13+
},
14+
"execution_count": 1,
15+
"metadata": {},
16+
"output_type": "execute_result"
17+
}
18+
],
19+
"source": [
20+
"import gym\n",
21+
"from EduSim.Envs.MBS import GPLEnv, MBSAgent, mbs_train_eval\n",
22+
"\n",
23+
"env: GPLEnv = gym.make(\"MBS-GPL-v0\", seed=10, n_steps=200)\n",
24+
"agent = MBSAgent(env.action_space)\n",
25+
"\n",
26+
"env"
27+
]
28+
},
29+
{
30+
"cell_type": "code",
31+
"execution_count": 2,
32+
"outputs": [
33+
{
34+
"data": {
35+
"text/plain": "[0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29]"
36+
},
37+
"execution_count": 2,
38+
"metadata": {},
39+
"output_type": "execute_result"
40+
}
41+
],
42+
"source": [
43+
"env.action_space"
44+
],
45+
"metadata": {
46+
"collapsed": false,
47+
"pycharm": {
48+
"name": "#%%\n"
49+
}
50+
}
51+
},
52+
{
53+
"cell_type": "code",
54+
"execution_count": 3,
55+
"outputs": [
56+
{
57+
"name": "stdout",
58+
"output_type": "stream",
59+
"text": [
60+
" Episode| Total-E Episode-Reward Progress \n",
61+
" 1| 100 nan "
62+
]
63+
},
64+
{
65+
"ename": "ValueError",
66+
"evalue": "matmul: Input operand 1 does not have enough dimensions (has 0, gufunc core with signature (n?,k),(k,m?)->(n?,m?) requires 1)",
67+
"output_type": "error",
68+
"traceback": [
69+
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
70+
"\u001B[1;31mValueError\u001B[0m Traceback (most recent call last)",
71+
"\u001B[1;32m<ipython-input-3-2c9d0fca3c00>\u001B[0m in \u001B[0;36m<module>\u001B[1;34m\u001B[0m\n\u001B[0;32m 1\u001B[0m \u001B[1;32mfrom\u001B[0m \u001B[0mlongling\u001B[0m \u001B[1;32mimport\u001B[0m \u001B[0mset_logging_info\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 2\u001B[0m \u001B[0mset_logging_info\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m----> 3\u001B[1;33m mbs_train_eval(\n\u001B[0m\u001B[0;32m 4\u001B[0m \u001B[0magent\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 5\u001B[0m \u001B[0menv\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
72+
"\u001B[1;32mE:\\Program\\EduSim\\EduSim\\SimOS\\SimOS.py\u001B[0m in \u001B[0;36mtrain_eval\u001B[1;34m(agent, env, max_steps, max_episode_num, n_step, train, logger, level, board_dir, sw, episode_callback, summary_callback, *args, **kwargs)\u001B[0m\n\u001B[0;32m 231\u001B[0m \u001B[0msummary_callback\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mreward_summary_callback\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 232\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 233\u001B[1;33m meta_train_eval(\n\u001B[0m\u001B[0;32m 234\u001B[0m \u001B[0magent\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0menv\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 235\u001B[0m \u001B[0mmax_steps\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mmax_episode_num\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mn_step\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mtrain\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
73+
"\u001B[1;32mE:\\Program\\EduSim\\EduSim\\SimOS\\SimOS.py\u001B[0m in \u001B[0;36mmeta_train_eval\u001B[1;34m(agent, env, max_steps, max_episode_num, n_step, train, logger, level, episode_callback, summary_callback, values, monitor)\u001B[0m\n\u001B[0;32m 115\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 116\u001B[0m \u001B[1;32mtry\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 117\u001B[1;33m \u001B[0mlearner_profile\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0menv\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mbegin_episode\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 118\u001B[0m \u001B[0magent\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mbegin_episode\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mlearner_profile\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 119\u001B[0m \u001B[0mepisode\u001B[0m \u001B[1;33m+=\u001B[0m \u001B[1;36m1\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
74+
"\u001B[1;32mE:\\Program\\EduSim\\EduSim\\Envs\\MBS\\Env.py\u001B[0m in \u001B[0;36mbegin_episode\u001B[1;34m(self, *args, **kwargs)\u001B[0m\n\u001B[0;32m 169\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0mbegin_episode\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m*\u001B[0m\u001B[0margs\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 170\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_learner\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mnext\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mlearners\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 171\u001B[1;33m \u001B[0mobservation\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m*\u001B[0m\u001B[0m_\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mexam\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 172\u001B[0m \u001B[1;32mreturn\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_learner\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mprofile\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mobservation\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 173\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n",
75+
"\u001B[1;32mE:\\Program\\EduSim\\EduSim\\Envs\\MBS\\Env.py\u001B[0m in \u001B[0;36mexam\u001B[1;34m(self)\u001B[0m\n\u001B[0;32m 29\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 30\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0mexam\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 31\u001B[1;33m observation = [\n\u001B[0m\u001B[0;32m 32\u001B[0m [\n\u001B[0;32m 33\u001B[0m \u001B[0mtest_item\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mid\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
76+
"\u001B[1;32mE:\\Program\\EduSim\\EduSim\\Envs\\MBS\\Env.py\u001B[0m in \u001B[0;36m<listcomp>\u001B[1;34m(.0)\u001B[0m\n\u001B[0;32m 32\u001B[0m [\n\u001B[0;32m 33\u001B[0m \u001B[0mtest_item\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mid\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 34\u001B[1;33m \u001B[1;36m1\u001B[0m \u001B[1;32mif\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mrandom_state\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mrandom\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m)\u001B[0m \u001B[1;33m<\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mtest\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mtest_item\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mtimestamp\u001B[0m\u001B[1;33m)\u001B[0m \u001B[1;32melse\u001B[0m \u001B[1;36m0\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 35\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mtimestamp\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 36\u001B[0m ] for test_item in self.test_item_base\n",
77+
"\u001B[1;32mE:\\Program\\EduSim\\EduSim\\Envs\\MBS\\Env.py\u001B[0m in \u001B[0;36mtest\u001B[1;34m(self, item, timestamp)\u001B[0m\n\u001B[0;32m 173\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 174\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0mtest\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mitem\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mtimestamp\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 175\u001B[1;33m \u001B[1;32mreturn\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_learner\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mresponse\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mitem\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mtimestamp\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m",
78+
"\u001B[1;32mE:\\Program\\EduSim\\EduSim\\Envs\\MBS\\meta\\Learner\\GPLLearner.py\u001B[0m in \u001B[0;36mresponse\u001B[1;34m(self, test_item, timestamp, *args, **kwargs)\u001B[0m\n\u001B[0;32m 46\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 47\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0mresponse\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mtest_item\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mtimestamp\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m*\u001B[0m\u001B[0margs\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[1;33m)\u001B[0m \u001B[1;33m->\u001B[0m \u001B[1;33m...\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 48\u001B[1;33m return gpl(\n\u001B[0m\u001B[0;32m 49\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_ability\u001B[0m\u001B[1;33m[\u001B[0m\u001B[0mtest_item\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mid\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 50\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_ability_coefficient\u001B[0m\u001B[1;33m[\u001B[0m\u001B[0mtest_item\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mid\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
79+
"\u001B[1;32mE:\\Program\\EduSim\\EduSim\\Envs\\MBS\\utils.py\u001B[0m in \u001B[0;36mgeneralized_power_law\u001B[1;34m(student_ability, additional_student_ability, item_difficulty, additional_item_difficulty, elapsed_time, decay_rate, correct_times, attempts, window_correct_coefficients, window_attempt_coefficients)\u001B[0m\n\u001B[0;32m 218\u001B[0m \u001B[0mcw\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mnp\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0masarray\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mcorrect_times\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mT\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 219\u001B[0m \u001B[0mnw\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mnp\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0masarray\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mattempts\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mT\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 220\u001B[1;33m \u001B[0mh\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mtheta_cw\u001B[0m \u001B[1;33m@\u001B[0m \u001B[0mcw\u001B[0m \u001B[1;33m+\u001B[0m \u001B[0mtheta_nw\u001B[0m \u001B[1;33m@\u001B[0m \u001B[0mnw\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 221\u001B[0m \u001B[0mm\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;36m1\u001B[0m \u001B[1;33m/\u001B[0m \u001B[1;33m(\u001B[0m\u001B[1;36m1\u001B[0m \u001B[1;33m+\u001B[0m \u001B[0mnp\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mexp\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0ma\u001B[0m \u001B[1;33m-\u001B[0m \u001B[0md\u001B[0m \u001B[1;33m+\u001B[0m \u001B[0mh\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 222\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n",
80+
"\u001B[1;31mValueError\u001B[0m: matmul: Input operand 1 does not have enough dimensions (has 0, gufunc core with signature (n?,k),(k,m?)->(n?,m?) requires 1)"
81+
]
82+
}
83+
],
84+
"source": [
85+
"from longling import set_logging_info\n",
86+
"set_logging_info()\n",
87+
"mbs_train_eval(\n",
88+
" agent,\n",
89+
" env,\n",
90+
" max_steps=200,\n",
91+
" max_episode_num=100,\n",
92+
" level=\"summary\",\n",
93+
")\n",
94+
"print(\"done\")\n"
95+
],
96+
"metadata": {
97+
"collapsed": false,
98+
"pycharm": {
99+
"name": "#%%\n"
100+
}
101+
}
102+
}
103+
],
104+
"metadata": {
105+
"kernelspec": {
106+
"display_name": "Python 3",
107+
"language": "python",
108+
"name": "python3"
109+
},
110+
"language_info": {
111+
"codemirror_mode": {
112+
"name": "ipython",
113+
"version": 2
114+
},
115+
"file_extension": ".py",
116+
"mimetype": "text/x-python",
117+
"name": "python",
118+
"nbconvert_exporter": "python",
119+
"pygments_lexer": "ipython2",
120+
"version": "2.7.6"
121+
}
122+
},
123+
"nbformat": 4,
124+
"nbformat_minor": 0
125+
}

examples/MBS/HLR.ipynb

+114
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": 1,
6+
"metadata": {
7+
"collapsed": true
8+
},
9+
"outputs": [
10+
{
11+
"data": {
12+
"text/plain": "{'action_space': [0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29]}"
13+
},
14+
"execution_count": 1,
15+
"metadata": {},
16+
"output_type": "execute_result"
17+
}
18+
],
19+
"source": [
20+
"import gym\n",
21+
"from EduSim.Envs.MBS import HLREnv, MBSAgent, mbs_train_eval\n",
22+
"\n",
23+
"env: HLREnv = gym.make(\"MBS-HLR-v0\", seed=10, reward_func=\"log_likelihood\")\n",
24+
"agent = MBSAgent(env.action_space)\n",
25+
"\n",
26+
"env"
27+
]
28+
},
29+
{
30+
"cell_type": "code",
31+
"execution_count": 2,
32+
"outputs": [
33+
{
34+
"data": {
35+
"text/plain": "[0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29]"
36+
},
37+
"execution_count": 2,
38+
"metadata": {},
39+
"output_type": "execute_result"
40+
}
41+
],
42+
"source": [
43+
"env.action_space"
44+
],
45+
"metadata": {
46+
"collapsed": false,
47+
"pycharm": {
48+
"name": "#%%\n"
49+
}
50+
}
51+
},
52+
{
53+
"cell_type": "code",
54+
"execution_count": 3,
55+
"outputs": [
56+
{
57+
"name": "stdout",
58+
"output_type": "stream",
59+
"text": [
60+
" Episode| Total-E Episode-Reward Progress \n",
61+
" 100| 100 -5.693908 [00:00<00:00, 385.38it/s] \n",
62+
"done\n"
63+
]
64+
},
65+
{
66+
"name": "stderr",
67+
"output_type": "stream",
68+
"text": [
69+
"INFO:root:Expected Reward: -10.403079449649091\n"
70+
]
71+
}
72+
],
73+
"source": [
74+
"from longling import set_logging_info\n",
75+
"set_logging_info()\n",
76+
"mbs_train_eval(\n",
77+
" agent,\n",
78+
" env,\n",
79+
" max_steps=200,\n",
80+
" max_episode_num=100,\n",
81+
" level=\"summary\",\n",
82+
")\n",
83+
"print(\"done\")\n"
84+
],
85+
"metadata": {
86+
"collapsed": false,
87+
"pycharm": {
88+
"name": "#%%\n"
89+
}
90+
}
91+
}
92+
],
93+
"metadata": {
94+
"kernelspec": {
95+
"display_name": "Python 3",
96+
"language": "python",
97+
"name": "python3"
98+
},
99+
"language_info": {
100+
"codemirror_mode": {
101+
"name": "ipython",
102+
"version": 2
103+
},
104+
"file_extension": ".py",
105+
"mimetype": "text/x-python",
106+
"name": "python",
107+
"nbconvert_exporter": "python",
108+
"pygments_lexer": "ipython2",
109+
"version": "2.7.6"
110+
}
111+
},
112+
"nbformat": 4,
113+
"nbformat_minor": 0
114+
}

0 commit comments

Comments
 (0)