Skip to main content

optimize norm with underdetermined system equality constraint

Project description

sparsest-solution-underdetermined-linear-system

optimize norm with underdetermined system equality constraint

problem statement

Minimize ||x||_p
Given Ax=b
where   x \in R^n
        A \in R^{m \times n}
        b \in R^m
        p \in R_+

algorithm

unconstrained optimization (L_p norm, p >= 1)

Minimize ||Ax-b||_2^2 + ||x||_p^p
Let z \in R^{n-m} be an arbitrary vector.
Represent the solution of Ax=b by x = A* z + b* // see boyd convex optimization
The problem becomes minimizing ||A*z + b*||_p

linear programming (L_1 norm)

# idea
Let y \in R^{n} with 2 additional constraints
y \geq x and y \geq -x (element-wise)
Let u = [x, y] \in R^{2n}, the feasible set is a polyhedron.
Minimize sum of y, get x

# explanation
y \geq x and y \geq -x constraint y \geq |x|
Let u1 = [x1, y1] be the minimizer.
It is easy to prove that minimal y, y1 = |x1|
Hence, the LP formulation yeilds the same solution as the original problem.

results (m = 400, n = 2000, random A b)

L2 norm sparsity

norm2

L1.001 norm sparsity

norm1001

L1 norm sparsity

norm1

Packaging

rm -rf dist/*
python setup.py sdist bdist_wheel
twine upload dist/*

Useful links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sparse_uls-6.2.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

sparse_uls-6.2-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file sparse_uls-6.2.tar.gz.

File metadata

  • Download URL: sparse_uls-6.2.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for sparse_uls-6.2.tar.gz
Algorithm Hash digest
SHA256 d8c6a8a497717b3d2f68bbc5b0449aad5323352eaffedfeed3c7046a0c287021
MD5 ab66fe5291a84fb0bfb82a689901669f
BLAKE2b-256 591c91c085ae822511f0ab0a6c1b87b1ef9e9a8adab9264b04a7fd4a7e526820

See more details on using hashes here.

File details

Details for the file sparse_uls-6.2-py3-none-any.whl.

File metadata

  • Download URL: sparse_uls-6.2-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for sparse_uls-6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1d611e14d7e621ec73b3e79254c7791b5531d6ca4bc751436c2089de74089ae2
MD5 256e05127b25874179ef33f04476396a
BLAKE2b-256 973a9d201ff028573a2a48c5628b6de12990d83d07222ce06a74bc82c961b897

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page