SlideShare a Scribd company logo
1 of 15
3-SAT IN 𝑂(1.33 𝑛
) TIME
-WITH RANDOMIZATION
TAMREF
sluggeryck@naver.com
𝑘-SAT problem
• 𝑛개의 boolean 변수 𝑥1, 𝑥2, ⋯ 𝑥 𝑛이 있다.
• 이 때 절(clause)을 다음과 같이 정의한다 :
• 𝐶𝑖 = 𝑦1 ∨ 𝑦2 ∨ ⋯ ∨ 𝑦 𝑘
• 단, 𝑦1, ⋯ 𝑦 𝑘 ⊂ {𝑥1, ⋯ 𝑥 𝑛, ¬𝑥1, ¬𝑥2, ⋯ ¬𝑥 𝑛}이다.
• 변수가 𝑘개인 cluase를 𝑘-CNF라고 한다.
• 다음의 명제가 참이 되도록 𝑥𝑖의 값을 조정할 수 있을까?
• 𝐶1 ∧ 𝐶2 ∧ ⋯ 𝐶𝑟
Importance & Reducibility
• 𝑘-SAT problem은 NP – complete problem이다.
• 즉, 모든 NP-문제를 SAT으로 변환할 수 있다.
• 모든 SAT 문제는 2-SAT 혹은 3-SAT 문제로 변환할 수 있
다.
• 관련된 라이브러리로는 z3가 있다.
• IOI 시험장에서 다운로드 받아서 풀면 된다.
• SAT문제는 CS 전반에서 매우 중요하지만, 이 자료의 main
topic이 아니므로 빨리 넘어가자.
2-SAT
• 킹-갓-엠페러-그저-빛 Robert Tarjan이 𝑂(𝑛 + 𝑟)에 해결하
는 아이디어를 제시했다.
• 명제를 그래프로 변환하여 푸는데, 여러 블로그에 잘 설명
되어 있으니 역시 넘어가자.
3-SAT
• 사실 이 3SAT이 NP인게 문제다.
• Naïve로는 대충 𝑂(𝑟 ⋅ 2 𝑛
)에 된다.
• …
• 더 줄일 수 있는 사람?
저요!
• 되게 많다.
• 다항 시간 풀이는 당연히 나오지 않았다.
• 하지만 아래와 같이 𝑂(𝑐 𝑛
)에 푸는 풀이가 많이 개발되었다.
• prob : 확률론적 algorithm
• det : 결정론적 algorithm.
• 여기선 가장 간단하고 빠른
Schöning(1999)의
1.33n 알고리즘을 알아보자.
Algorithm for k - SAT
• 각각의 𝑥𝑖에 random한 값을 배정하고, 이 boolean string을
‘state’ 𝑎라 하자.
• 만약 𝑎가 조건식을 만족한다면 accept and terminate.
• 아래를 3n번 반복한다:
• 모든 절의 값이 true : accept and terminate.
• 값이 false인 절 𝐷가 있을 경우:
• 𝐷를 구성하는 변수 𝑘개 중 하나를 random하게 뒤집는다.
Analysis
• 문제 해결이 가능하다고 가정하자.
즉, 모든 절을 true로 만드는 state 𝑎∗가 있다고 가정하자.
• 한 algorithm step마다 𝑎를 𝑎∗로 만들 수 있는 확률
(success prob.)을 𝑝라고 하자.
• 대충
20
𝑝
회 정도 step을 반복하면 𝑎∗가 ‘있는데도 못 찾을 확률’이
1 − 𝑝
20
𝑝 < 𝑒−20이 된다.
• 따라서 𝑝의 값이 ‘생각보다 큼’을 보여보자!
Hamming – distance strategy
• 확률변수 𝑋를 𝑎와 𝑎∗의 hamming distance라고 하자.
• 이때 𝑃 𝑋 = 𝑗 =
𝑛 𝐶 𝑗
2 𝑗 이다.
• 현재의 hamming distance를 ℎ라고 하면,
현재 false인 절 𝐷에는 어찌되었건 flip해야만 하는 변수가
최소 1개 있다.
• 그렇다면 최소 한 놈은 hamming distance를 ℎ − 1로 만들
어 줄 거고,
다른 엄한 놈을 건드리면 되려 ℎ + 1이 될 거다.
Random walk approach
• 이 상황을 random walk로 생각해보자.
• 난 현재 (ℎ, 0)에 서 있고 0,0 으로 가야 하는데, 왼쪽으로
갈 확률과 오른쪽으로 갈 확률이 정해져 있다.
• 이때 언젠가는 (0,0)에 도착할 확률을 𝑞ℎ라고 하면,
• 𝑞ℎ = 𝑖(𝑖번 오른쪽 + 𝑖 + ℎ 번 왼쪽을 걸어서 도착할 확률) 이다.
• 괄호 안의 값을 𝑔𝑖ℎ라고 하자.
PPT 수식치기 빡세다…
• TeX으로 쳐서 캡처해왔다.
• 2번째 → 3번째 line에는 Ballot’s theorem이라는 게사용되었는데,
Catalan number와 관련이 있다.
• 𝑖 ≤ ℎ인 case만 고려했음에
주의하자.
Fact!
• 다음의 근사식이 성립한다.
• 𝐻 𝑝 ≔ −(𝑝 lg 𝑝 + 1 − 𝑝 lg 1 − 𝑝 )
• 겨우 ‘다항식 조금’밖에 차이(비율)가 없단다.
• 어째 점점 practical과 멀어진다.
Lower it!
• 이제 Pg11의 식에서 𝑖 =
𝑗
𝑘−2
인 ‘단 하나의 항’만 고려하고,
Pg12의 Fact를 사용하면
• ‘다항식 조금’ 정도의 오차로 다음이 성립한다.
• 여기서 𝛼 =
1
𝑘−2
이다.
• 열심히 계산하면 우변의 값은
1
𝑘−1
𝑗
가 된다.
• ℎ와 𝑗를 혼동하였다. 죄송합니다……….
Conclusion
• 𝑞ℎ값을 대입해주면 다음과 같이 𝑝의 값을 알아낼 수 있다.
• 따라서 이 알고리즘의 복잡도는
• 𝑂
1
𝑝
= 𝑂 2 −
2
𝑘
𝑛
이고, 3-SAT(𝑘 = 3)인 경우는
𝑂(1.33 𝑛
)이다.
• 물론 다항식 수준의 factor는 쿨하게 씹는다.
Is it CP - practical?
• 대충 𝑂(𝑟 ⋅ 1.33 𝑛)에 돌아갈 것 같으니까,
𝑟, 𝑛이 40정도까지는 1초 안에 돌아갈 것 같다.
• 근데 이 정도 사이즈면 차라리 𝑟 ⋅ 2 𝑛짜리 naïve 랜덤 돌리
는 편이 훨씬 낫지 않을까…?
• 3-SAT까지 써야 하는 연습문제가 없어서 벤치마킹이 어렵
다. 있다면 제보 바랍니다~
• Facebook : @tamreffingbaekjoon
• Blog : tam-ref.ga
• Email : sluggeryck@naver.com

More Related Content

Similar to 3 sat with randomization

04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )Jeonghun Yoon
 
Chapter 19 Variational Inference
Chapter 19 Variational InferenceChapter 19 Variational Inference
Chapter 19 Variational InferenceKyeongUkJang
 
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이NAVER D2
 
쏙 알고스터디 01
쏙 알고스터디 01쏙 알고스터디 01
쏙 알고스터디 01Jisu Lee
 
Gaussian Mixture Model
Gaussian Mixture ModelGaussian Mixture Model
Gaussian Mixture ModelKyeongUkJang
 
Auto-Encoders and Variational Auto-Encoders
Auto-Encoders and Variational Auto-EncodersAuto-Encoders and Variational Auto-Encoders
Auto-Encoders and Variational Auto-EncodersJinho Lee
 
강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introduction강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introductionTaehoon Kim
 
선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)AHRA CHO
 
[한글] Tutorial: Sparse variational dropout
[한글] Tutorial: Sparse variational dropout[한글] Tutorial: Sparse variational dropout
[한글] Tutorial: Sparse variational dropoutWuhyun Rico Shin
 
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기JungHyun Hong
 
Lecture 2: Supervised Learning
Lecture 2: Supervised LearningLecture 2: Supervised Learning
Lecture 2: Supervised LearningSang Jun Lee
 
Rnn개념정리
Rnn개념정리Rnn개념정리
Rnn개념정리종현 최
 
introduction to dynamic programming and linear programming
introduction to dynamic programming and linear programmingintroduction to dynamic programming and linear programming
introduction to dynamic programming and linear programmingGyeongwook Choi
 
2018 Ajou Programming Contest solutions
2018 Ajou Programming Contest solutions2018 Ajou Programming Contest solutions
2018 Ajou Programming Contest solutions현정 김
 
선형대수 12강 Gram-Schmidt Orthogonalization
선형대수 12강 Gram-Schmidt Orthogonalization선형대수 12강 Gram-Schmidt Orthogonalization
선형대수 12강 Gram-Schmidt OrthogonalizationAHRA CHO
 
강화학습기초(MDP, Monte-Carlo, Time-difference, sarsa, q-learning) 파트1
강화학습기초(MDP, Monte-Carlo, Time-difference, sarsa, q-learning) 파트1강화학습기초(MDP, Monte-Carlo, Time-difference, sarsa, q-learning) 파트1
강화학습기초(MDP, Monte-Carlo, Time-difference, sarsa, q-learning) 파트1Euijin Jeong
 

Similar to 3 sat with randomization (20)

SVM
SVMSVM
SVM
 
04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )
 
Chapter 19 Variational Inference
Chapter 19 Variational InferenceChapter 19 Variational Inference
Chapter 19 Variational Inference
 
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
 
쏙 알고스터디 01
쏙 알고스터디 01쏙 알고스터디 01
쏙 알고스터디 01
 
Gaussian Mixture Model
Gaussian Mixture ModelGaussian Mixture Model
Gaussian Mixture Model
 
Auto-Encoders and Variational Auto-Encoders
Auto-Encoders and Variational Auto-EncodersAuto-Encoders and Variational Auto-Encoders
Auto-Encoders and Variational Auto-Encoders
 
internetinternet
internetinternetinternetinternet
internetinternet
 
강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introduction강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introduction
 
선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)
 
[한글] Tutorial: Sparse variational dropout
[한글] Tutorial: Sparse variational dropout[한글] Tutorial: Sparse variational dropout
[한글] Tutorial: Sparse variational dropout
 
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기
 
Lecture 2: Supervised Learning
Lecture 2: Supervised LearningLecture 2: Supervised Learning
Lecture 2: Supervised Learning
 
Rnn개념정리
Rnn개념정리Rnn개념정리
Rnn개념정리
 
introduction to dynamic programming and linear programming
introduction to dynamic programming and linear programmingintroduction to dynamic programming and linear programming
introduction to dynamic programming and linear programming
 
2018 Ajou Programming Contest solutions
2018 Ajou Programming Contest solutions2018 Ajou Programming Contest solutions
2018 Ajou Programming Contest solutions
 
선형대수 12강 Gram-Schmidt Orthogonalization
선형대수 12강 Gram-Schmidt Orthogonalization선형대수 12강 Gram-Schmidt Orthogonalization
선형대수 12강 Gram-Schmidt Orthogonalization
 
강화학습기초(MDP, Monte-Carlo, Time-difference, sarsa, q-learning) 파트1
강화학습기초(MDP, Monte-Carlo, Time-difference, sarsa, q-learning) 파트1강화학습기초(MDP, Monte-Carlo, Time-difference, sarsa, q-learning) 파트1
강화학습기초(MDP, Monte-Carlo, Time-difference, sarsa, q-learning) 파트1
 
알고리즘2
알고리즘2알고리즘2
알고리즘2
 
Variational AutoEncoder(VAE)
Variational AutoEncoder(VAE)Variational AutoEncoder(VAE)
Variational AutoEncoder(VAE)
 

3 sat with randomization

  • 1. 3-SAT IN 𝑂(1.33 𝑛 ) TIME -WITH RANDOMIZATION TAMREF sluggeryck@naver.com
  • 2. 𝑘-SAT problem • 𝑛개의 boolean 변수 𝑥1, 𝑥2, ⋯ 𝑥 𝑛이 있다. • 이 때 절(clause)을 다음과 같이 정의한다 : • 𝐶𝑖 = 𝑦1 ∨ 𝑦2 ∨ ⋯ ∨ 𝑦 𝑘 • 단, 𝑦1, ⋯ 𝑦 𝑘 ⊂ {𝑥1, ⋯ 𝑥 𝑛, ¬𝑥1, ¬𝑥2, ⋯ ¬𝑥 𝑛}이다. • 변수가 𝑘개인 cluase를 𝑘-CNF라고 한다. • 다음의 명제가 참이 되도록 𝑥𝑖의 값을 조정할 수 있을까? • 𝐶1 ∧ 𝐶2 ∧ ⋯ 𝐶𝑟
  • 3. Importance & Reducibility • 𝑘-SAT problem은 NP – complete problem이다. • 즉, 모든 NP-문제를 SAT으로 변환할 수 있다. • 모든 SAT 문제는 2-SAT 혹은 3-SAT 문제로 변환할 수 있 다. • 관련된 라이브러리로는 z3가 있다. • IOI 시험장에서 다운로드 받아서 풀면 된다. • SAT문제는 CS 전반에서 매우 중요하지만, 이 자료의 main topic이 아니므로 빨리 넘어가자.
  • 4. 2-SAT • 킹-갓-엠페러-그저-빛 Robert Tarjan이 𝑂(𝑛 + 𝑟)에 해결하 는 아이디어를 제시했다. • 명제를 그래프로 변환하여 푸는데, 여러 블로그에 잘 설명 되어 있으니 역시 넘어가자.
  • 5. 3-SAT • 사실 이 3SAT이 NP인게 문제다. • Naïve로는 대충 𝑂(𝑟 ⋅ 2 𝑛 )에 된다. • … • 더 줄일 수 있는 사람?
  • 6. 저요! • 되게 많다. • 다항 시간 풀이는 당연히 나오지 않았다. • 하지만 아래와 같이 𝑂(𝑐 𝑛 )에 푸는 풀이가 많이 개발되었다. • prob : 확률론적 algorithm • det : 결정론적 algorithm. • 여기선 가장 간단하고 빠른 Schöning(1999)의 1.33n 알고리즘을 알아보자.
  • 7. Algorithm for k - SAT • 각각의 𝑥𝑖에 random한 값을 배정하고, 이 boolean string을 ‘state’ 𝑎라 하자. • 만약 𝑎가 조건식을 만족한다면 accept and terminate. • 아래를 3n번 반복한다: • 모든 절의 값이 true : accept and terminate. • 값이 false인 절 𝐷가 있을 경우: • 𝐷를 구성하는 변수 𝑘개 중 하나를 random하게 뒤집는다.
  • 8. Analysis • 문제 해결이 가능하다고 가정하자. 즉, 모든 절을 true로 만드는 state 𝑎∗가 있다고 가정하자. • 한 algorithm step마다 𝑎를 𝑎∗로 만들 수 있는 확률 (success prob.)을 𝑝라고 하자. • 대충 20 𝑝 회 정도 step을 반복하면 𝑎∗가 ‘있는데도 못 찾을 확률’이 1 − 𝑝 20 𝑝 < 𝑒−20이 된다. • 따라서 𝑝의 값이 ‘생각보다 큼’을 보여보자!
  • 9. Hamming – distance strategy • 확률변수 𝑋를 𝑎와 𝑎∗의 hamming distance라고 하자. • 이때 𝑃 𝑋 = 𝑗 = 𝑛 𝐶 𝑗 2 𝑗 이다. • 현재의 hamming distance를 ℎ라고 하면, 현재 false인 절 𝐷에는 어찌되었건 flip해야만 하는 변수가 최소 1개 있다. • 그렇다면 최소 한 놈은 hamming distance를 ℎ − 1로 만들 어 줄 거고, 다른 엄한 놈을 건드리면 되려 ℎ + 1이 될 거다.
  • 10. Random walk approach • 이 상황을 random walk로 생각해보자. • 난 현재 (ℎ, 0)에 서 있고 0,0 으로 가야 하는데, 왼쪽으로 갈 확률과 오른쪽으로 갈 확률이 정해져 있다. • 이때 언젠가는 (0,0)에 도착할 확률을 𝑞ℎ라고 하면, • 𝑞ℎ = 𝑖(𝑖번 오른쪽 + 𝑖 + ℎ 번 왼쪽을 걸어서 도착할 확률) 이다. • 괄호 안의 값을 𝑔𝑖ℎ라고 하자.
  • 11. PPT 수식치기 빡세다… • TeX으로 쳐서 캡처해왔다. • 2번째 → 3번째 line에는 Ballot’s theorem이라는 게사용되었는데, Catalan number와 관련이 있다. • 𝑖 ≤ ℎ인 case만 고려했음에 주의하자.
  • 12. Fact! • 다음의 근사식이 성립한다. • 𝐻 𝑝 ≔ −(𝑝 lg 𝑝 + 1 − 𝑝 lg 1 − 𝑝 ) • 겨우 ‘다항식 조금’밖에 차이(비율)가 없단다. • 어째 점점 practical과 멀어진다.
  • 13. Lower it! • 이제 Pg11의 식에서 𝑖 = 𝑗 𝑘−2 인 ‘단 하나의 항’만 고려하고, Pg12의 Fact를 사용하면 • ‘다항식 조금’ 정도의 오차로 다음이 성립한다. • 여기서 𝛼 = 1 𝑘−2 이다. • 열심히 계산하면 우변의 값은 1 𝑘−1 𝑗 가 된다. • ℎ와 𝑗를 혼동하였다. 죄송합니다……….
  • 14. Conclusion • 𝑞ℎ값을 대입해주면 다음과 같이 𝑝의 값을 알아낼 수 있다. • 따라서 이 알고리즘의 복잡도는 • 𝑂 1 𝑝 = 𝑂 2 − 2 𝑘 𝑛 이고, 3-SAT(𝑘 = 3)인 경우는 𝑂(1.33 𝑛 )이다. • 물론 다항식 수준의 factor는 쿨하게 씹는다.
  • 15. Is it CP - practical? • 대충 𝑂(𝑟 ⋅ 1.33 𝑛)에 돌아갈 것 같으니까, 𝑟, 𝑛이 40정도까지는 1초 안에 돌아갈 것 같다. • 근데 이 정도 사이즈면 차라리 𝑟 ⋅ 2 𝑛짜리 naïve 랜덤 돌리 는 편이 훨씬 낫지 않을까…? • 3-SAT까지 써야 하는 연습문제가 없어서 벤치마킹이 어렵 다. 있다면 제보 바랍니다~ • Facebook : @tamreffingbaekjoon • Blog : tam-ref.ga • Email : sluggeryck@naver.com