Giter VIP home page Giter VIP logo

duplex's Introduction

Duplex Optimization

CircleCI

Duplex's website

Duplex is a high-performance global optimization algorithm for nonconvex, nonlinear, and functional optimization problems. The following core capabilities are included:

  • Duplex can find global optimum of nonlinear non-convex functions.
  • Duplex implements variety of gradient-descent based optimizations internally, such as Momentum, AdaDelta, Adamax. Duplex can also optimize when the gradient information are not available.
  • Duplex supports unsupervised learning algoriths for clustering.
  • If the gradient information are not available (for circuit optimization), duplex uses reinforcement learning to predict the landscape of energy function.
  • Duplex supports Synopsys HSPICE for solving nonlinear systems.

The latest release and a complete manual may be found at the Duplex home page: http://adel.ac/duplex

Dependencies

Duplex requires the following dependencies to be installed:

  • Eigen 3.3.0 linear algebra library. Install eigen using brew install eigen
  • Boost 1.51 Duplex requires both headers and compiled binaries. Install using brew install boost
  • Config4cpp configuration library. The binaries for the config4cpp for macOS are already shipped with Duplex (/submodules/config4cpp/lib).
  • Pangolin for plotting and managing display. The Pangolin will replace the gnuPlot. Duplex will install Pangolin as a submodule in /submodules/Pangolin.
  • GnuPlot for drawing plots (Optional). Install gnuplot using brew install gnuplot

Build

Duplex uses CMake as a build system.

git clone git://github.com/ahmadyan/Duplex
cd Duplex
mkdir build	
cd build
cmake ..
make

Use cmake .. -GXcode to generate the xcode project file (or other generators). Few examples are provided in /bin directory. Few MATLAB tests are available in the /test directory.

Usage

  • ./duplex --config example.cfg
  • Currently the duplex binaries and the configurations has to be in the same directory, so please output the binary in the bin folder.
  • Example configuration files are available in the /bin directory
  • If using hspice as a numerical simulator, User should set an environment variable DUPLEX_SIM_ID to an integer value. If you don't want to set the environment variable, run Duplex from the python wrapper (test/duplex.py) in test directory. Python wrapper requires Python 3+.

Misc

Duplex uses llvm coding style. Any PR will be formatted using clang-format.

duplex's People

Contributors

ahmadyan avatar sahmadyansc avatar

Stargazers

 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.