Coder Social home page Coder Social logo

white-box-adp's Introduction

White Box ADP

This project contains the source code used in research article:
"Towards a White Box Approach to Automated Algorithm Design" (Adriaensen et al, 2016)

Feel free to use this code in your own research. If you do, we kindly ask you to acknowledge this, by citing the following article:

[1] Steven Adriaensen, and Ann Nowé. "Towards a White Box Approach to Automated Algorithm Design." IJCAI, 2016.

@inproceedings{adriaensen2016towards,
title={Towards a White Box Approach to Automated Algorithm Design},
author={Adriaensen, Steven and Now{'e}, Ann},
booktitle={IJCAI},
year={2016}
}

In summary, this paper formulates the Algorithm Design Problem (ADP) as a sequential decision process. Rather than making difficult design choices (e.g. numerical parameters, data-structures, algorithmic or other implementation choices in general) prior to execution, we start executing an algorithm with open design choices. Whenever the next instruction depends on the decision made for any of these, a choice point is reached and an agent is queried for a decision. A special feedback instruction is used to reward the agent during execution and allows us to specify the desirability of any execution path. The solution to the ADP is then an agent maximizing the acumulated reward for any given input.

Please refer to this article for more detailed information.

Content:

  • src/wb/ (contains the source code, some key files are indicated below)
    • adp/ (classes representing Algorithm Design Problems)
      • bench/ (implementations of the benchmark ADP's used in experiments of [1, Section 6])
        • Benchmark1.java
        • Benchmark2.java
    • solver/ (solvers for the ADP, they return an agent trained to make the open design choices in a given adp)
      • BB-URS.java (the black-box optimizer used in the experiments of [1, Section 6] as naive baseline)
      • WB.java (a prototype white-box optimizer described in [1, Section 5])
    • agent/ (agent implementations, in particular those used in [1, Section 6], see below)
      • URS.java
      • PURS.java
    • test/
      • Example.java (gives an example of how to use the solvers to solve a given ADP and test the performance of the resulting agent)
  • WBADP-eclipse.zip: Archive to import as project in Eclipse IDE

More information can be found in the documentation of each of the source files.

white-box-adp's People

Contributors

steven-adriaensen avatar

Stargazers

 avatar  avatar

Watchers

 avatar

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.