Code Monkey home page Code Monkey logo

bops's Introduction

Bayesian Optimization over Permutation Spaces

This repository contains the source code and the resources related to the paper "Bayesian Optimization over Permutation Spaces" published at AAAI'22 conference.

Benchmark simulations

We provided three real-world benchmarks to drive future research on this important problem. They are described below:

  1. Floorplanning:

    • The simulator file is in floorplanning directory.
    • The input is given in a permutation file (named 'permutation.txt') as a comma separated values from 0-10
    • The output is given by running: ./floorplan_simulation b1_floorplan.blk
    • Permutation file will be read by the simulation internally
    • There are two variants: b1_floorplan.blk and b2_floorplan.blk
  2. Cell Placement

    • The simulator file is in cell_placement directory.
    • The input is given in a permutation file (named 'permutation.txt') as a comma separated values from 0-10
    • The output is given by running: ./cp_simulator ex10_40_2_3.dat
    • Permutation file will be read by the simulation internally
  3. Heterogeneous Manycore Design

    • There is a dataset file named 'hmd_dataset.pkl' containing around 15K points
    • hmd_dataset.pkl contains a dictionary with two keys 'points' (permutations) and 'vals' (objective values)

Source code

As discussed in the paper, we propose two algorithms: BOPS-T and BOPS-H.

Installation Requirements

Example usage on the floorplanning domain:

The floorplanning directory contains two main files: floorplan_kendall.py and floorplan_mallows.py for BOPS-T and BOPS-H respectively.

In floorplan_mallows.py, evaluate_floorplan method defines a call to the black-box objective function and bo_loop is the entry point for the code. In bo_loop, n_init is the number of initial evaluations to initialize the GP surrogate model. The total budget is given by n_evals-n_init. We use the Expected improvement acquisition function which is optimized via local search with multiple restarts. The number of restarts can be changed in line 127.

Acknowledgements

BOPS-T utilizes an SDP solver (for acquisition function optimization) implemented here. BOPS-H is built on top of GPyTorch and BoTorch libraries. We thank the original authors for their code.

bops's People

Contributors

aryandeshwal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

belakaria

bops's Issues

TSP mallows not running properly

Ive tried to run the TSP Mellows kernel example (tsp_mallow.py) and I keep receiving the following error
I've tried running it locally and google Colab, different versions of gpytorch and botorch (both cpu only and gpu versions) but I keep receiving the same error every time (I haven't changed any of the code)

Im not sure what version of the packages you are using or if it even makes a difference

Screenshot 2023-01-23 at 9 55 21 AM

Could you do a pip freeze to see the package versions you used to properly run this file ? or any help is appreciated

BOPS-H

Please add examples which using BOPS-H algorithm ... !

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.