NP- 완전 문제와 매일의 만남


34

Mark Dominus 는 다양한 NP-hard 문제에서“정규적인 표현”매칭 으로 다항식 시간을 줄이는 몇 가지 예를 모았습니다 . 다항식 시간 검증을 구상 하는 것은 큰 도약이 아닙니다.

Deolalikar의 논문에 대한 최근의 소란을 이해하고자하는 학부생이나 다른 분야의 친구들에게 NP 완료 클래스를 어떻게 설명합니까?

답변:


24

비 CS 친구와 함께 사용하는 가장 좋아하는 예는 다음과 같습니다.

아브라함, A. 블룸, 샌드 홀름. 교환 교환 시장을위한 알고리즘 지우기 : 전국 신장 교환을 가능하게합니다. EC07.

신장 교환 시장은 본질적으로 제한된 형태의주기 범위입니다. 나는이 예제를 좋아한다 .a) 요점을 설명하기가 쉽고 (더 많은 기술적 세부 사항을 생략하면) b) 더 나은 알고리즘이 문자 그대로 생명을 구할 수있는 곳을 알고있는 몇 안되는 인스턴스 중 하나입니다!

내가 가장 좋아하는 예는 병원 및 거주자 문제 (일명 대학 입학 문제)입니다. 각 병원은 모든 거주자 (졸업 의료 학생)와 주민 순위 병원의 순위를 매 깁니다. 각 병원에는 특정 수의 슬롯이 있습니다. 거기에서 안정적인 매칭 문제이며 다항식 시간으로 해결할 수 있습니다.

그러나 실제로 부부는 시스템에 함께 들어갈 수 있으며 (예, 실제로 시스템이 있음 ), 예를 들어 시스템이 거주를 신청하는 부부를 분할하지 않도록합니다. 커플을 추가하면 NP가 문제가됩니다. 설명하기 쉬울뿐만 아니라, 장거리 연결의 도입으로 NP- 완전성을 어떻게 유도 할 수 있는지 잘 보여줍니다.


1
좋은 예입니다! David Manlove는 이러한 종류의 문제 (교환 및 일치)에 대해 광범위하게 작업했습니다. 이 시스템은 영국과 헝가리에서 사용되고 있습니다. dcs.gla.ac.uk/~davidm/publications.html 내가 아는 한, 이러한 접근 방식은 NRMP 알고리즘을 능가하며 Eric McDermid의 3/2 근사 알고리즘이 가장 잘 알려져 있습니다. dx.doi.org/10.1007/978-3-642-02927-1_57
András Salamon

13

NP가 어렵고 적절하게 공식화 된 몇 가지 "일상"문제 :

  • 스케쥴 충돌을 최소화하기 위해 대학교 수업을 타임 슬롯에 할당.

  • 친구가 같은 테이블에 앉을 수 있도록 결혼식 손님을 좌석에 배정하지만 적은 그렇지 않습니다.

  • 운전을 최소화하기 위해 목록에있는 모든 관광지를 방문하는로드 트립 계획.


12

여행하는 세일즈맨 문제는 분명히 접근 할 수 있습니다 ... 적어도 내가있는 곳에서는 이것이 CS가 아닌 사람들에게 가장 인기있는 CS 문제인 것 같습니다. 또한 알고리즘 강사가 소개 한 다음 Vertex Cover 그림이 매우 매력적입니다.

도로 네트워크가 있으며 자동차에 연료가 갇혀 있으면 도로의 한쪽 끝에 주유소가 있는지 확인하십시오.

도시 계획자로서 가능한 적은 수의 주유소를 구축하여 비용을 최소화하고자합니다. 이것은 본질적으로 꼭짓점 덮개 문제이며, 다항식 시간에서 최적의 꼭짓점 덮개를 찾을 것으로 기대하지는 않지만, 다항식 시간에서 2 배 밖에 걸리지 않는 것을 찾을 수 있다는 점에서 최대 매칭의 두 끝점을 간단히 선택함으로써 (특히, MM 알고리즘이 정확히 2 개의 라이너가 아니기 때문에 청중의 관심에 따라 마지막 세부 사항은 생략 될 수 있습니다).

문제의 본질에 작은 변화가있는 '복잡성 점프'의 예에 관해서는, 2 색과 3 색의 확인의 차이점이 좋은 예라고 생각합니다. 4 색 정리를 둘러싼 모든 홍보를 통해지도가 항상 4 가지 색으로 만 채색 될 수 있음에도 불구하고 4 색 대신 3 색만으로 제대로 색을 칠할 수 있는지 여부를 확인하는 것이 어렵다고 지적 할 수도 있습니다. 상당수의 사람들이 이것이 놀랍습니다.

또 다른 자연스러운 상황은 운영 체제 의 교착 상태 복구 문제 입니다. 이것은 피드백 버텍스 세트의 NP- 완전 문제-그래프를 비 주기적으로 만드는 버텍스 수가 가장 적음-으로 표현됩니다.


3
최대의 일치를 계산하고 설명하기가 훨씬 쉽다 두 근사 위해 충분하다.
워렌 슈디

1
@Warren : 물론 당신이 옳다는 것을 지적 해 주셔서 감사합니다!
Neeldhara

8

평행 주차는 NP-hard라고 생각합니다.

실제로 다각형 환경에서 다각형 객체를 초기 위치에서 최종 위치로 가져 오는 곡률 경계가 가장 짧은 경로를 찾는 가장 일반적인 문제는 NP-hard입니다. 증거는 여기에서 찾을 수 있습니다 -http : //portal.acm.org/citation.cfm ? id=298976


7

배낭은 작은 가방을 다뤄야하는 사람이라면 특히 이해하기 쉽습니다. 동적 프로그래밍을 알고 있다면 좋은 예입니다.

또 다른 재미 (실제적으로 동일한) 하나는 Subset-sum입니다. 물리적 해석도 훌륭하기 때문에 숫자는 이상적인 (무 질량) 눈금자에서 동일한 점 질량의 거리이며 원점에 받침점이 있다고 상상하십시오. 하위 집합 합계 : 통치자가 균형을 유지하도록 비어 있지 않은 하위 집합이 있습니까? (즉, 무게 중심이 자의지지 점이되도록?)

두 경우 모두 순진한 전략으로 인해 모든 하위 집합을 확인해야 할 수도 있습니다.

더 많은 배경 지식이 있다면 제약 조건을 삭제하여 문제를 해결하는 것이 좋습니다. 예를 들어, 최대 흐름 문제로 시작하여 선형 프로그램으로 바꾸고 정수 프로그램으로 만듭니다. (물론 더 많은 배경을 가진 사람들에게도 UGC를 가져올 수 있기 때문에 훌륭한 것은 MAX-CUT입니다. 나는 MO 답변 https://mathoverflow.net/questions/33036/is-quadratic-programming -still-np-hard-if-you-have-bounds-and-a-feasible-point / 33048 # 33048. ) 또한 상당히 다른 복잡도를 가진 유사한 것처럼 보이는 문제가 있습니다. 시간, 해밀턴 (정점) 경로는 NP- 완료)입니다.


7
나는 Subset Sum의 다음 버전을 좋아한다 : 당신은 상점에서 간식을 사기 위해 £ 10를 받는다. 돈이 남지 않도록 구매의 올바른 조합을 정확하게 찾을 수 있습니까?
András Salamon

6

크로스 워드 퍼즐 구성은 NP-Complete입니다. 일련의 답변이 주어지면 그리드에 맞추십시오.


5

나는 웹 사이트 Tagxedo, http://www.tagxedo.com을 만들었습니다 . 결과는 매우 좋지만 문제는 NP-hard (패킹 문제)로 쉽게 입증됩니다.

흥미롭게도 많은 NP-hard 문제들은 "쉬운"근사치를 가지고 있습니다. Tagxedo는 많은 경우에 거의 완벽한 작업을 수행하는 것 같습니다. 이것은 P 대 NP의 실제적 의미와 근사화 주제에 대한 흥미로운 토론으로 이어집니다.


4

내 친구 중 한 명이 북미의 모든 메이저 리그 경기장에서 야구 경기를 보며 안식년을 보냈습니다. 비행하지 않고. (그는하지 않았다 매우 성공 3 개 개의 경기장 건설 그 해 아래에 있었다.)


네,하지만 가스 사용량을 최소화하려고 했어요? :)
Suresh Venkat

경기장이 매일 열리지 않기 때문에 실행 가능한 일정을 찾는 것조차도 NP-hard였습니다 (시간 창이있는 해밀턴 사이클).
Jeffε

4

Uber 및 Lyft와 같은 회사의 성공으로 인해 많은 사람들이 NP- 완전 문제에 대한 접근성이 뛰어난 직접 경험을 가지고 있습니다.

운전사 모음과 다양한 시간에 픽업을 원하는 사람들의 목록을 고려할 때, 운전자에게 가장 효율적인 승객 배정은 무엇입니까?

이 문제 (적절하게 표현할 때)는 NPC이며 사람들이 언젠가 Uber가 어떻게 운전자와 승객을 페어링하기로 결정했는지 궁금해 한 것 같습니다.


3

나는 보통 SAT를 예로 사용합니다. "항상 발생하는 모든 종류의 문제는 큰 논리 공식에 대한 실제 할당을 찾아서 다시 작성할 수 있습니다. P 대 NP 문제는이 논리 공식을 해결하는 근본적인 방법이 기본적으로 쉬운 지 아닌지입니다. 지금까지는 아무도 길을 찾을 수 없었으며 탈출구가 없다는 것을 증명할 수 없었습니다. "


2
나는 매일 얼마나 많은 사람들이 이것을 만날 지 잘 모르겠습니다.
Dave Clarke

3

nxn sqaure의 Sudoku와 같은 Np 완료 문제는 효율적으로 검증 가능한 솔루션이있는 모든 문제를 효율적으로 해결할 수있는 범용 도구와 같습니다. 유일한 요구 사항은 스도쿠를 해결하는 효율적인 방법을 갖추는 것입니다.


2

일정은 거의 매일 우리 주변에 있습니다. 작업장이든, 제조일이든, 아니면 하루를 계획하든 , 효율적이고 정확한 알고리즘을 원했던 완전 문제를 발견 할 수 있습니다. 스케줄링에서 일반적으로 발생하는 상황은 병렬 시스템 스케줄링입니다 (일반적으로 비선 점형이며 작업은 병렬로 발생 함). 병렬 시스템 스케줄링 문제를 시각화하는 간단한 방법은 블록을 쌓는 것입니다.NP

예를 들어, 가장 높은 타워의 높이를 최소화하려는 목표 로 개의 타워 (블록이 쌓여 쌓여 )로 다양한 높이 (예 : ) 의 블록을 할당하는 것은 -hard입니다. 이는 동일한 병렬 시스템에서 makepan 문제와 같습니다 ( 블록의 경우 길이의 작업 / 작업 , 시스템의 타워 및 마지막 완료된 시스템완료 시간 동안 가장 높은 높이 (makespan이라고 함)). 최대 높이의 타워가 묻는 다음 될 것p j m N P p j k N PnpjmNPpjkNP이 상황에서-완료. 넘어 질 수 없다고 가정하면 블록이 필요하지 않습니다. 종이, 상자 또는 접시가 쌓일 수 있습니다.

이것이 도움이되기를 바랍니다!


2

변덕스럽게 접근 예는이다 간단한 프리젠 테이션 마크 도미 누스에 의해합니다 (참조 관련 블로그 포스트를 아래 이미지의 개요의 뒤통수 때리는 웃긴이다 "즐겨 찾기 NP-전체 문제"라고 함) 3 세트에 의한 정확한 커버 .

비디오 시리즈의 타이틀은 다음과 같습니다.

  • 춤, 음악 및 도서
  • 손, 귀 및 발
  • 엘모와 함께 일어나기 (자기, 옷 입기, 양치질에 대해)
  • 이웃 사람 (소방관, 구조 대원 및 간호사)

분명한 의도는 각 비디오가 세 가지 에피소드를 모두 포함하여 어린 아이들이 관심을 갖는 주제 풀에서 공통된 주제에 관한 것이 었습니다.

이 시리즈의 이상한 오리는“꽃, 바나나,… 머리카락”에 관한 비디오였습니다.

꽃, 바나나, 그리고… 머리.


0

특히 백팩 문제를 나중에 볼 때이 NP- 완전 문제는 적합 할 수 있습니다.

숫자 추측. 정확히 맞을 때까지 단일 숫자 만 추측 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.