Approximation Algorithms (2)

Southgiri·2025년 6월 21일

SNUON Algorithm

목록 보기
6/7

Set-Covering Problem

Set-Covering Problem

Set-Covering Problem Formulation

  • A finite set XX
  • A family FF of subsets of XX
  • X=SFSX=\cup_{S\in F}S
  • Find a minimum size subset CFC \sub F whose members cover all of XX (CC: set cover)

NP-Completeness

Reduction in polynomial time

  • Given a graph G=(V,E)G=(V,E) and integer kk, define X=EX=E and F=VF=V

Approximation

A simple greedy heuristic with a logarithmic approximation ratio

  • 남은 vertex 중 가장 많은 vertex 를 커버하는 Set 선택

Time complexity

  • SS 의 원소 개수는 최대 XX 개, SS 의 개수는 FF

Proof

  • Let SiS_i be the ii-th subset selected by Greedy-Set-Cover
  • SiS_i 가 선택될 때마다 cost 1 을 assign, 처음으로 선택되는 element 들에 cost 분산해줌
  • Element xxSiS_i 에 의해 처음 선택된 경우 cost cxc_x
    • SiS_i 에서 처음으로 선택된 element 개수의 역수
  • 알고리즘의 매 step 마다 cost 1을 할당하기 때문에 C=xXcx|C|=\displaystyle\sum_{x \in X}c_x
  • Cost assigned to the optimal cover CC^* is SCxScx\displaystyle\sum_{S \in C^*}\sum_{x \in S}c_x
  • Each xXx \in X is in at least one set sCs \in C^*, SCxScxxXcx\displaystyle\sum_{S \in C^*}\sum_{x \in S}c_x \geq \sum_{x \in X}c_x
    • CC^* 의 set SiS_ixx 가 여러번 포함될 수 있기 때문에
  • CSCxScx\therefore |C| \leq \displaystyle\sum_{S \in C^*}\sum_{x \in S}c_x

0개의 댓글