Skip to content

Commit 366344b

Browse files
committed
Refactor MO and CC and define matching cMABs
### Changes: * Introduced `ModelMO` and `ModelCC` classes for multi-objective and cost control modeling. * Updated `BaseMab` to support `ModelMO` and `ModelCC`. * Added `BaseCmabBernoulliMO`, `CmabBernoulliMO`, and `CmabBernoulliMOCC` for multi-objective CMAB. * Edited `BaseSmabBernoulliMO`, `SmabBernoulliMO`, and `SmabBernoulliMOCC` for multi-objective SMAB. * Enhanced validation and utility functions to handle multi-objective models. * Updated documentation and to reflect new multi-objective capabilities.
1 parent cddda5c commit 366344b

File tree

10 files changed

+1061
-252
lines changed

10 files changed

+1061
-252
lines changed

docs/tutorials/mab.ipynb

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,14 @@
102102
"</pre>\n"
103103
],
104104
"text/plain": [
105-
"\u001b[1;35mSmabBernoulli\u001b[0m\u001b[1m(\u001b[0m\n",
106-
" \u001b[33mactions\u001b[0m=\u001b[1m{\u001b[0m\n",
107-
" \u001b[32m'a1'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m1\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m,\n",
108-
" \u001b[32m'a2'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m1\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m,\n",
109-
" \u001b[32m'a3'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m1\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m\n",
110-
" \u001b[1m}\u001b[0m,\n",
111-
" \u001b[33mstrategy\u001b[0m=\u001b[1;35mClassicBandit\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n",
112-
"\u001b[1m)\u001b[0m\n"
105+
"\u001B[1;35mSmabBernoulli\u001B[0m\u001B[1m(\u001B[0m\n",
106+
" \u001B[33mactions\u001B[0m=\u001B[1m{\u001B[0m\n",
107+
" \u001B[32m'a1'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m1\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m1\u001B[0m\u001B[1m)\u001B[0m,\n",
108+
" \u001B[32m'a2'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m1\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m1\u001B[0m\u001B[1m)\u001B[0m,\n",
109+
" \u001B[32m'a3'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m1\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m1\u001B[0m\u001B[1m)\u001B[0m\n",
110+
" \u001B[1m}\u001B[0m,\n",
111+
" \u001B[33mstrategy\u001B[0m=\u001B[1;35mClassicBandit\u001B[0m\u001B[1m(\u001B[0m\u001B[1m)\u001B[0m\n",
112+
"\u001B[1m)\u001B[0m\n"
113113
]
114114
},
115115
"metadata": {},
@@ -169,14 +169,14 @@
169169
"</pre>\n"
170170
],
171171
"text/plain": [
172-
"\u001b[1;35mSmabBernoulli\u001b[0m\u001b[1m(\u001b[0m\n",
173-
" \u001b[33mactions\u001b[0m=\u001b[1m{\u001b[0m\n",
174-
" \u001b[32m'a1'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m1\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m,\n",
175-
" \u001b[32m'a3'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m1\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m,\n",
176-
" \u001b[32m'a2'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m1\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m\n",
177-
" \u001b[1m}\u001b[0m,\n",
178-
" \u001b[33mstrategy\u001b[0m=\u001b[1;35mClassicBandit\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n",
179-
"\u001b[1m)\u001b[0m\n"
172+
"\u001B[1;35mSmabBernoulli\u001B[0m\u001B[1m(\u001B[0m\n",
173+
" \u001B[33mactions\u001B[0m=\u001B[1m{\u001B[0m\n",
174+
" \u001B[32m'a1'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m1\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m1\u001B[0m\u001B[1m)\u001B[0m,\n",
175+
" \u001B[32m'a3'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m1\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m1\u001B[0m\u001B[1m)\u001B[0m,\n",
176+
" \u001B[32m'a2'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m1\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m1\u001B[0m\u001B[1m)\u001B[0m\n",
177+
" \u001B[1m}\u001B[0m,\n",
178+
" \u001B[33mstrategy\u001B[0m=\u001B[1;35mClassicBandit\u001B[0m\u001B[1m(\u001B[0m\u001B[1m)\u001B[0m\n",
179+
"\u001B[1m)\u001B[0m\n"
180180
]
181181
},
182182
"metadata": {},
@@ -422,14 +422,14 @@
422422
"</pre>\n"
423423
],
424424
"text/plain": [
425-
"\u001b[1;35mSmabBernoulli\u001b[0m\u001b[1m(\u001b[0m\n",
426-
" \u001b[33mactions\u001b[0m=\u001b[1m{\u001b[0m\n",
427-
" \u001b[32m'a1'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m1\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m,\n",
428-
" \u001b[32m'a3'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m2\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m,\n",
429-
" \u001b[32m'a2'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m3\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m3\u001b[0m\u001b[1m)\u001b[0m\n",
430-
" \u001b[1m}\u001b[0m,\n",
431-
" \u001b[33mstrategy\u001b[0m=\u001b[1;35mClassicBandit\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n",
432-
"\u001b[1m)\u001b[0m\n"
425+
"\u001B[1;35mSmabBernoulli\u001B[0m\u001B[1m(\u001B[0m\n",
426+
" \u001B[33mactions\u001B[0m=\u001B[1m{\u001B[0m\n",
427+
" \u001B[32m'a1'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m1\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m1\u001B[0m\u001B[1m)\u001B[0m,\n",
428+
" \u001B[32m'a3'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m2\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m1\u001B[0m\u001B[1m)\u001B[0m,\n",
429+
" \u001B[32m'a2'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m3\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m3\u001B[0m\u001B[1m)\u001B[0m\n",
430+
" \u001B[1m}\u001B[0m,\n",
431+
" \u001B[33mstrategy\u001B[0m=\u001B[1;35mClassicBandit\u001B[0m\u001B[1m(\u001B[0m\u001B[1m)\u001B[0m\n",
432+
"\u001B[1m)\u001B[0m\n"
433433
]
434434
},
435435
"metadata": {},
@@ -494,14 +494,14 @@
494494
"</pre>\n"
495495
],
496496
"text/plain": [
497-
"\u001b[1;35mSmabBernoulli\u001b[0m\u001b[1m(\u001b[0m\n",
498-
" \u001b[33mactions\u001b[0m=\u001b[1m{\u001b[0m\n",
499-
" \u001b[32m'a1'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m337\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m369\u001b[0m\u001b[1m)\u001b[0m,\n",
500-
" \u001b[32m'a3'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m4448\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m4315\u001b[0m\u001b[1m)\u001b[0m,\n",
501-
" \u001b[32m'a2'\u001b[0m: \u001b[1;35mBeta\u001b[0m\u001b[1m(\u001b[0m\u001b[33mn_successes\u001b[0m=\u001b[1;36m246\u001b[0m, \u001b[33mn_failures\u001b[0m=\u001b[1;36m296\u001b[0m\u001b[1m)\u001b[0m\n",
502-
" \u001b[1m}\u001b[0m,\n",
503-
" \u001b[33mstrategy\u001b[0m=\u001b[1;35mClassicBandit\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m\n",
504-
"\u001b[1m)\u001b[0m\n"
497+
"\u001B[1;35mSmabBernoulli\u001B[0m\u001B[1m(\u001B[0m\n",
498+
" \u001B[33mactions\u001B[0m=\u001B[1m{\u001B[0m\n",
499+
" \u001B[32m'a1'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m337\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m369\u001B[0m\u001B[1m)\u001B[0m,\n",
500+
" \u001B[32m'a3'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m4448\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m4315\u001B[0m\u001B[1m)\u001B[0m,\n",
501+
" \u001B[32m'a2'\u001B[0m: \u001B[1;35mBeta\u001B[0m\u001B[1m(\u001B[0m\u001B[33mn_successes\u001B[0m=\u001B[1;36m246\u001B[0m, \u001B[33mn_failures\u001B[0m=\u001B[1;36m296\u001B[0m\u001B[1m)\u001B[0m\n",
502+
" \u001B[1m}\u001B[0m,\n",
503+
" \u001B[33mstrategy\u001B[0m=\u001B[1;35mClassicBandit\u001B[0m\u001B[1m(\u001B[0m\u001B[1m)\u001B[0m\n",
504+
"\u001B[1m)\u001B[0m\n"
505505
]
506506
},
507507
"metadata": {},

0 commit comments

Comments
 (0)