Quantcast
Channel: Machine Learning
Viewing all articles
Browse latest Browse all 62845

Greedy BFS multi-variate optimization?

$
0
0

I'm trying to come up with a fast way to optimize a function which takes a large number of variables, each of which can take a finite set of values.

I have an idea which seems like, if polished, would give a good greedy solution, but I know something like this is sure to have been done already or there's a better way to do it; so what I'm looking for is some suggestion on papers to look at to accomplish what I'm trying to do.

The algorithm I have in mind goes as follows:

 

The objective is to maximize function f(a,b,c), where a,b,c can take on values in some finite sets A,B,C.

Base solution = f(a0,b0,c0)

Depth one branches are f(a1,b0,c0), f(a0,b1,c0), f(a0,b0,c1)

Depth two branches are f(a2,b0,c0), f(a0,b2,c0), f(a0,b0,c2)

Depth n branches are f(an, b0, c0), f(a0, bn, c0), f(a0, b0, cn)
 

So you have a tree like:

 f(a0,b0,c0) / | \ f(a1,b0,c0) f(a0,b1,c0) f(a0,b0,c1) | | | f(a2,b0,c0) f(a0,b2,c0) f(a0,b0,c2) | | | ... ... ... 

If the first depth branches has a better solution than the base, that branch becomes the new base; next round.

Otherwise, move to the next depth and search the branches.

Each depth's branches are just the previous root's parameter index + 1. So for example if f(a1,b0,c0) is a better solution, it becomes the base and the next tree is

 f(a1,b0,c0) / | \ f(a2,b0,c0) f(a1,b1,c0) f(a1,b0,c1) | | | f(a3,b0,c0) f(a1,b2,c0) f(a1,b0,c2) | | | ... ... ... 

The algorithm ends when reaching a leaf node, at which point the root is the returned solution.

submitted by WTFseriously_
[link][2 comments]

Viewing all articles
Browse latest Browse all 62845

Trending Articles