Algoritmi on-line e risoluzione di problemi complessi

Download Report

Transcript Algoritmi on-line e risoluzione di problemi complessi

Algoritmi on-line e risoluzione di problemi complessi

Carlo Fantozzi ([email protected])

Summary & Caveats

• • From Professor Ausiello’s course Structure of the talk:  

approximation algorithms

(core)

on-line algorithms

(a few words) • • • 16:1 compression ratio!

Heterogeneous audience (& dumb speaker) No details: only the framework of the course

Complexity Theory

• • • What is efficiently computable?

Efficient = “Polynomial time” Decision problems: yes/no answer • • • • The

P class

: poly-time solution The

NP class

: poly-time verification Poly-time (Karp) reductions  NP-hard problems  NP-complete problems P  NP; is it also P=NP?

Optimization problems

• Optimization problem: a quadruple  Set of instances

I

  Set of feasible solutions

S

Cost function

m

(

x

,

y

),

x

I

,

y

S

 min/MAX • We are interested in

optimal

solutions • Example: min vertex cover

Optimization: 3 Approaches

• • •

Decision

problem: “is there a solution with cost 

m

? 

m

?”

Evaluation

problem: “find optimal value of cost function”

Constructive optimization

“find the optimal solution” problem: • • Approaches are not (proved to be) equivalent.

They are equivalent whenever the decision problem is NP-complete.

Complexity Revised (1)

• • Solutions have polynomial size Cost function computable in poly time • • PO class: poly-time algorithm returns optimal solution

and

optimal cost NPO class: poly-time verification alg. for

feasible

solutions • PO  NPO; is it also PO=NPO?

Complexity Revised (2)

• • Poly-time Turing reductions; P1  T P2 if there exists an algorithm for P1 which queries an oracle for P2

NP-hard

optimization problem: every decision problem is T-reducible to it in poly time •

PO=NPO if and only if P=NP

: do not hope for poly time algs…

Approximation Algs (1)

• •

Poly-time

algs that give approx solutions Guaranteed performance (1970s): maximum “distance” from optimum over all problem instances • • •

Absolute approximation

: cost within an

additive

constant from opt.

Relative error

:

E

(

x

,

y

)=|opt(

x

)-

m

(

x

,

y

)|/MAX{opt(

x

),m(

x

,

y

)}

Performance ratio

:

R

(

x

,

y

)=MAX{

m

(

x

,

y

)/opt(

x

),opt(

x

)/

m

(

x

,

y

)}

Approximation Algs (2)

r-approximate algorithm

:

R

(

x

,

y

) 

r

x

, i.e. cost is at most

r

times the optimum • Example:

min vertex cover

(NP-hard)  Pick an edge  Include nodes of the edge into the cover  Remove nodes from the graph; repeat • Greedy algorithm is 2-approximate

Approximation classes

• • Sometimes things are not so easy Some problems are “more approximable” than others • • Many approximation classes exist  The APX class  The PTAS class  The FPTAS class These classes form a hierarchy

if P

NP

The APX class

• Class of all NPO problems that admit a poly-time

r

-approximate algorithm • • The general TSP is

not

(unless P=NP) in the APX class The metric TSP is in the APX class (best algorithm: Cristofides', with a 3/2 performance ratio)

The PTAS class

• • • Class of NPO problems that admit a poly-time

approximation scheme

An approximaxion scheme is a

tunable

can trade running time for performance alg: An algorithm is a PTAS for P if it gives an

r

-approx. solution in poly time for

any r

>1 • • The metric TSP is

not

in the PTAS class: no (129/128)-approximate algorithm exists The Euclidean TSP is in the PTAS class

The FPTAS class

• The approximation scheme must be polynomial in both |

x

| and

r

• Problems in this class are optimally solvable for most practical purposes • • • The Euclidean TSP is

not

in FPTAS Maximum Knapsack is in FPTAS Not many problems belong to FPTAS

Class Hierarchy

NPO

e.g. TSP

APX

e.g. MTSP

PTAS

e.g. ETSP

FPTAS

e.g. Knapsack

Approximation Techniques

• • • • • Greedy approach Linear programming Dynamic programming Randomization Computational geometry • A compendium of NPO problems: http://www.nada.kth.se/~viggo/wwwcompendium/

On-Line Algorithms

• An

on-line algorithm

 does not know entire input in advance  must take a decision each time it receives an input piece; each decision has a cost  total cost must be maximized/minimized • The constraint on the input makes these optimization problems much more difficult!

Off-line algorithm

: knows entire input as usual

Performance Evaluation

Competitive analysis

: compare on-line solution & optimal off-line sol.

• On-line algorithm A is

c-competitive

if there exists a constant

a

such that

m

A (

x

) 

cm

OPT (

x

)+

a

x

• Worst-case analysis: A may perform much better on real-world inputs

Examples

• • •

Ski rental problem

: for how long should a novice skier rent skis before buying?

Buy when the total cost of rental becomes higher than the cost of skis Greedy strategy is 2-competitive • • •

Task scheduling problem

Graham’s algorithm (1966): assign new task to the less loaded processor Greedy strategy is (2-1/

p

)-competitive if the durations of tasks are known in advance