view stdparams_approx.py @ 21:d395461b92ae tip

Lots and lots of modifications. Approximate recovery script working.
author Nic Cleju <nikcleju@gmail.com>
date Mon, 23 Apr 2012 10:54:57 +0300
parents 2837cfeaf353
children
line wrap: on
line source
# -*- coding: utf-8 -*-
"""
Defines standard parameters for approximate reconstruction simulation

Author: Nicolae Cleju
"""
__author__ = "Nicolae Cleju"
__license__ = "GPL"
__email__ = "nikcleju@gmail.com"

import numpy

# Solver algorithms to run
from algos import *

# Test parameters
paramstest = dict()
#paramstest['algosN'] = nesta,      # tuple of algorithms not depending on lambda
#paramstest['algosL'] = lambda_sl0,  # tuple of algorithms depending on lambda (ABS-lambda)
paramstest['algosN'] = gap,mixed_sl0,mixed_bp,nesta      # tuple of algorithms not depending on lambda
paramstest['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst 
paramstest['d'] = 50.0
paramstest['sigma'] = 2.0
paramstest['deltas'] = numpy.array([0.05, 0.45, 0.95])
paramstest['rhos'] = numpy.array([0.05, 0.45, 0.95])
#deltas = numpy.array([0.95])
#deltas = numpy.arange(0.05,1.,0.05)
#rhos = numpy.array([0.05])
paramstest['numvects'] = 10;  # Number of vectors to generate
paramstest['SNRdb'] = 40.;    # This is norm(signal)/norm(noise), so power, not energy
# Values for lambda
#lambdas = [0 10.^linspace(-5, 4, 10)];
paramstest['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
paramstest['savedataname'] = 'approx_pt_stdtest.mat'
paramstest['saveplotbase'] = 'approx_pt_stdtest_'
paramstest['saveplotexts'] = ('png','pdf','eps')


# Prove 11 convergence
paramsl1prove = dict()
paramsl1prove['algosN'] = nesta,      # tuple of algorithms not depending on lambda
paramsl1prove['algosL'] = lambda_bp,  # tuple of algorithms depending on lambda (ABS-lambda)
paramsl1prove['d'] = 50.0
paramsl1prove['sigma'] = 2.0
paramsl1prove['deltas'] = numpy.array([0.8]) # m = 0.8*50 = 40
paramsl1prove['rhos'] = numpy.array([0.15]) # l = d - rho*m = 50 - 0.15*40 = 44
paramsl1prove['numvects'] = 100;  # Number of vectors to generate
paramsl1prove['SNRdb'] = 40.;    # This is norm(signal)/norm(noise), so power, not energy
paramsl1prove['lambdas'] = numpy.array([0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000])
paramsl1prove['savedataname'] = 'prove_approx_ell1.mat'
paramsl1prove['saveplotbase'] = 'prove_approx_ell1'
paramsl1prove['saveplotexts'] = ('png','pdf','eps')


# Standard parameters 1
# All algorithms, 100 vectors
# d = 50, sigma = 2, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000
# Noise 40db
params1 = dict()
params1['algosN'] = gap,mixed_sl0,mixed_bp,nesta      # tuple of algorithms not depending on lambda
params1['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst  # tuple of algorithms depending on lambda (ABS-lambda)
params1['d'] = 50.0
params1['sigma'] = 1.2
params1['deltas'] = numpy.arange(0.05,1.,0.05)
params1['rhos'] = numpy.arange(0.05,1.,0.05)
params1['numvects'] = 100;  # Number of vectors to generate
params1['SNRdb'] = 40.;    # This is norm(signal)/norm(noise), so power, not energy
params1['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
params1['savedataname'] = 'approx_pt_params1.mat'
params1['saveplotbase'] = 'approx_pt_params1_'
params1['saveplotexts'] = ('png','pdf','eps')

# Standard parameters 2
# All algorithms, 100 vectors
# d = 20, sigma = 10, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000
# Noise 40db
params2 = dict()
params2['algosN'] = gap,mixed_sl0,mixed_bp,nesta      # tuple of algorithms not depending on lambda
params2['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst  # tuple of algorithms depending on lambda (ABS-lambda)
params2['d'] = 50.0
params2['sigma'] = 2
params2['deltas'] = numpy.arange(0.05,1.,0.05)
params2['rhos'] = numpy.arange(0.05,1.,0.05)
params2['numvects'] = 100;  # Number of vectors to generate
params2['SNRdb'] = 40.;    # This is norm(signal)/norm(noise), so power, not energy
params2['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
params2['savedataname'] = 'approx_pt_params2.mat'
params2['saveplotbase'] = 'approx_pt_params2_'
params2['saveplotexts'] = ('png','pdf','eps')
  
  
# Standard parameters 3
# All algorithms, 100 vectors
# d = 50, sigma = 2, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000
# Identical with 1 but with 20dB SNR noise
params3 = dict()
params3['algosN'] = gap,mixed_sl0,mixed_bp,nesta      # tuple of algorithms not depending on lambda
params3['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst  # tuple of algorithms depending on lambda (ABS-lambda)
params3['d'] = 50.0
params3['sigma'] = 1.2
params3['deltas'] = numpy.arange(0.05,1.,0.05)
params3['rhos'] = numpy.arange(0.05,1.,0.05)
params3['numvects'] = 100;  # Number of vectors to generate
params3['SNRdb'] = 20.;    # This is norm(signal)/norm(noise), so power, not energy
params3['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
#params3['lambdas'] = numpy.array([0., 0.01, 0.1, 1, 10, 100])
params3['savedataname'] = 'approx_pt_params3.mat'
params3['saveplotbase'] = 'approx_pt_params3_'
params3['saveplotexts'] = ('png','pdf','eps')
          
# Standard parameters 4
# All algorithms, 100 vectors
# d = 20, sigma = 10, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000
# Identical to 2 but with 20dB SNR noise
params4 = dict()
params4['algosN'] = gap,mixed_sl0,mixed_bp,nesta      # tuple of algorithms not depending on lambda
params4['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst  # tuple of algorithms depending on lambda (ABS-lambda)
params4['d'] = 50.0
params4['sigma'] = 2.0
params4['deltas'] = numpy.arange(0.05,1.,0.05)
params4['rhos'] = numpy.arange(0.05,1.,0.05)
params4['numvects'] = 100;  # Number of vectors to generate
params4['SNRdb'] = 20.;    # This is norm(signal)/norm(noise), so power, not energy
params4['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
#params4['lambdas'] = numpy.array([0., 0.01, 0.1, 1, 10, 100])
params4['savedataname'] = 'approx_pt_params4.mat'
params4['saveplotbase'] = 'approx_pt_params4_'
params4['saveplotexts'] = ('png','pdf','eps')


# Standard parameters 5
# All algorithms, 100 vectors
# d = 50, sigma = 2, delta and rho full resolution (0.05 step), lambdas = 0, 1e-4, 1e-2, 1, 100, 10000
# VIRTUALLY NO NOISE, Noise 200db
params5 = dict()
params5['algosN'] = gap,mixed_sl0,mixed_bp,nesta      # tuple of algorithms not depending on lambda
params5['algosL'] = lambda_sl0,lambda_bp,lambda_ompeps,lambda_tst  # tuple of algorithms depending on lambda (ABS-lambda)
params5['d'] = 50.0
params5['sigma'] = 1.2
params5['deltas'] = numpy.arange(0.05,1.,0.05)
params5['rhos'] = numpy.arange(0.05,1.,0.05)
params5['numvects'] = 10;  # Number of vectors to generate
params5['SNRdb'] = 200.;    # This is norm(signal)/norm(noise), so power, not energy
params5['lambdas'] = numpy.array([0., 0.0001, 0.01, 1, 100, 10000])
params5['savedataname'] = 'approx_pt_params5.mat'
params5['saveplotbase'] = 'approx_pt_params5_'
params5['saveplotexts'] = ('png','pdf','eps')

params3sl0 = dict()
params3sl0['algosN'] = mixed_sl0,      # tuple of algorithms not depending on lambda
params3sl0['algosL'] = lambda_sl0,  # tuple of algorithms depending on lambda (ABS-lambda)
params3sl0['d'] = 50.0
params3sl0['sigma'] = 1.2
params3sl0['deltas'] = numpy.arange(0.05,1.,0.25)
params3sl0['rhos'] = numpy.arange(0.05,1.,0.25)
#params3sl0['deltas'] = numpy.array([0.85])
#params3sl0['rhos'] = numpy.array([0.15])
params3sl0['numvects'] = 10;  # Number of vectors to generate
params3sl0['SNRdb'] = 20.;    # This is norm(signal)/norm(noise), so power, not energy
#params3sl0['lambdas'] = numpy.array([0., 0.01, 0.1, 1, 10, 100])
params3sl0['lambdas'] = numpy.array([0.0001, 10000])
params3sl0['savedataname'] = 'approx_pt_params3sl0.mat'
params3sl0['saveplotbase'] = 'approx_pt_params3sl0_'
params3sl0['saveplotexts'] = ('png','pdf','eps')