Download Presentation Slides

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Randomized Algorithms
Morteza ZadiMoghaddam
Amin Sayedi
Types of Randomized algorithms


Las Vegas
Monte Carlo
Las Vegas




Always gives the true answer.
Running time is random.
Running time is bounded.
Quick sort is a Las Vegas algorithm.
Monte Carlo



It may produce incorrect answer!
We are able to bound its probability.
By running it many times on independent
random variables, we can make the failure
probability arbitrarily small at the expense
of running time.
Monte Carlo Example

Suppose we want to find a number among
n given numbers which is larger than or
equal to the median.
Monte Carlo Example
Suppose A1 < … < An.
We want Ai, such that i ≥ n/2.
It’s obvious that the best deterministic
algorithm needs O(n) time to produce the
answer.
n may be very large!
Suppose n is 100,000,000,000 !
Monte Carlo Example



Choose 100 of the numbers with equal
probability.
find the maximum among these numbers.
Return the maximum.
Monte Carlo Example



The running time of the given algorithm is
O(1).
The probability of Failure is 1/(2100).
Consider that the algorithm may return a
wrong answer but the probability is very
smaller than the hardware failure or even
an earthquake!
Monte Carlo



Suppose the output is Yes or No.
One sided error.
Two sided error.
RP Class
( randomized polynomial )




Bounded polynomial time in the worst
case.
If the answer is Yes; Pr[ return Yes] > ½.
If the answer is No; Pr[ return Yes] = 0.
½ is not actually important.
PP Class
( probabilistic polynomial )




Bounded polynomial time in worst case.
If the answer is Yes; Pr[ return Yes] > ½.
If the answer is No; Pr[ return Yes] < ½.
Unfortunately the definition is weak
because the distance to ½ is important
but is not considered.
Routing Problem





There are n computers.
Each computer has a packet.
Each packet has a destination D(i).
Packets can not follow the same edge
simultaneously.
An oblivious algorithm is required.
Routing Problem

For any deterministic oblivious algorithm
on a network of N nodes each of
outdegree d, there is an instance of
permutation routing requiring (N/d) ½.
Routing Problem




Pick random intermediate destination.
Packet i first travels to the intermediate
destination and then to the final
destination.
With probability at least 1-(1/N), every
packet reaches its destination in 14n of
fewer steps in Qn.
The expected number of steps is 15n.
Maximum Satisfiability




You have m clauses and n boolean
variables.
Each clause contains some of variables or
some of complements.
A clause is satisfied if at least one of it’s
variables are satisfied.
We want to set the variables such that the
number of satisfied clauses is maximized.
Example for Maximum Sat






There are 3 variables A, B and C.
M1 = (A) or (B)
M2 = (A) or (not B) or (not C)
M3 = (C)
M4 = (B) or (not C)
M5 = (not C)
Example of Maximum Sat

Set A = True
Set B = True
Set C = False

Four of the clauses are satisfied.


Maximum Sat

This problem is a famous problem which
has no polynomial time algorithm yet. It’s
NP-hard.
Maximum Sat

For any set of m clauses, there is truth
assignment for the variables that satisfies
at least m/2 clauses.
Maximum Sat





Let Zi =1 if the i-th clause is satisfied and
0 otherwise.
Set the variables in a random way.
The probability of a clause with k variables
to be true is 1- (1/(2k)) >= ½.
So E[Z1]+…+E[Zm] >= ½.
Thus there exist at least one assignment
such that Z1+…+Zm >= ½.
Maximum Sat algorithm



This problem is NP-hard so we seek for
approximation algorithms.
We have an algorithm that produces an answer
which is at least ½ of the best answer.
If all clauses have at least 2 literals then we
have an algorithm that produces an answer
which is at least ¾ of the best one.
Maximum Sat algorithm








We want to maximize Z1+…+Zm.
We have some inequalities:
∑ yi (if Xi is in Zj and is uncomplemented)
∑ (1-yi) (if Xi is in Zj and is complemented).
This inequality must be hold:
∑ yi + ∑ (1-yi) >= Zj
This problem could be solved using integer
linear programming.
We have to use linear programming.
Maximum Sat




Solve the problem using linear
programming.
You get a real number for each yi or zi.
Assign Xi true with the probability yi.
The expected number of clauses that are
satisfied is (1- 1/e) of the best answer.
Maximum Sat algorithm

Using both algorithms and choosing the
better answer gives us an answer which is
at least ¾ of the best answer!!! Which is
better than ½ and 1- 1/e.
2-Sat







Every clause has at most 2 literals.
We want to check if all clauses can be satisfied.
It has polynomial algorithm.
Assign random values to the variables.
If all clauses are satisfied we are finished.
If there is an unsatisfied clause, the value of one
of it’s literals is different from the best answer.
Change the value of one of the variables in this
clause. You may make a good change or bad
one.
2-Sat





You are walking on a path.
If you are on 0 you go to 1.
If you are on i you go to i+1 or i-1 with
equal probability.
The expected number of steps to reach
the end of the path is O(n2).
So the given algorithm is O(n3).
Graph Connectivity





You want to check if two vertices u and v
are in the same connected component.
Start a random walk from v.
Have a random walk of length 2n3.
If you haven’t visited u, the probability of
u to be in this component is less than ½.
By repeating this algorithm, you can make
the probability of failure arbitrarily small.
Graph Connectivity


Running time of algorithm is O(n3).
Required space is O(logn).
Diameter of a Point Set



You want to find the diameter of set of n
points in the space.
Suppose I(x) is the convex body formed
by the intersection of n sphere centered at
n points with radius x.
F(p) is distance between p and the point
in the set that is farthest from p.
Diameter of a Point Set



Consider I(x) when x=F(p).
For any q in S, if q is in I(x) then
F(q)<F(p).
And if q is not in I(x) then F(p)<F(q).
Diameter of a Point Set




Pick a point p in s at random. Computer
F(p). [O(n)]
Set x=F(p). Compute I(x). [O(n logn)]
Find the points outside I(x). Call this set T.
[O(n logn)]
If T is empty return x as the answer, else
continue on T.
Diameter of a Point Set


The running time of algorithm above is
O(n log n).
In each step, all points that have smaller
F(x) than the chosen point are removed.
All-Pairs Shortest Paths



Let G(V,E) be an undirected, connected
graph with V={1,…,n} and |E|=m.
The adjacency matrix A is an n  n 0-1
matrix with Aij=Aji=1 if and only if the
edge (i,j) is present in E.
We are going to compute matrix D which
Dij equals the length of a shortest path
from vertex i to vertex j.
All-Pairs Distances






Z A2
Compute matrix A’ such that A’ij=1 if and only if
i ≠ j and (Aij=1 or Zij>0)
If A’ij=1 for all i ≠ j then return D = 2A’-A.
Recursively compute the APD matrix D’ for the
graph G’ with adjacency matrix A’.
S AD’
Return matrix D with Dij=2D’ij if Sij≥D’ijZii ,
otherwise Dij=2D’ij-1.
APSP


The APD algorithm computes the distance
matrix for an n-vertex graph in time
O(MM(n)log(n)) using integer matrix
multiplication algorithm.
Matrix multiplication algorithm running in
time O(n2.376).
Boolean Product Witness Matrix


Suppose A and B are nn boolean
matrices and P=AB is their product under
Boolean matrix multiplication.
A witness for Pij is an index k  {1,…,n}
such that Aik=Akj=1. Observe that Pij=1 if
and only if it has some witness k.
BPWM




W -AB
2. for t=0,…, log(n) do
2.1. r 2t
2.2. Repeat 3.77log(n) times




2.2.1. Choose random R  {1,…,n} with |R|=r .
2.2.2. Compute AR and BR .
2.2.3. Z ARBR .
2.2.4. for all (i,j) do


if Wij < 0 and Zij is witness then Wij Zij
3. for all (i,j) do

if Wij < 0 then find witness Wij by brute force.
BPWM



The BPWM algorithm is a Las Vegas
algorithm for the BPWM problem with
expected running time O(MM(n)log2(n)).
The probability that no witness is found
for Pij before the end of Step 2 is at most
(1-1/2e)3.77log(n)  1/n.
Determining Shortest Path

A successor matrix S for an n-vertex graph
G is an n  n matrix such that Sij is the
index of a neighbor of vertex i that lies on
a shortest path from i to j.
APSP


Compute the distance matrix D=APD(A).
for s={0,1,2} do



Compute 0-1 matrix Dkj(s)=1 if and only if
Dkj+1 = s (mod 3)
Compute the witness matrix
W(s)=BPWM(A,D(s)).
Compute successor matrix S for G.
APSP

Algorithm APSP computes the successor
matrix for an n-vertex graph G in expected
time O(MM(n)log2(n)).
Algorithm contract


H G
While H has more than 2 vertices do




Choose an edge (x,y) uniformly at random
from the edges in H.
F F  {(x,y)}.
H H / (x,y).
(C,V/C) the sets of vertices corresponding
to the two meta-vertices in H=G/F.
FastCut


n |v|
if n  6 then compute min-cut of G by bruteforce enumeration else




t 1+n/2
Using Algorithm Contract, perform two independent
contraction sequences to obtain graphs H1 and H2
each with t vertices.
Recursively compute min-cuts in each of H1 and H2.
Return the smaller of the two min-cuts.
Fastcut


Algorithm Fastcut succeeds in finding a
min-cut with probability (1/log(n)).
Algorithm Fastcut runs in O(n2log(n)) time
and uses O(n2) space.
MST


Finding MST in a graph with n vertices and
m edges has a Las Vegas algorithm which
has the expected running time O(n+m).
But We don’t have enough time to Explain
it !!!
Research problems


Devise an algorithm for the all-pairs shortest
paths problem that does not use matrix
multiplication and runs in time O(n3-) for a
positive constant .
Devise an algorithm for computing the diameter
of an unweighted graph that does not use
matrix multiplication and runs in time O(n3-) for
a positive constant .
Research problems


Devise a Las Vegas or a deterministic
algorithm for min-cuts with running time
close to O(n2).
Is there a randomized algorithm for mincuts with expected running time close to
O(m)?
Related documents