SlideShare uma empresa Scribd logo
1 de 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 }

Mais conteúdo relacionado

Mais procurados (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
 

Destaque

Ded algorithm1
Ded algorithm1Ded algorithm1
Ded algorithm1Munhchimeg
 
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
 
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
 
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
 
Alliantiefabriek Noord Holland Duurzame Projecten
Alliantiefabriek Noord Holland Duurzame ProjectenAlliantiefabriek Noord Holland Duurzame Projecten
Alliantiefabriek Noord Holland Duurzame ProjectenJohan Stuiver
 
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
 

Destaque (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
 

Semelhante a Chap11alg

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
 
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
 
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
 

Semelhante a 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...
 

Mais de 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
 

Último

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
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
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 

Último (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
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
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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 Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

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 }