의미 그래프는 각 노드가 참 또는 거짓으로 지정된 방향 그래프이며 u -> v 모서리는 if u is true then v is true을 의미합니다. 이 나는 일반적인 의미 그래프의 할당 및 (A 2 SAT 문제에서 발생하는 의미 그래프와 같은) 특별한 경우에 대한 O(n) 알고리즘을 찾기 위해 간단한 O(n^2) 알고리즘을 알고있다. O(n) 알고리
2-SAT 문제의 확장 문제입니다. 표준 2-SAT 문제에서, 우리는 우리가 선택한 정점의 순서에 의존하는 진리 할당을 찾을 수 있습니다. 나는 그 표현이 만족할 수있는 오직 하나의 진리 과제 (즉, 오직 하나의 조합)가 존재 하는지를 확인하기를 원한다. 리터럴 수는 100000 일 수 있습니다. 한 가지 방법은 모든 가능한 진리 할당을 찾아서 구별되는 경
100000 리터럴에 대해 2-SAT 문제를 구현하고 싶습니다. 따라서 200000 개의 정점이 있습니다. 그래서 나는 각 버텍스로부터 모든 도달 가능한 버텍스들, 공간 복잡성 O(200000^2)의 배열을 갖는 것에 박차를 가하고 있습니다. 그래서 이것을위한 해결책을 제안하십시오. 그리고 2-SAT 문제의 효과적인 실행에 대한 어떤 생각을 던져주십시오.
현재 시험에 대한 2SAT 문제를 연구하고 있으며, 무차별 대입을 사용하여 솔루션이 있는지 확인하는 방법을 실제로 이해하지 못합니다. 이게 이상하게 보일지 모르지만 암시 그래프를 조금 더 구현하는 방법을 이해하지만 무차별 전략을 구현하는 방법을 너무 확신하지 못합니다. 누군가 통찰력을 공유 할 수 있습니까? 어쩌면 의사 코드 또는 java에있을 수 있습니다
잠시 동안 찾고 있었지만 2-Sat 알고리즘의 구현을 찾을 수없는 것 같습니다. 내가 (A strongly connected component module있다) 부스트 라이브러리와 C++에서 작업 나 C++를 사용하는 기존 라이브러리에 몇 가지 지침이 필요하거나 효율적인 2 토 프로그램을 만들거나 찾을 수 있어요.
SCC에 대한 만족 가능성 문제를 해결하고 토폴로지 정렬에 대한 질문이 있습니다. 내가 이것을 기반으로하는 알고리즘은 SCC를 역 위상 구조로 처리하는 것입니다. SCC가 모두 연결되어 있으면 좋을 것입니다. 내 알고리즘은 다음과 같은 경우에 파괴되어이이처럼 보이는 그래프를 만드는 3 3
-2 3
1 -2
-2 -1
: 두 가지 소스와이 그래프에