# algpaperRun

## Contents

- Comparative Numerical Examples (Overview) (developed in 2018, calendar week 02)
- 1. Real-World Data from Institute Fresnel
- 2. Experimental Set-Up "twoBoreholes" und Contrast "ship"
- 3. 3D
- References

## Comparative Numerical Examples (Overview) (developed in 2018, calendar week 02)

Names of the Software Packages (and Methods)

- IPscatt, see [1], (always used with primal-dual algorithm, i.e. `seti.invNo = 6`, see setInvType.html.)
- sparseScatt, see [2], (bases on (soft-)shrinkage; correct name of method: thresholded, nonlinear Landweber scheme).
- GLIDE, see [3], (wavelet with FISTA (Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems))

Note that IPscatt contains the functions of sparseScatt if seti.invNo = 1 and no pyhsical bounds are used. Therefore we can test the experimental set-up with two boreholes, that is in fact implemented in IPscatt and is not available in sparseScatt.

General settings in IPscatt:

- use colorbar default via `seti.colormap = 'default';` (instead of default `litman` in IPscatt)
- Figure output style prepared for publication: `seti.plotPublish = 1`

## 1. Real-World Data from Institute Fresnel

- is always with geometry circle (GLIDE is only able to deal with circle)
- 6 GHz ()
- plot real and imaginary part
- contrast: two dielectrics
- colorbar limits for all reconstructions with real-world data: `seti.usecbarlim = 1` and `seti.cbarlim = [-0.7, 2.0]`

a) GLIDE

Setting:

- Like in [2], Ch. 5.5, Fig. 5.6 (Tikhonov...)
- Method: Born Approximation, FISTA, cdf97 wavelet basis

Result:

- qROIcomp: real [-0.67,+1.72], imag [-0.61,+0.72].
- seti.cbarlim = [-0.7, 2.0]; (because of GLIDE and true contrast)
- FISTA exited because the maximum number of iterations was reached.
- Elapsed time of overall minimization process is 000.8 min.

Source Code:

- External source code: glide/matlab/tikhonov_fresnel_plotImag.m
- The source code of [3] is not part of IPscatt.

b) sparseScatt

Setting:

- seti.stepsizeStart = 1E-4; % a greater stepsize does not work(!)
- seti.alpha = 114; % autoparam3: alpha = 114.062 (20180124T145125_fresnelShrink_fresnel)
- seti.physBounds = [-inf,+inf,-inf,+inf]; % physBounds was unknown in original software
- seti.tau = 1.5;
- seti.delta = 0.15;

Result:

- Result: 20180124T160745_fresnelShrink_fresnel
- dis = 0.220, err = 0.552
- qROIcomp: real [-0.04,+1.66], imag [-0.25,+0.37].
- OK: seti.cbarlim = [-0.7, 2.0]; % 2.0 is needed because of the true contrast
- Reconstruction stopped after 50 outer iterations (by discrepancy principle).
- Elapsed time of overall minimization process is 004.4 min.

    inseti = 'fresnelShrink'; start; % OK

c) IPscatt:

Setting:

- seti.pdaN = 10; % bei paper1default pdaN = 50; % decreased; otherwise too high in first steps
- seti.alpha = 1E6; % autoparam3 used for assistance
- seti.beta = seti.alpha*1E-5/500;
- seti.physBounds = [-1,3,0,3];

Result:

- Result: 20180124T161217_fresnelPda_fresnel
- dis = 0.216, err = 0.542
- qROIcomp: real [-0.04,+1.84], imag [+0.00,+0.35].
- OK: seti.cbarlim = [-0.7, 2.0];
- Reconstruction stopped after 6 outer iterations (by discrepancy principle).
- Elapsed time of overall minimization process is 001.3 min.

    inseti = 'fresnelPda'; start; % OK

## 2. Experimental Set-Up "twoBoreholes" und Contrast "ship"

- Experimental Set-Up: twoBoreholes (We can use twoBoreholes in sparseScatt because IPscatt provides this experimental set-up.)
- Contrast: seti.contrast = 'ship2D';

Software packages:

- a) GLIDE: - (can not deal with experimental set-up twoBoreholes)
- b) sparseScatt
- c) IPscatt
- d) IPscatt with balanced penalty terms

a) GLIDE

– (see above)

b) sparseScatt

Setting:

- seti.alpha = 1E-4; % result of autoparam3 20180112T095944_shipBoreShrink
- seti.nOut = 5000;
- seti.stepsizeStart = 1; % works, but 10 does not work (error is 3 after one iteration)
- seti.tau = 1.5;
- seti.delta = 0.01;
- seti.physBounds = [-inf,+inf,-inf,+inf]; (deactivates physical bounds as they were unknown in original software sparseScatt)

Result:

- Resultat: 20180206T094930_shipBoreShrink
- dis = 0.015, err = 0.455
- qROIcomp: real [-0.26,+1.53], imag [-0.21,+1.11].
- qROIexact: real [-0.10,+1.28], imag [+0.00,+1.28].
- Not OK: seti.cbarlim = [-0.2, 1.65]; (imag of reconstruction would need -0.21; but no reason to adapt all colorbar limits)
- Reconstruction stopped after 2319 outer iterations (by discrepancy principle).
- Elapsed time of overall minimization process is 303.3 min.
- Run time: 5.055 h

    inseti = 'shipBoreShrink'; start; % OK

Remark to the effect of physical bounds

- Same setting but with physical bounds `seti.physBounds = [-1, 3, 0, 1];` (default) halves the time.

- Resultat: 20180124T163222_shipBoreShrink
- dis = 0.015, err = 0.406
- qROIcomp: real [-0.20,+1.51], imag [+0.00,+1.20].
- qROIexact: real [-0.10,+1.28], imag [+0.00,+1.28].
- OK: seti.cbarlim = [-0.2, 1.65]
- Reconstruction stopped after 1197 outer iterations (by discrepancy principle).
- Elapsed time of overall minimization process is 157.9 min.
- Run time: 2.6317 h

c) IPscatt

Setting:

- seti.alpha = 310; % autoparam3: alpha = 310.938, beta = 6.21875e-06
- seti.beta = seti.alpha*1E-5/500;
- seti.tau = 2.5 (default)
- seti.delta = 0.01;
- seti.physBounds = [-1,3,0,3];

Result:

- Result: 20180126T111520_shipBore
- qROIcomp: real [-0.13,+1.63], imag [+0.00,+1.39].
- qROIexact: real [-0.10,+1.28], imag [+0.00,+1.28].
- OK: seti.cbarlim = [-0.2, 1.65];
- dis = 0.025, err = 0.337
- Reconstruction stopped after 62 outer iterations (by discrepancy principle).
- Elapsed time of overall minimization process is 016.5 min.

    inseti = 'shipBorePda'; start; % OK

d) IPscatt with balanced penalty terms

Setting:

- shipBorePda;
- seti.beta = 6E-7; % kind of autoparam was used (as an exception, the error was considered apart from the discrepancy; this leads to the smallest error)
- seti.alpha = seti.beta*3.4E2; % then the penalty terms are balanced
- seti.pdaNlast = 5E5; % as in first paper (compIPscatt) it was set to 5E5 (is needed to iterate it to the "end")
- seti.tau = 1.5; % default was 2.5
- seti.nOut = 100;

Result:

- Result: 20180312T231819_shipBorePdaNlast10d
- dis = 0.026, err = 0.333
- qROIcomp: real [-0.19,+1.20], imag [+0.00,+1.07].
- qROIexact: real [-0.10,+1.28], imag [+0.00,+1.28].
- OK: seti.cbarlim = [-0.2, 1.65];

Result after first stop:

- After 63 outer iterations: dis1 = 0.015, err1 = 0.485
- Reconstruction stopped after 63 outer iterations (by discrepancy principle).
- Start the last outer iteration with 500000 inner iterations.
- Elapsed time of outer minimization iOut = 063 is 000.4 min.
- Elapsed time of overall minimization process is 016.5 min.

Result after second stop:

- After 64 outer iterations (discrepancy principle is not used any more!)
- last outer iteration is just done with 5E5 inner iterations.
- f_d = 1.9E-8, f_s = 4.2E-7, f_g = 4.1E-7, dis = 0.026, err = 0.333
- End: iOut = 64, 744 min = 12.4 h
- figures are OK; they show that the scheme is iterated to the end (i.e. no improvement expected for further iterations)

    inseti = 'shipBorePdaNlast'; start; % OK

## 3. 3D

- only with IPscatt
- The software packages GLIDE und sparseScatt are not able to deal with 3D
- New obstacle: two tripods (1x real, 1x imag)

Setting:

- seti.contrast = 'twoTripodsRealImag3D';
- seti.rCD = 2;
- seti.nCD = 256;
- seti.k = 10;
- seti.tau = 1.25;
- seti.alpha = 1000; (autoparam3 recomends a number between 1000 (OK) and 3250 (not OK); aborted more detailed search because of time.)
- seti.beta = seti.alpha*1E-5/500;
- seti.physBounds = [-1,3,0,3];

Result:

- Result: 20180125T140106_example3Dalg
- dis = 0.012, err = 0.464
- qROIcomp: real [-0.12,+1.07], imag [+0.00,+1.13].
- qROIexact: real [+0.00,+1.00], imag [+0.00,+1.00].
- OK: seti.cbarlim = [-0.15, 1.15];
- Reconstruction stopped after 15 outer iterations (by discrepancy principle).
- Elapsed time of overall minimization process is 360.8 min.
- Run time: 6.01 h

Sectional Planes Used in [1]:

- True contrast: fig. 22 (real 2nd direction), 24 (imag 1st direction),
- Corresponding reconstruction: 28 (iOut 15) (real 2nd dir.), 30 (iOut 15) (imag 1st dir.)

    inseti = 'example3Dalg'; start; % OK

## References

- [1] Florian Bürgel, Kamil S. Kazimierski, and Armin Lechleiter. Algorithm 1001: IPscatt—A MATLAB Toolbox for the Inverse Medium Problem in Scattering. ACM Transactions on Mathematical Software, 45(4), Article 45, 20 pages, 2019. URL: https://doi.org/10.1145/3328525.
- [2] Armin Lechleiter, Kamil S. Kazimierski, and Mirza Karamehmedovic. Tikhonov regularization in applied to inverse medium scattering. Inverse Problems, 29(7):075003, 2013. URL: https://doi.org/10.1088/0266-5611/29/7/075003.
- [3] Robin Strehlow. Regularization of the inverse medium problem: on nonstandard methods for sparse reconstruction. PhD thesis, Universität Bremen, 2014. Retrieved from https://nbn-resolving.de/urn:nbn:de:gbv:46-00104187-19.