SlideShare ist ein Scribd-Unternehmen logo
1 von 22
CHAPTER 11 Coping with NP-completeness
Algorithm 11.1.4 Largest Independent Set This algorithm returns  α (G), the size of a largest independent set in  G  = ( V ,  E ). Input Parameter:  G  = ( V ,  E ) Output Parameters: None largest_independent_set ( G ) { if ( E  == Ø) return | V | else { pick first  v      V  such that  N ( v ) ≠ Ø G 1  =  G  - { v } G 2  =  G  - { v } -  N ( v ) k 1  =  largest_independent_set ( G 1 ) // assume  v  not in independent set k 2  =  largest_independent_set ( G 2 ) // assume  v  in independent set return  max ( k 1 ,  k 2  + 1) } }
Algorithm 11.1.11 3-Satisfiability This algorithm takes as an input a formula in CNF in which every clause contains at most three literals and returns true if and only if is satisfiable.
Input Parameter:  ϕ   Output Parameters: None 3_satisfiability ( ϕ ) { if ( ϕ  does not contain any clauses) return  ϕ  // ϕ  is the logical constant true or false if ( ϕ  contains a clause with one literal  a ) { ϕ  =  ϕ [ a  -> true] //  a  has to be true return 3_satisfiability( ϕ ) } if ( ϕ  contains a clause with two literals  a ,  b ) { ϕ 1  =  ϕ [ a  -> false][ b  -> true] ϕ 2  =  ϕ [ a  -> true] return 3_satisfiability( ϕ 1 )||3_satisfiability( ϕ 2 ) } if ( ϕ  contains a clause with three literals  a ,  b ,  c ) { ϕ 1  =  ϕ [ a  -> false][ b  -> false][ c  -> true] ϕ 2  =  ϕ [ a  -> false][ b  -> true] ϕ 3  =  ϕ [ a  -> true] return 3_satisfiability( ϕ 1 ) || 3_satisfiability( ϕ 2 ) || 3_satisfiability( ϕ 3 ) } }
Algorithm 11.2.1 Randomized  st-Connectivity This algorithm takes as an input a graph  G   = ( V ,  E ) and two vertices  s ,  t      V . It returns true  with probability one if there is a path from  s  to  t ; if there is no path from  s  to  t , it fails to terminate. Input Parameters:  G ,  s ,  t Output Parameters: None randomized_st_connectivity ( G ,  s ,  t ) { vertex  =  s while ( vertex  !=  t ) vertex  = random vertex from  N ( vertex ) return true }
Algorithm 11.2.4 Randomized Hamiltonian Path This algorithm takes as input a graph G and searches for a Hamiltonian path. It returns true if it finds a Hamiltonian path and false otherwise. randomized_hamiltonian_path ( G ) { v 0   = random vertex in  G i  = 0 do { N  =  N ( v i ) - { v 0 , . . . ,  v i-1 } //  N  contains those neighbors of  v i  (the current last // vertex of the path) that are not already on the path if ( N  ≠ Ø) { i  =  i  + 1 v i  = random vertex in  N } else if ( v j     N ( v i ) for some 0 =  j  <  i  - 1) ( v 0 , . . . ,  v i ) = ( v 0 , . . . ,  v j ,  v i , . . . ,  v j+1 ) else return false } while ( i  != | V | - 1) return true }
Algorithm 11.3.8 Next Fit This algorithm computes an assignment  b  of  n  items with sizes  s [1], . . . ,  s [ n ]    (0, 1] into bins and returns the number  k  of bins it used. Input Parameter:  s Output Parameters: None next_fit ( s ) { n  =  s . last k  = 1 // current bin size  = 0 //accumulated size of items in current bin for  i  = 1 to  n if ( size  +  s [ i ] = 1) { b [ i ] =  k  // enough room to add item  i  to bin  k size  =  size  +  s [ i ] } else { k  =  k  + 1 b [ i ] =  k size  =  s [ i ] } return  k }
Algorithm 11.3.13 First Fit This algorithm computes an assignment  b  of  n  items with sizes  s [1], . . . ,  s [ n ]    (0, 1] into bins and returns the number  k  of bins it used.
Input Parameter:  s Output Parameters: None first_fit ( s ) { n  =  s . last k  = 1 // number of bins used c [ k ] = 0 //  c [ i ] is the total size of items in bin  i for  i  = 1 to  n  { j  = 1 while ( c [ j ] +  s [ i ] > 1) { j  =  j  + 1 if ( j  >  k ) { // open new bin k  =  j   c [ k ] = 0 } } // add item  i  to bin  j b [ i ] =  j   c [ j ] =  c [ j ] +  s [ i ] } return  k }
Algorithm 11.3.16 First Fit Decreasing This algorithm computes an assignment  b  of  n  items with sizes  s [1], . . . ,  s [ n ]    (0, 1] into bins and returns the number  k  of bins it used. Input Parameter:  s Output Parameters: None first_fit_decreasing ( s ) { s . sort (>) // sort  s  in decreasing order return  first_fit ( s ) }
Algorithm 11.3.19 Greedy Coloring This algorithm takes as an input a graph  G  = ( V ,  E ) and constructs a coloring of the vertices of the graph such that no two adjacent vertices have the same color. Input Parameter:  G  = ( V , E ) Output Parameters: None greedy_coloring ( G ) { n  = | V | C  = {1,..., n } // set of colors for each  v      V color  v  with smallest color in  C  not used  by any vertex in  N ( v ) }
Algorithm 11.3.23 Wigderson Coloring This algorithm takes as input a 3-colorable graph  G  = ( V ,  E ) and constructs a coloring of the vertices of the graph such that no two adjacent vertices have the same color.
Input Parameter:  G  = ( V , E ) Output Parameters: None wigderson_coloring ( G ) { n  = | V | color_count  = 0 while ( V  contains a vertex of degree at least √ n ) { pick  v  of degree at least √ n G  = ( N ( v ), E ) two_color ( G , color_count ) //move on to next set of colors color_count  =  color_count  + 2  G  =  G  -  N ( v ) } greedy_coloring ( G ,  color_count )  // see new implementation below } greedy_coloring ( G , c ) { n  = | V | C  = { c ,..., c  +  n } // set of colors for each  v      V color  v  with smallest color in  C   not used by any vertex in  N ( v ) }
Algorithm 11.4.4 Vertex Cover This algorithm determines whether a graph  G  = ( V , E ) has a vertex cover of size at most  k . Input Parameter:  G  = ( V , E ) Fixed Parameter:  k Output Parameters: None vertex_cover ( G , k ) { if (( k  == 0) || ( E  == Ø)) return  E  == Ø else { pick first  e  = ( u , v ) in  E G 1   = ( V -{ u },  E -{( u , w ) |  w      V }) G 2   = ( V -{ v },  E -{( v , w ) |  w      V }) return vertex_cover( G 1 ,  k -1) || vertex_cover( G 2 ,  k -1) } }
Algorithm 11.4.7 Vertex Cover, Improved This algorithm determines whether a graph  G  = ( V , E ) has a vertex cover of size at most  k .
Input Parameter:  G  = ( V , E ) Fixed Parameter:  k Output Parameters: None improved_vertex_cover ( G , k ) { m  = 0 V ’ = Ø for each  v  in  V if ( larger_degree ( G , v , k )) m  =  m  + 1 else  // collect vertices of degree V ’ =  V ’    { v } // at most  k  in  V ’ if ( m  >  k ) return false // compute  G ’ E ’ = {( u , v ) | ( u , v )     E  and ( u , v )     V } G ’ = ( V , E ) // remove isolated vertices from  G ’ for each  v  in  V if (isolated( G ’, v )) G ’ =  G ’ - { v } if (| V ‘| > 2 k ( k  -  m ))  // in this case there cannot be  return false  // a  k  -  m  vertex cover return vertex_cover( G ’, k  -  m ) }
Algorithm 11.5.5 Queens This algorithm finds a solution to the  n -queens problem, which is stored in the array  q . Input Parameter:  n Output Parameter:  q queens ( n , q ) { do { q . random_permutation () do { swaps  = 0 // initialize counter for each  i , j     {1,...,  n } if (queen in column  i  or  j  under attack) if (swapping queens in column  i  and  j   reduces collisions) { q . swap ( i , j ) swaps  =  swaps  + 1 } } while ( swaps  > 0) } while (there are collisions in  q ) }
Local Search Heuristic This algorithm tries to improve an initial random guess by making local changes selected from a set of operations  T . The function  eval  evaluates the goodness of a solution. local_search () { c  = random element of the search space do { changed  = false for each  T      T  { c ’ =  T ( c ) Δ  =  eval ( c ) -  eval ( c ’) if ( Δ  < 0) { c  = c’ changed  = true } } } while ( changed ) output  c }
Iterated Local Search Heuristic This algorithm runs a local search heuristic repeatedly from random starting points.  T  is the set of local operations allowed. The function  eval  evaluates the goodness of a solution. iterated_local_search () { do { changed  = false c  = random element of the search space do { for each  T      T  { c ’ =  T ( c ) Δ  =  eval ( c ) -  eval ( c ’) if ( Δ  < 0) { c  = c’ changed  = true } } } while ( changed ) } while ( eval ( c ) is not acceptable) output  c }
Algorithm 11.5.7 Independent Set Search This algorithm searches for a large independent set in the input graph  G  .
Input Parameter:  G  = ( V , E ) Output Parameters: None independent_set_search () { do { I  = random subset of  V do { changed  = false c  = random element of the search space do { for each  T      T  { I ’ = I  Δ  {v}  //  Δ  as symmetric difference Δ  =  eval ( I ) -  eval ( I ’) if ( Δ  < 0) { I  =  I ’ changed  = true } } } while ( changed ) } while ( eval ( I ) is not acceptable) output  I }
Independent Set Search through Simulated Annealing Input Parameter:  G  = ( V , E ) Output Parameters: None sa_independent_set_search () { I  = random subset of  V n  = 0 do { n  =  n  + 1 T  =  T ( n ) // set current temperature for each  v      V  { I ’ =  I   Δ  { v }  //  Δ  as symmetric difference Δ  =  eval ( I ) -  eval ( I ’) if (( Δ  < 0) || ( random () <  p ( T , Δ )) { I  =  I ’ } } } while ( eval ( I)  is not acceptable) output  I }

Weitere Àhnliche Inhalte

Was ist angesagt?

Maps&hash tables
Maps&hash tablesMaps&hash tables
Maps&hash tablesPriyanka Rana
 
Asymptotic Notation
Asymptotic NotationAsymptotic Notation
Asymptotic NotationProtap Mondal
 
Digital Signal Processing Assignment Help
Digital Signal Processing Assignment HelpDigital Signal Processing Assignment Help
Digital Signal Processing Assignment HelpMatlab Assignment Experts
 
Mathematics notes and formula for class 12 chapter 7. integrals
Mathematics notes and formula for class 12 chapter 7. integrals Mathematics notes and formula for class 12 chapter 7. integrals
Mathematics notes and formula for class 12 chapter 7. integrals sakhi pathak
 
Integration material
Integration material Integration material
Integration material Surya Swaroop
 
Unit 3-Greedy Method
Unit 3-Greedy MethodUnit 3-Greedy Method
Unit 3-Greedy MethodDevaKumari Vijay
 
Basic_analysis.ppt
Basic_analysis.pptBasic_analysis.ppt
Basic_analysis.pptSoumyaJ3
 
Aaex4 group2(äž­è‹±ć€Ÿé›œ)
Aaex4 group2(äž­è‹±ć€Ÿé›œ)Aaex4 group2(äž­è‹±ć€Ÿé›œ)
Aaex4 group2(äž­è‹±ć€Ÿé›œ)Shiang-Yun Yang
 
Time and space complexity
Time and space complexityTime and space complexity
Time and space complexityAnkit Katiyar
 

Was ist angesagt? (19)

Maps&hash tables
Maps&hash tablesMaps&hash tables
Maps&hash tables
 
Chap10alg
Chap10algChap10alg
Chap10alg
 
Lec1
Lec1Lec1
Lec1
 
Asymptotic Notation
Asymptotic NotationAsymptotic Notation
Asymptotic Notation
 
Control System Homework Help
Control System Homework HelpControl System Homework Help
Control System Homework Help
 
Signal Processing Assignment Help
Signal Processing Assignment HelpSignal Processing Assignment Help
Signal Processing Assignment Help
 
Digital Signal Processing Assignment Help
Digital Signal Processing Assignment HelpDigital Signal Processing Assignment Help
Digital Signal Processing Assignment Help
 
Arrays
ArraysArrays
Arrays
 
Signal Processing Assignment Help
Signal Processing Assignment HelpSignal Processing Assignment Help
Signal Processing Assignment Help
 
Mathematics notes and formula for class 12 chapter 7. integrals
Mathematics notes and formula for class 12 chapter 7. integrals Mathematics notes and formula for class 12 chapter 7. integrals
Mathematics notes and formula for class 12 chapter 7. integrals
 
Integration material
Integration material Integration material
Integration material
 
Signals Processing Homework Help
Signals Processing Homework HelpSignals Processing Homework Help
Signals Processing Homework Help
 
Unit 3-Greedy Method
Unit 3-Greedy MethodUnit 3-Greedy Method
Unit 3-Greedy Method
 
Basic_analysis.ppt
Basic_analysis.pptBasic_analysis.ppt
Basic_analysis.ppt
 
Aaex4 group2(äž­è‹±ć€Ÿé›œ)
Aaex4 group2(äž­è‹±ć€Ÿé›œ)Aaex4 group2(äž­è‹±ć€Ÿé›œ)
Aaex4 group2(äž­è‹±ć€Ÿé›œ)
 
DSP System Homework Help
DSP System Homework HelpDSP System Homework Help
DSP System Homework Help
 
Time and space complexity
Time and space complexityTime and space complexity
Time and space complexity
 
Lec4
Lec4Lec4
Lec4
 
Asymptotic notation
Asymptotic notationAsymptotic notation
Asymptotic notation
 

Andere mochten auch

Ded algorithm1
Ded algorithm1Ded algorithm1
Ded algorithm1Munhchimeg
 
Cei week 1
Cei week 1Cei week 1
Cei week 1marina1982
 
Hybrid worlds fungi final - crews
Hybrid worlds   fungi final - crewsHybrid worlds   fungi final - crews
Hybrid worlds fungi final - crewsrv media
 
Natura2000 V2 En
Natura2000 V2 EnNatura2000 V2 En
Natura2000 V2 Enatelletxea
 
Lecture4
Lecture4Lecture4
Lecture4Munhchimeg
 
Lecture913
Lecture913Lecture913
Lecture913Munhchimeg
 
Hybrid worlds - Fungi Progression - crews
Hybrid worlds -  Fungi Progression - crewsHybrid worlds -  Fungi Progression - crews
Hybrid worlds - Fungi Progression - crewsrv media
 
Barrier of packaging
Barrier of packagingBarrier of packaging
Barrier of packaginghoangvunl
 
Cei week 2
Cei week 2Cei week 2
Cei week 2marina1982
 
Presentatie gemeente Groningen Inkoopbeleid
Presentatie gemeente Groningen InkoopbeleidPresentatie gemeente Groningen Inkoopbeleid
Presentatie gemeente Groningen InkoopbeleidJohan Stuiver
 
Nings To Knols Upload
Nings To Knols UploadNings To Knols Upload
Nings To Knols Uploadguesta3ed78
 
Chap07alg
Chap07algChap07alg
Chap07algMunhchimeg
 
Alliantiefabriek Noord Holland Duurzame Projecten
Alliantiefabriek Noord Holland Duurzame ProjectenAlliantiefabriek Noord Holland Duurzame Projecten
Alliantiefabriek Noord Holland Duurzame ProjectenJohan Stuiver
 
TLF Reunion 2011
TLF Reunion 2011TLF Reunion 2011
TLF Reunion 2011Debbie Horres
 
Resume
ResumeResume
Resumewaelhakim
 
Don't Screw Up Your Licensing
Don't Screw Up Your LicensingDon't Screw Up Your Licensing
Don't Screw Up Your LicensingAnsel Halliburton
 
Homelessness and Housing – Moving from Policy to Action - Frank Murtagh
Homelessness and Housing – Moving from Policy to Action - Frank MurtaghHomelessness and Housing – Moving from Policy to Action - Frank Murtagh
Homelessness and Housing – Moving from Policy to Action - Frank Murtaghbrianlynch
 
Hybrid worlds fungi updated - crews
Hybrid worlds   fungi updated - crewsHybrid worlds   fungi updated - crews
Hybrid worlds fungi updated - crewsrv media
 

Andere mochten auch (20)

Ded algorithm1
Ded algorithm1Ded algorithm1
Ded algorithm1
 
Cei week 1
Cei week 1Cei week 1
Cei week 1
 
Hybrid worlds fungi final - crews
Hybrid worlds   fungi final - crewsHybrid worlds   fungi final - crews
Hybrid worlds fungi final - crews
 
Natura2000 V2 En
Natura2000 V2 EnNatura2000 V2 En
Natura2000 V2 En
 
Lecture4
Lecture4Lecture4
Lecture4
 
Lecture913
Lecture913Lecture913
Lecture913
 
Hybrid worlds - Fungi Progression - crews
Hybrid worlds -  Fungi Progression - crewsHybrid worlds -  Fungi Progression - crews
Hybrid worlds - Fungi Progression - crews
 
Barrier of packaging
Barrier of packagingBarrier of packaging
Barrier of packaging
 
Cei week 2
Cei week 2Cei week 2
Cei week 2
 
Presentatie gemeente Groningen Inkoopbeleid
Presentatie gemeente Groningen InkoopbeleidPresentatie gemeente Groningen Inkoopbeleid
Presentatie gemeente Groningen Inkoopbeleid
 
Nings To Knols Upload
Nings To Knols UploadNings To Knols Upload
Nings To Knols Upload
 
Chap07alg
Chap07algChap07alg
Chap07alg
 
Python
PythonPython
Python
 
Alliantiefabriek Noord Holland Duurzame Projecten
Alliantiefabriek Noord Holland Duurzame ProjectenAlliantiefabriek Noord Holland Duurzame Projecten
Alliantiefabriek Noord Holland Duurzame Projecten
 
TLF Reunion 2011
TLF Reunion 2011TLF Reunion 2011
TLF Reunion 2011
 
Resume
ResumeResume
Resume
 
Don't Screw Up Your Licensing
Don't Screw Up Your LicensingDon't Screw Up Your Licensing
Don't Screw Up Your Licensing
 
Homelessness and Housing – Moving from Policy to Action - Frank Murtagh
Homelessness and Housing – Moving from Policy to Action - Frank MurtaghHomelessness and Housing – Moving from Policy to Action - Frank Murtagh
Homelessness and Housing – Moving from Policy to Action - Frank Murtagh
 
Profiting In A LinkedIn Economy
Profiting In A LinkedIn EconomyProfiting In A LinkedIn Economy
Profiting In A LinkedIn Economy
 
Hybrid worlds fungi updated - crews
Hybrid worlds   fungi updated - crewsHybrid worlds   fungi updated - crews
Hybrid worlds fungi updated - crews
 

Ähnlich wie Chap11alg

Chap10alg
Chap10algChap10alg
Chap10algMunhchimeg
 
Chap05alg
Chap05algChap05alg
Chap05algMunhchimeg
 
Chap06alg
Chap06algChap06alg
Chap06algMunhchimeg
 
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGAScientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGAAhmed Gamal Abdel Gawad
 
Cs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer keyCs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer keyappasami
 
Chap08alg
Chap08algChap08alg
Chap08algMunhchimeg
 
40+ examples of user defined methods in java with explanation
40+ examples of user defined methods in java with explanation40+ examples of user defined methods in java with explanation
40+ examples of user defined methods in java with explanationHarish Gyanani
 
Crypto cs36 39
Crypto cs36 39Crypto cs36 39
Crypto cs36 39sravanbabu
 
module4_dynamic programming_2022.pdf
module4_dynamic programming_2022.pdfmodule4_dynamic programming_2022.pdf
module4_dynamic programming_2022.pdfShiwani Gupta
 
Chap12alg
Chap12algChap12alg
Chap12algMunhchimeg
 
Chap04alg
Chap04algChap04alg
Chap04algMunhchimeg
 
Scilab help book 2 of 2
Scilab help book 2 of 2Scilab help book 2 of 2
Scilab help book 2 of 2Arun Umrao
 
Think Like Scilab and Become a Numerical Programming Expert- Notes for Beginn...
Think Like Scilab and Become a Numerical Programming Expert- Notes for Beginn...Think Like Scilab and Become a Numerical Programming Expert- Notes for Beginn...
Think Like Scilab and Become a Numerical Programming Expert- Notes for Beginn...ssuserd6b1fd
 

Ähnlich wie Chap11alg (20)

Chap10alg
Chap10algChap10alg
Chap10alg
 
Chap05alg
Chap05algChap05alg
Chap05alg
 
Chap05alg
Chap05algChap05alg
Chap05alg
 
Chap06alg
Chap06algChap06alg
Chap06alg
 
Chap06alg
Chap06algChap06alg
Chap06alg
 
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGAScientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
 
Cs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer keyCs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer key
 
Chap08alg
Chap08algChap08alg
Chap08alg
 
Chap08alg
Chap08algChap08alg
Chap08alg
 
40+ examples of user defined methods in java with explanation
40+ examples of user defined methods in java with explanation40+ examples of user defined methods in java with explanation
40+ examples of user defined methods in java with explanation
 
Crypto cs36 39
Crypto cs36 39Crypto cs36 39
Crypto cs36 39
 
module4_dynamic programming_2022.pdf
module4_dynamic programming_2022.pdfmodule4_dynamic programming_2022.pdf
module4_dynamic programming_2022.pdf
 
Chap12alg
Chap12algChap12alg
Chap12alg
 
Chap12alg
Chap12algChap12alg
Chap12alg
 
Chap04alg
Chap04algChap04alg
Chap04alg
 
Chap04alg
Chap04algChap04alg
Chap04alg
 
Daa chapter11
Daa chapter11Daa chapter11
Daa chapter11
 
Chap4
Chap4Chap4
Chap4
 
Scilab help book 2 of 2
Scilab help book 2 of 2Scilab help book 2 of 2
Scilab help book 2 of 2
 
Think Like Scilab and Become a Numerical Programming Expert- Notes for Beginn...
Think Like Scilab and Become a Numerical Programming Expert- Notes for Beginn...Think Like Scilab and Become a Numerical Programming Expert- Notes for Beginn...
Think Like Scilab and Become a Numerical Programming Expert- Notes for Beginn...
 

Mehr von Munhchimeg

Ded algorithm
Ded algorithmDed algorithm
Ded algorithmMunhchimeg
 
Tobch lecture1
Tobch lecture1Tobch lecture1
Tobch lecture1Munhchimeg
 
Tobch lecture
Tobch lectureTobch lecture
Tobch lectureMunhchimeg
 
Recursive
RecursiveRecursive
RecursiveMunhchimeg
 
Protsesor
ProtsesorProtsesor
ProtsesorMunhchimeg
 
Lecture916
Lecture916Lecture916
Lecture916Munhchimeg
 
Lecture915
Lecture915Lecture915
Lecture915Munhchimeg
 
Lecture914
Lecture914Lecture914
Lecture914Munhchimeg
 
Lecture912
Lecture912Lecture912
Lecture912Munhchimeg
 
Lecture911
Lecture911Lecture911
Lecture911Munhchimeg
 
Lecture910
Lecture910Lecture910
Lecture910Munhchimeg
 
Lecture9
Lecture9Lecture9
Lecture9Munhchimeg
 
Lecture8
Lecture8Lecture8
Lecture8Munhchimeg
 
Lecture7
Lecture7Lecture7
Lecture7Munhchimeg
 
Lecture6
Lecture6Lecture6
Lecture6Munhchimeg
 
Lecture5
Lecture5Lecture5
Lecture5Munhchimeg
 
Lecture3
Lecture3Lecture3
Lecture3Munhchimeg
 
Protsesor
ProtsesorProtsesor
ProtsesorMunhchimeg
 
Pm104 standard
Pm104 standardPm104 standard
Pm104 standardMunhchimeg
 
Pm104 2004 2005
Pm104 2004 2005Pm104 2004 2005
Pm104 2004 2005Munhchimeg
 

Mehr von Munhchimeg (20)

Ded algorithm
Ded algorithmDed algorithm
Ded algorithm
 
Tobch lecture1
Tobch lecture1Tobch lecture1
Tobch lecture1
 
Tobch lecture
Tobch lectureTobch lecture
Tobch lecture
 
Recursive
RecursiveRecursive
Recursive
 
Protsesor
ProtsesorProtsesor
Protsesor
 
Lecture916
Lecture916Lecture916
Lecture916
 
Lecture915
Lecture915Lecture915
Lecture915
 
Lecture914
Lecture914Lecture914
Lecture914
 
Lecture912
Lecture912Lecture912
Lecture912
 
Lecture911
Lecture911Lecture911
Lecture911
 
Lecture910
Lecture910Lecture910
Lecture910
 
Lecture9
Lecture9Lecture9
Lecture9
 
Lecture8
Lecture8Lecture8
Lecture8
 
Lecture7
Lecture7Lecture7
Lecture7
 
Lecture6
Lecture6Lecture6
Lecture6
 
Lecture5
Lecture5Lecture5
Lecture5
 
Lecture3
Lecture3Lecture3
Lecture3
 
Protsesor
ProtsesorProtsesor
Protsesor
 
Pm104 standard
Pm104 standardPm104 standard
Pm104 standard
 
Pm104 2004 2005
Pm104 2004 2005Pm104 2004 2005
Pm104 2004 2005
 

KĂŒrzlich hochgeladen

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

KĂŒrzlich hochgeladen (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Chap11alg

  • 1. CHAPTER 11 Coping with NP-completeness
  • 2. Algorithm 11.1.4 Largest Independent Set This algorithm returns α (G), the size of a largest independent set in G = ( V , E ). Input Parameter: G = ( V , E ) Output Parameters: None largest_independent_set ( G ) { if ( E == Ø) return | V | else { pick first v  V such that N ( v ) ≠ Ø G 1 = G - { v } G 2 = G - { v } - N ( v ) k 1 = largest_independent_set ( G 1 ) // assume v not in independent set k 2 = largest_independent_set ( G 2 ) // assume v in independent set return max ( k 1 , k 2 + 1) } }
  • 3. Algorithm 11.1.11 3-Satisfiability This algorithm takes as an input a formula in CNF in which every clause contains at most three literals and returns true if and only if is satisfiable.
  • 4. Input Parameter: ϕ Output Parameters: None 3_satisfiability ( ϕ ) { if ( ϕ does not contain any clauses) return ϕ // ϕ is the logical constant true or false if ( ϕ contains a clause with one literal a ) { ϕ = ϕ [ a -> true] // a has to be true return 3_satisfiability( ϕ ) } if ( ϕ contains a clause with two literals a , b ) { ϕ 1 = ϕ [ a -> false][ b -> true] ϕ 2 = ϕ [ a -> true] return 3_satisfiability( ϕ 1 )||3_satisfiability( ϕ 2 ) } if ( ϕ contains a clause with three literals a , b , c ) { ϕ 1 = ϕ [ a -> false][ b -> false][ c -> true] ϕ 2 = ϕ [ a -> false][ b -> true] ϕ 3 = ϕ [ a -> true] return 3_satisfiability( ϕ 1 ) || 3_satisfiability( ϕ 2 ) || 3_satisfiability( ϕ 3 ) } }
  • 5. Algorithm 11.2.1 Randomized st-Connectivity This algorithm takes as an input a graph G = ( V , E ) and two vertices s , t  V . It returns true with probability one if there is a path from s to t ; if there is no path from s to t , it fails to terminate. Input Parameters: G , s , t Output Parameters: None randomized_st_connectivity ( G , s , t ) { vertex = s while ( vertex != t ) vertex = random vertex from N ( vertex ) return true }
  • 6. Algorithm 11.2.4 Randomized Hamiltonian Path This algorithm takes as input a graph G and searches for a Hamiltonian path. It returns true if it finds a Hamiltonian path and false otherwise. randomized_hamiltonian_path ( G ) { v 0 = random vertex in G i = 0 do { N = N ( v i ) - { v 0 , . . . , v i-1 } // N contains those neighbors of v i (the current last // vertex of the path) that are not already on the path if ( N ≠ Ø) { i = i + 1 v i = random vertex in N } else if ( v j  N ( v i ) for some 0 = j < i - 1) ( v 0 , . . . , v i ) = ( v 0 , . . . , v j , v i , . . . , v j+1 ) else return false } while ( i != | V | - 1) return true }
  • 7. Algorithm 11.3.8 Next Fit This algorithm computes an assignment b of n items with sizes s [1], . . . , s [ n ]  (0, 1] into bins and returns the number k of bins it used. Input Parameter: s Output Parameters: None next_fit ( s ) { n = s . last k = 1 // current bin size = 0 //accumulated size of items in current bin for i = 1 to n if ( size + s [ i ] = 1) { b [ i ] = k // enough room to add item i to bin k size = size + s [ i ] } else { k = k + 1 b [ i ] = k size = s [ i ] } return k }
  • 8. Algorithm 11.3.13 First Fit This algorithm computes an assignment b of n items with sizes s [1], . . . , s [ n ]  (0, 1] into bins and returns the number k of bins it used.
  • 9. Input Parameter: s Output Parameters: None first_fit ( s ) { n = s . last k = 1 // number of bins used c [ k ] = 0 // c [ i ] is the total size of items in bin i for i = 1 to n { j = 1 while ( c [ j ] + s [ i ] > 1) { j = j + 1 if ( j > k ) { // open new bin k = j c [ k ] = 0 } } // add item i to bin j b [ i ] = j c [ j ] = c [ j ] + s [ i ] } return k }
  • 10. Algorithm 11.3.16 First Fit Decreasing This algorithm computes an assignment b of n items with sizes s [1], . . . , s [ n ]  (0, 1] into bins and returns the number k of bins it used. Input Parameter: s Output Parameters: None first_fit_decreasing ( s ) { s . sort (>) // sort s in decreasing order return first_fit ( s ) }
  • 11. Algorithm 11.3.19 Greedy Coloring This algorithm takes as an input a graph G = ( V , E ) and constructs a coloring of the vertices of the graph such that no two adjacent vertices have the same color. Input Parameter: G = ( V , E ) Output Parameters: None greedy_coloring ( G ) { n = | V | C = {1,..., n } // set of colors for each v  V color v with smallest color in C not used by any vertex in N ( v ) }
  • 12. Algorithm 11.3.23 Wigderson Coloring This algorithm takes as input a 3-colorable graph G = ( V , E ) and constructs a coloring of the vertices of the graph such that no two adjacent vertices have the same color.
  • 13. Input Parameter: G = ( V , E ) Output Parameters: None wigderson_coloring ( G ) { n = | V | color_count = 0 while ( V contains a vertex of degree at least √ n ) { pick v of degree at least √ n G = ( N ( v ), E ) two_color ( G , color_count ) //move on to next set of colors color_count = color_count + 2 G = G - N ( v ) } greedy_coloring ( G , color_count ) // see new implementation below } greedy_coloring ( G , c ) { n = | V | C = { c ,..., c + n } // set of colors for each v  V color v with smallest color in C not used by any vertex in N ( v ) }
  • 14. Algorithm 11.4.4 Vertex Cover This algorithm determines whether a graph G = ( V , E ) has a vertex cover of size at most k . Input Parameter: G = ( V , E ) Fixed Parameter: k Output Parameters: None vertex_cover ( G , k ) { if (( k == 0) || ( E == Ø)) return E == Ø else { pick first e = ( u , v ) in E G 1 = ( V -{ u }, E -{( u , w ) | w  V }) G 2 = ( V -{ v }, E -{( v , w ) | w  V }) return vertex_cover( G 1 , k -1) || vertex_cover( G 2 , k -1) } }
  • 15. Algorithm 11.4.7 Vertex Cover, Improved This algorithm determines whether a graph G = ( V , E ) has a vertex cover of size at most k .
  • 16. Input Parameter: G = ( V , E ) Fixed Parameter: k Output Parameters: None improved_vertex_cover ( G , k ) { m = 0 V ’ = Ø for each v in V if ( larger_degree ( G , v , k )) m = m + 1 else // collect vertices of degree V ’ = V ’  { v } // at most k in V ’ if ( m > k ) return false // compute G ’ E ’ = {( u , v ) | ( u , v )  E and ( u , v )  V } G ’ = ( V , E ) // remove isolated vertices from G ’ for each v in V if (isolated( G ’, v )) G ’ = G ’ - { v } if (| V ‘| > 2 k ( k - m )) // in this case there cannot be return false // a k - m vertex cover return vertex_cover( G ’, k - m ) }
  • 17. Algorithm 11.5.5 Queens This algorithm finds a solution to the n -queens problem, which is stored in the array q . Input Parameter: n Output Parameter: q queens ( n , q ) { do { q . random_permutation () do { swaps = 0 // initialize counter for each i , j  {1,..., n } if (queen in column i or j under attack) if (swapping queens in column i and j reduces collisions) { q . swap ( i , j ) swaps = swaps + 1 } } while ( swaps > 0) } while (there are collisions in q ) }
  • 18. Local Search Heuristic This algorithm tries to improve an initial random guess by making local changes selected from a set of operations T . The function eval evaluates the goodness of a solution. local_search () { c = random element of the search space do { changed = false for each T  T { c ’ = T ( c ) Δ = eval ( c ) - eval ( c ’) if ( Δ < 0) { c = c’ changed = true } } } while ( changed ) output c }
  • 19. Iterated Local Search Heuristic This algorithm runs a local search heuristic repeatedly from random starting points. T is the set of local operations allowed. The function eval evaluates the goodness of a solution. iterated_local_search () { do { changed = false c = random element of the search space do { for each T  T { c ’ = T ( c ) Δ = eval ( c ) - eval ( c ’) if ( Δ < 0) { c = c’ changed = true } } } while ( changed ) } while ( eval ( c ) is not acceptable) output c }
  • 20. Algorithm 11.5.7 Independent Set Search This algorithm searches for a large independent set in the input graph G .
  • 21. Input Parameter: G = ( V , E ) Output Parameters: None independent_set_search () { do { I = random subset of V do { changed = false c = random element of the search space do { for each T  T { I ’ = I Δ {v} // Δ as symmetric difference Δ = eval ( I ) - eval ( I ’) if ( Δ < 0) { I = I ’ changed = true } } } while ( changed ) } while ( eval ( I ) is not acceptable) output I }
  • 22. Independent Set Search through Simulated Annealing Input Parameter: G = ( V , E ) Output Parameters: None sa_independent_set_search () { I = random subset of V n = 0 do { n = n + 1 T = T ( n ) // set current temperature for each v  V { I ’ = I Δ { v } // Δ as symmetric difference Δ = eval ( I ) - eval ( I ’) if (( Δ < 0) || ( random () < p ( T , Δ )) { I = I ’ } } } while ( eval ( I) is not acceptable) output I }