Coder Social home page Coder Social logo

sergeivolodin / caqm Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 62.47 MB

CAQM: Convexity Analysis of Quadratic Maps arXiv:1810.00896

Home Page: https://arxiv.org/abs/1810.00896

License: MIT License

MATLAB 100.00%
convex-optimization matlab quadratic-equations quadratic-map power-flow feasibility hidden-convexity

caqm's Introduction

CAQM: Convexity Analysis of Quadratic Maps

Code for various tasks for quadratic maps.

See the paper Geometry of quadratic maps via convex relaxation, Anatoly Dymarsky, Elena Gryazina, Sergei Volodin, Boris Polyak, 2018, arXiv:1810.00896

Prerequisites

  • MATLAB (tested with 9.6-2019a) with Parallel Computing toolbox
  • CVX. Tested with Version 2.1, Build 1127 (95903bf)
  • Tested on Linux (Debian 10.1) amd64 kernel 4.19.0-6-amd64, Java version 1.8.0_181
  • Mathematica 12 for semi-analytical tests and figures 4, 7

Installing

See doc/readme.pdf file

Testing

To test separate functions run in MATLAB from root directory:

>> cd tests
>> runtests('testFunctions')

Result should be like the following:

Totals:
   15 Passed, 0 Failed, 0 Incomplete.
   45.7854 seconds testing time.

Moreover, see tests/testCAQM.m as an example of library usage.

>> cd tests
>> testCAQM

Should give output ending with TEST PASSED. A Youtube video demonstrates how the test normally performs.

For more information see doc/readme.pdf

License

See LICENSE.txt

Files and folders

  • / -- main functions (see doc/readme.pdf)
  • library/ -- supplementary functions (see doc/library.pdf)
  • doc/ -- documentation
  • examples/ contains the code which reproduces the results from the Section 7. Examples from the article, both using our library (MATLAB) and using semi-analytical methods (Mathematica)
  • examples/figures/ -- MATLAB code for drawing figures from the article:
    • example05_c_minus.m reproduces Fig. 5a
    • example05_c_dot_z_c_t_plot.m reproduces Fig. 5b
    • example06_c_minus.m reproduces Fig. 6a
    • example06_c_dot_z_c_t_plot.m reproduces Fig. 6b
    • homogeneous_procedure_H.m reproduces Fig. 8
  • examples/ also contains Mathematica notebooks for reproducing Figures 4 and 7: article_example01_fig4.nb and article_example10_fig7.nb
  • examples/maps -- sample quadratic maps
  • tests/ -- code for testing the setup

Parameters

The library contains several numerical constants the purpose of which is described on the second page of the supplementary functions document doc/library.pdf.

Further reading

Refer to the documentation in doc/readme.pdf and the article

Copyright (c) 2015-2019 Anatoly Dymarsky, Elena Gryazina, Sergei Volodin, Boris Polyak

caqm's People

Watchers

Sergei Volodin avatar

caqm's Issues

Case Rg=n-2 for R map

  1. Found a map for which Rg=n-2 means that the C_- curve ends
  2. Can have other cases?

Analytical solution: derive eigenvalues as functions of theta, phi in Mathematica. See if different families of eigenvalues touch or intersect. Also can check if curve lambda_1=lambda_2 intersects with C_-

Add examples with other dimensionality

Random examples in:

  1. R5 → R5 (non-homogeneous)
  2. C3 → R5 (non-homogeneous)
  3. C3 → R6 (non-homogeneous)
  4. R4 → R4 (homogeneous)

Possible ways of making the description of the map shorter: low precision or integer matrices

  1. Check if algorithms do not fail
  2. Try finding C_
  3. Try finding zmax

4 Homogeneous example R4 → R4

A(:, :, 1) = [0 1 0 0; 1 0 0 0; 0 0 0 1; 0 0 1 0];
A(:, :, 2) = [0 0 1 0; 0 2 0 1; 1 0 2 0; 0 1 0 0];
A(:, :, 3) = [0 0 0 1; 0 -1 1 0; 0 1 1 0; 1 0 0 0];
A(:, :, 4) = eye(4);
b = zeros(4);
rng(10);
c_minus = get_c_minus(A, b, [0, 0, 0, 1]', 10);
rng(10);
is_nonconvex = nonconvexity_certificate(A, b, [0, 0, 0, 1]', 10);

display(is_nonconvex);
display(c_minus);

Better optimizer for z(c)

Since in C case a constraint function minimization is used as projection, it can also be used in R case.

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.