Skip to content

Commit

Permalink
VROOM algorithm implementation #33 #6
Browse files Browse the repository at this point in the history
  • Loading branch information
WilliamLwj committed Jun 17, 2023
1 parent 1299aea commit be565e8
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ pip install .
| [PCT](https://github.com/WilliamLwj/PyXAB/blob/main/PyXAB/algos/PCT.py) | [General Parallel Optimization Without A Metric](https://proceedings.mlr.press/v98/xuedong19a.html) | 2019 |
| [SequOOL](https://github.com/WilliamLwj/PyXAB/blob/main/PyXAB/algos/SequOOL.py) | [A Simple Parameter-free And Adaptive Approach to Optimization Under A Minimal Local Smoothness Assumption](https://arxiv.org/pdf/1810.00997.pdf) | 2019 |
| [StroquOOL](https://github.com/WilliamLwj/PyXAB/blob/main/PyXAB/algos/StroquOOL.py) | [A Simple Parameter-free And Adaptive Approach to Optimization Under A Minimal Local Smoothness Assumption](https://arxiv.org/pdf/1810.00997.pdf) | 2019 |
| [VROOM](https://github.com/WilliamLwj/PyXAB/blob/main/PyXAB/algos/VROOM.py) | [Derivative-Free & Order-Robust Optimisation](https://arxiv.org/pdf/1910.04034.pdf) | 2020 |
| [VHCT](https://github.com/WilliamLwj/PyXAB/blob/main/PyXAB/algos/VHCT.py) | [Optimum-statistical Collaboration Towards General and Efficient Black-box Optimization](https://openreview.net/forum?id=ClIcmwdlxn) | 2023 |
| [VPCT](https://github.com/WilliamLwj/PyXAB/blob/main/PyXAB/algos/VPCT.py) | N.A. ([GPO](https://github.com/WilliamLwj/PyXAB/blob/main/PyXAB/algos/GPO.py) + [VHCT](https://github.com/WilliamLwj/PyXAB/blob/main/PyXAB/algos/VHCT.py)) | N.A. |

Expand Down
18 changes: 18 additions & 0 deletions docs/source/api/algorithms.rst
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,24 @@ StroquOOL Algorithm
:special-members: __init__


..................................

VROOM Algorithm
----------------------------
.. autoclass:: PyXAB.algos.VROOM.VROOM_node
:members:
:undoc-members:
:show-inheritance:
:inherited-members:
:special-members: __init__

.. autoclass:: PyXAB.algos.VROOM.VROOM
:members:
:undoc-members:
:show-inheritance:
:inherited-members:
:special-members: __init__


..................................

Expand Down
52 changes: 52 additions & 0 deletions docs/source/features/algorithms/VROOM/VROOM.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
VROOM Algorithm
===============

Introduction
------------
`paper <https://proceedings.mlr.press/v108/ammar20a/ammar20a.pdf>`_, `code <https://github.com/WilliamLwj/PyXAB/blob/main/PyXAB/algos/VROOM.py>`_

In this paper, we formalise order-robust optimisation as an instance of online learning minimising simple regret,
and propose VROOM, a zeroth order optimisation algorithm capable of achieving vanishing regret in non-stationary
environments, while recovering favorable rates under stochastic reward-generating processes. Our results are the first
to target simple regret definitions in adversarial scenarios unveiling a challenge that has been rarely considered
in prior work.

Algorithm Parameters
--------------------
* n: int
The total number of rounds (budget)
* h_max: int
The maximum depth of the partition
* b: float
The parameter that measures the variation of the function
* f_max: float
An upper bound of the objective function
* domain: list(list)
The domain of the objective to be optimized
* partition:
The partition choice of the algorithm

Usage Example
-------------

.. note::

Make sure to use `get_last_point()` to get the final output


.. code-block:: python3
from PyXAB.synthetic_obj.Garland import Garland
from PyXAB.algos.VROOM import VROOM
domain = [[0, 1]] # Parameter is 1-D and between 0 and 1
target = Garland()
rounds = 1000
algo = VROOM(n=rounds, b=1, domain=domain)
for t in range(rounds):
point = algo.pull(t)
reward = target(point)
algo.receive_reward(t, reward)
algo.get_last_point()
6 changes: 6 additions & 0 deletions docs/source/features/feat_algorithms.rst
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@ features in the algorithm design.
- |check_|
- |cross_|
- |cross_|
* - `VROOM <https://github.com/WilliamLwj/PyXAB/blob/main/PyXAB/algos/VROOM.py>`_
- `VROOM paper <https://arxiv.org/pdf/1910.04034.pdf>`_
- |check_|
- |cross_|
- |cross_|
* - `VHCT <https://github.com/WilliamLwj/PyXAB/blob/main/PyXAB/algos/VHCT.py>`_
- `VHCT paper <https://openreview.net/forum?id=ClIcmwdlxn>`_
- |check_|
Expand Down Expand Up @@ -123,6 +128,7 @@ features in the algorithm design.
algorithms/PCT/PCT
algorithms/SequOOL/SequOOL
algorithms/StroquOOL/StroquOOL
algorithms/VROOM/VROOM
algorithms/VHCT/VHCT
algorithms/VPCT/VPCT

Expand Down

0 comments on commit be565e8

Please sign in to comment.