View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
Bidirectional Branch and Bound for Average Loss Minimization

5.0 | 2 ratings Rate this file 4 Downloads (last 30 days) File Size: 8.34 KB File ID: #25870 Version: 1.4
image thumbnail

Bidirectional Branch and Bound for Average Loss Minimization


Yi Cao (view profile)


17 Nov 2009 (Updated )

Two algorithms for selection of controlled variables using the average loss as the criterion.

| Watch this File

File Information

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.


Bidirectional Branch And Bound Minimum Singular Value Solver (V2) and Bidirectional Branch And Bound Solvers For Worst Case Loss Minimization inspired this file.

This file inspired Tep Retrofit G Soc Case Study.

MATLAB release MATLAB 7.9 (R2009b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (4)
05 Sep 2012 Yi Cao

Yi Cao (view profile)

Hi Steffen,

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.


Comment only
04 Sep 2012 Steffen Heldt

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!

01 Feb 2010 Yi Cao

Yi Cao (view profile)

Hi Yinghui,

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.


Comment only
01 Feb 2010 Yinghui Tay

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.

15 Jan 2010 1.1

Update to deal with negative results which happen numerically.

18 Feb 2010 1.3

Updated version to avoid divided by zero errors.

23 Feb 2010 1.4

update reference.

Contact us