About PyOPUS
1. Who wrote it, how it is licensed, and who to contact
Pyopus is being developed at the EDA Laboratory, Faculty of Electrical Engineering, University of Ljubljana. The following people have contributed to PyOPUS.
- Arpad Buermen (library concept and implementation of library modules)
- Janez Puhan (HSPICE file interface)
- Jernej Olensek (global optimization test problems)
- Gregor Cijan (cost collector plugin and random point generators)
- Tadej Tuma (project head)
PyOpus uses code from the following packages
- FORTRAN test problems by Napsu Karmitsa, Ladislav Lukšan, Jan Vlček, Jorge Moré, and Stefan Wild.
- MADS test problems implemented by Sébastien Le Digabel, Charles Audet, et. al.
See src/*.zip and src/*.tar.gz in the PyOPUS package for details on respective licenses.
PyOPUS is licensed under the terms and conditions of GPL V3.
2. What packages does PyOPUS depend on
PyOPUS is a Python library. The latest version depends on Python 3.11. It also requires the following Python libraries:
- NumPy
- SciPy
- CVXOPT
- Lxml
- MatPlotLib
- PyQt5
- Pyqtgraph
- Greenlet
- MPI4py
- Pandas
- Datatable (optional)
4. Supported simulators
PyOPUS supports SPICE OPUS, Ngspice, Xyce, Synopsys HSPICE, and Cadence SPECTRE.
4. Supported operating systems
PyOPUS was tested under Debian Linux 12 (Bookworm) and Windows 10. The CUTEr interface is not available under Windows.
5. Contributing to PyOPUS
Contributions to PyOPUS are welcome, easpecially in the following areas
- New simulator interface modules (support for other simulators)
- Implementation of CUTEr support under Windows
- Testing of MPI support across a cluster of workstations under Windows
- Implementation of new optimization algorithms
- Binary implementation of optimization test functions, particularly those from the Competition on Real-Parameter Single Objective (Expensive) Optimization (CEC problems)
If you are interested in PyOPUS developement, contact arpad.buermen@fe.uni-lj.si
6. Papers
Our research related to PyOPUS
Constructing cost functions (pyopus.evaluator.aggregate)
BŰRMEN, Árpád, STRLE, Drago, BRATKOVIČ, Franc, PUHAN, Janez, FAJFAR, Iztok, TUMA, Tadej. Automated robust design and optimization of integrated circuits by means of penalty functions. AEÜ, 2003, vol. 57, no. 1, pp. 47-56.
Grid Restrained Nelder-Mead algorithm (pyopus.optimizer.grnm)
BŰRMEN, Árpád, PUHAN, Janez, TUMA, Tadej. Grid restrained Nelder-Mead algorithm. Computational optimization and applications, 2006, vol. 34, no. 3, pp. 359-375.
Successive approximation Nelder-Mead algorithm (pyopus.optimizer.sanm)
BŰRMEN, Árpád, TUMA, Tadej. Unconstrained derivative-free optimization by successive approximation. Journal of Computational and Applied Mathematics, 2009, vol. 223, no. 1, pp. 62-74
Parallel simulated annealing and differential evolution (pyopus.optimizer.psade)
OLENŠEK, Jernej, BŰRMEN, Árpád, PUHAN, Janez, TUMA, Tadej. DESA : a new hybrid global optimization method and its application to analog integrated circuit sizing. Journal of global optimization, 2009, vol. 44, no. 1, pp. 53-77.
OLENŠEK, Jernej, TUMA, Tadej, PUHAN, Janez, BŰRMEN, Árpád. A new asynchronous paralell global optimization method based on simulated annealing and differential evolution. Applied soft computing, 2011, vol. 11, no. 1, pp. 1481-1489.
MADS with quadratic programming (pyopus.optimizer.qpmads)
BŰRMEN, Árpád, OLENŠEK, Jernej, TUMA, Tadej.
Mesh Adaptive Direct Search with Second Directional Derivative-Based Hessian Update.
Computational Optimization and Applications, 2015, vol. 62, pp. 693-715.
BŰRMEN, Árpád, FAJFAR, Iztok.
Mesh adaptive direct search with simplicial Hessian update.
Computational Optimization and Applications, 2019, vol. 74, pp. 645-667.
BŰRMEN, Árpád, TUMA, Tadej, OLENŠEK, Jernej.
Randomized Simplicial Hessian Update.
Mathematics, 2021, vol. 9.
Evaluation of worst case performance and distance (pyopus.design.wc, pyopus.design.wcd)
BŰRMEN, Árpád, HABAL, Husni. Computing worst-case performance and yield of analog integrated circuits by means of mesh adaptive direct search, Informacije MIDEM, 2015, vol. 45, no. 2, pp. 160-170.
Yield targeting (pyopus.design.yt)
CIJAN, Gregor, TUMA, Tadej, BŰRMEN, Árpád. Direct search approach to integrated circuit sizing for high parametric yield. IET circuits, devices & systems, 2011, vol. 5, no. 1, pp. 37-45.
Our research that used PyOPUS
Meta optimization of the Nelder-Mead optimization algorithm
BŰRMEN, Árpád, TUMA, Tadej, FAJFAR, Iztok. Meta-optimisation on a high-performance computing system. Electrotechnical Review, 2012, vol. 79, no. 5, pp. 231-236.
Differential evolution with smaller populations
FAJFAR, Iztok, TUMA, Tadej, PUHAN, Janez, OLENŠEK, Jernej, BŰRMEN, Árpád. Towards smaller populations in differential evolution. Informacije MIDEM, 2012, vol. 42, no. 3, pp. 152-163.
Efficient digital delay with break before make CMOS inverters
PUHAN, Janez, RAIČ, Dušan, TUMA, Tadej, BŰRMEN, Árpád. Break-before-make CMOS inverter for power-efficient delay implementation. The scientific world journal, 2014, vol. 2014, pp. 1-11.
New method for generating search directions in MADS
BÜRMEN, Arpad, TUMA, Tadej. Generating poll directions for mesh adaptive direct search with realizations of a uniformly distributed random orthogonal matrix. Pacific journal of optimization, 2016, vol. 12, pp. 813-832.
Evolutionary synthesis of circuit topology
ROJEC, Žiga, BÜRMEN, Arpad, FAJFAR, Iztok. Analog circuit topology synthesis by means of evolutionary computation. Engineering applications of artificial intelligence. 2019, vol. 80, pp. 48-65.
KUNAVER, Matevž. Grammatical evolution-based analog circuit synthesis. Inf. MIDEM, 2019, vol. 49.
News :
- 2024-08-26
PyOPUS 0.11.2 released - 2023-08-23
PyOPUS 0.11.1 released - 2023-06-01
PyOPUS 0.11 released - 2022-04-21
PyOPUS 0.10 released - 2018-09-10
PyOPUS 0.9 released - 2015-07-10
PyOPUS 0.8 released - 2012-12-04
PyOPUS 0.7 released - 2012-03-12
Windows Quickstart - 2011-10-15
PyOPUS 0.6 released
Links :
EDA Laboratory
Faculty of Electrical Engineering
University of Ljubljana
Maintained by Árpád Bűrmen
Design by Minimalistic Design