Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When locally optimal solutions equal global optimal? Thinking about greedy algorithm

Recently I've been looking at some greedy algorithm problems. I am confused about locally optimal. As you know, greedy algorithms are composed of locally optimal choices. But combining of locally optimal decisions doesn't necessarily mean globally optimal, right?

Take making change as an example: using the least number of coins to make 15¢, if we have 10¢, 5¢, and 1¢ coins then you can achieve this with one 10¢ and one 5¢. But if we add in a 12¢ coin the greedy algorithm fails as (1×12¢ + 3×1¢) uses more coins than (1×10¢ + 1×5¢).

Consider some classic greedy algorithms, e.g. Huffman, Dijkstra. In my opinion, these algorithms are successful as they have no degenerate cases which means a combination of locally optimal steps always equals global optimal. Do I understand right?

If my understanding is correct, is there a general method for checking if a greedy algorithm is optimal?

I found some discussion of greedy algorithms elsewhere on the site. However, the problem doesn't go into too much detail.

like image 964
Ivan Avatar asked Jun 29 '11 00:06

Ivan


People also ask

What does it mean by reaching local optimum and global optimum in greedy approach?

A local optimum can be obtained by finding the optimal solution within a neighboring set of candidate solutions. A global optimum can be obtained by finding the optimal solutions among all possible solutions.

Does greedy algorithm always gives an optimal solution?

Greedy algorithms typically (but not always) fail to find the globally optimal solution because they usually do not operate exhaustively on all the data. They can make commitments to certain choices too early, preventing them from finding the best overall solution later.

Which algorithm is used to make a locally optimal choice in the locally optimal choice in the hope that this choice will lead to a globally optimal solution?

A greedy algorithm always makes the choice that looks best at the moment. That is, it makes a locally optimal choice in the hope that this choice will lead to a globally optimal solution.

What does an optimal solution offered by a greedy algorithm depend upon?

Greedy choice property: This property says that the globally optimal solution can be obtained by making a locally optimal solution (Greedy). The choice made by a Greedy algorithm may depend on earlier choices but not on the future.


3 Answers

Generally speaking, a locally optimal solution is always a global optimum whenever the problem is convex. This includes linear programming; quadratic programming with a positive definite objective; and non-linear programming with a convex objective function. (However, NLP problems tend to have a non-convex objective function.)

Heuristic search will give you a global optimum with locally optimum decisions if the heuristic function has certain properties. Consult an AI book for details on this.

In general, though, if the problem is not convex, I don't know of any methods for proving global optimality of a locally optimal solution.

like image 163
Ted Hopp Avatar answered Sep 21 '22 15:09

Ted Hopp


There are some theorems that express problems for which greedy algorithms are optimal in terms of matroids (also:greedoids.) See this Wikipedia section for details: http://en.wikipedia.org/wiki/Matroid#Greedy_algorithms

like image 36
Rafał Dowgird Avatar answered Sep 18 '22 15:09

Rafał Dowgird


A greedy algorithm almost never succeeds in finding the optimal solution. In the cases that it does, this is highly dependent on the problem itself. As Ted Hopp explained, with convex curves, the global optimal can be found, assuming you are to find the maximum of the objective function of course (conversely, concave curves also work if you are to minimise). Otherwise, you will almost certainly get stuck in the local optima. This assumes that you already know the objective function.

Another factor which I can think of is the neighbourhood function. Certain neighbourhoods, if large enough, will encompass both the global and local maximas, so that you can avoid the local maxima. However, you can't make the neighbourhood too large or search will be slow.

In other words, whether you find a global optimal or not with greedy algorithms is problem specific, although for most cases, you will not find the globally optimal.

like image 40
Dhruv Gairola Avatar answered Sep 22 '22 15:09

Dhruv Gairola