Q&A

What is submodular maximization?

What is submodular maximization?

Equivalently, a function f : 2V → R is submodular if for every A, B ⊆ V , f(A ∩ B) + f(A ∪ B) ≤ f(A) + f(B). For submodular maximization, the intuition provided by the first definition is often help- ful: Suppose we interpret S ⊂ V as a set of actions which provide some benefit f(S).

How do you prove a function is submodular?

A function f : 2N → R is said to be submodular, if it satisfies following property of diminishing marginal returns: for every A ⊆ B ⊆ N and j ∈ B, f(A ∪ {j}) − f(A) ≥ f(B ∪ {j}) − f(B). One way to understand submodularity is to think of f as a utility functions.

Is submodular function convex?

Theorem 2 (Lovász) A set function f : 2S → R with f(∅)=0 is submodular iff ˆf is convex.

What makes an algorithm greedy?

A greedy algorithm is an algorithmic strategy that makes the best optimal choice at each small stage with the goal of this eventually leading to a globally optimum solution. This means that the algorithm picks the best solution at the moment without regard for consequences.

Which is faster greedy method or dynamic programming?

Greedy methods are generally faster. For example, Dijkstra’s shortest path algorithm takes O(ELogV + VLogV) time. Dynamic Programming is generally slower. For example, Bellman Ford algorithm takes O(VE) time.

Is Dijkstra A greedy algorithm?

It is a greedy algorithm that solves the single-source shortest path problem for a directed graph G = (V, E) with nonnegative edge weights, i.e., w (u, v) ≥ 0 for each edge (u, v) ∈ E.

What is the difference between greedy & Dynamic Programming?

In a greedy Algorithm, we make whatever choice seems best at the moment in the hope that it will lead to global optimal solution. In Dynamic Programming we make decision at each step considering current problem and solution to previously solved sub problem to calculate optimal solution .

What is the principle of optimality in Dynamic Programming?

The principle of optimality is the basic principle of dynamic programming, which was developed by Richard Bellman: that an optimal path has the property that whatever the initial conditions and control variables (choices) over some initial period, the control (or decision variables) chosen over the remaining period …

Does Dijkstra use dynamic programming?

From a dynamic programming point of view, Dijkstra’s algorithm is a successive approximation scheme that solves the dynamic programming functional equation for the shortest path problem by the Reaching method.

Can you explain dynamic programming?

Dynamic Programming (DP) is an algorithmic technique for solving an optimization problem by breaking it down into simpler subproblems and utilizing the fact that the optimal solution to the overall problem depends upon the optimal solution to its subproblems.

What are the basic principles of dynamic programming?

Dynamic programming computes its solution bottom up by synthesizing them from smaller subsolutions, and by trying many possibilities and choices before it arrives at the optimal set of choices. There is no a priori litmus test by which one can tell if the Greedy method will lead to an optimal solution.

Which is an application of a submodular function?

Submodular functions have a natural diminishing returns property which makes them suitable for many applications, including approximation algorithms, game theory (as functions modeling user preferences) and electrical networks.

What do you call a non monotone submodular function?

A non-monotone submodular function which is not symmetric is called asymmetric. be the vertices of a directed graph. For any set of vertices .

How are submodular functions related to diminishing returns?

Owing to the diminishing returns property, submodular functions naturally model costs of items, since there is often a larger discount, with an increase in the items one buys. Submodular functions model notions of complexity, similarity and cooperation when they appear in minimization problems.