This is the third part of the work to select measurements / measurement combination for selfoptimizing control. It uses aberage loss as the criterion instead of the worst case loss presented in the second part.
Bidirection branch and bound (B3) is a very efficient BAB algorithm. In the first two parts, we developed b3msv and b3wc algorithms for minimum singular value and worst case loss.
V. Kariwala and Y. Cao, Bidirectional Branch and Bound for Controlled Variable Selection: Part III. Local Average Loss Minimization, IEEE Transactions on Industrial Informatics, Vol. 6, No. 1, pp. 54—61, 2010.
If Y is rank difficient, the original formular has to change because it was derived based on the assuption YY^T is not signular. As you said, this only possiblelly happens when measurement errors are ignored. In other words, we can always add very small measurement errors to avoid such singularity. You can always assume Wn = eI with a sufficiently small e to make the code works.
Hope this helps.
Dear Yi Cao, is there a way to make the code work for the case when Y has less than ny independent columns or generally if rank(Y) < ny? This situation occurs for example if the implementation error is disregarded and if nd < ny. In the downward tree it may cause a singular Y2(s,s). From my understanding pruning could be simply omitted and branching could be done based on another criterion (smallest element in diag(G2(s,s))). I made some attempts to modify the code but couldn't make it work. It would be very helpful if you could give advice. Thank you very much in advance!
This warning is at line 103, which is before actual BAB search. The line aims to calculate the average loss if all measurements are used. Therefore, the warning suggests your matrices, G and Y are close to singular. You can send me you code to have a look.
Hi Yi Cao, I have used your b3av file to select the top few candidates set for my controlled variables selection. However, a warning appears: Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.705851e-028.
> In b3av at 103
In CV_Wn_5percent_Juu2 at 17
I am not sure if this warning distorts or implicate my results as the top set of CVs selected is impossible to effect and hence I would like to seek your opinions on this issue.
Updated version to avoid divided by zero errors.
Update to deal with negative results which happen numerically.
Inspired: TEP Retrofit gSOC Case Study
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.