next up previous
Next: References Up: Matlab codes for optimization Previous: General description

Detailed Description

The architecture of this set of codes and the interaction among them is shown in Figure 1. The main testing code main_code.m calls the code riemann_grad_unit_opt.m that performs Riemannian optimization under unitary matrix constraint. Steepest Descent/Ascent (SD/SA) algorithm (see Table 1 in [2]), Conjugate Gradient (CG-PR, CG-FR) algorithms (both Fletcher-Reeves and Polak-Ribière formulas, see Table 3 in [1]) are implemented. This code further calls the codes implementing line search methods: Armijo method geod_search_armijo.m [2], as well as the polynomial and DFT-based approximation line search methods proposed in [1] geod_search_poly.m, geod_search_dft.m.

The main objective of this architecture was to separate the Riemannian optimization part from the cost function specific part. This way, the codes can be easily adapted to any other smooth cost function. The cost function specific scripts are cf_eval.m that computes the value of the cost function and euclid_grad_eval.m that computes the Euclidean gradient of the cost function at a given point on the unitary group. The cost function specific scripts/parameters are shown with blue color in Figure 1. Here, the Brockett function is taken as an example, but the changes that would be required to optimize other cost function are straight-forward. Additional small scripts are also called from the unitary optimization core, such as unit_crit_eval.m, diag_crit_eval.m, innerprod.m, skew.m.

Figure 1: The interaction among scripts.
\includegraphics[width=18cm]{figures/riemann_opt_codes_arch.eps}

As an example, the Brockett criterion is optimized (minimized or maximized, depending on the choice). One typical simulation is shown in Figure 2 in the case of maximization, and in Figure 3 in the case of minimization.

Figure 2: Example of maximizing the Brockett cost function.
\includegraphics[width=18cm]{figures/unitary_optimization_max.eps}

Figure 3: Example of minimizing the Brockett cost function.
\includegraphics[width=18cm]{figures/unitary_optimization_min.eps}


next up previous
Next: References Up: Matlab codes for optimization Previous: General description
Traian Emanuel Abrudan 2014-03-06