각 빈에 같은 색의 볼이 포함되도록 최소 스왑 수를 사용하십시오.


13

있습니다 쓰레기통에서, 내가 일 빈은 포함 내가 공을. 공은이 n 개의 색깔이있다 나는 색상의 공 . 하자 m = Σ N = 1 I를 .niainaiim=i=1nai

스왑은 한 빈에서 공을 가져오고 다른 빈에서 공을 스왑합니다. 각 빈에 같은 색의 볼만 포함되도록 최소 스왑 수를 원합니다.

나는 쉽게 특별한 경우를 알고 내가2 모든 난을 . (경우 = 2를 모두 내가 , 당신은 한 번도 대부분의 각 공을 교환하여 작업을 수행 할 수 있습니다.)ai2iai=2i

편집 : 이것은 찾는 것이 NP-hard 이기 때문에 잘못되었습니다 .c(D)

어떤 색상이 어떤 용지함에 들어가는 지 알면 문제가 쉽습니다.

다중 도표 , V = { v 1 , , v n }을 고려하십시오 . 우리는 컬러를 알고있는 경우 빈 간다 B ( I ) 하고있다 유전율 평행 아크 ( j는 , B ( ) ) 에 빈 IFF에 J 포함 K의 색의 공 I을D=(V,A)V={v1,,vn}ib(i)k(j,b(i))Ajki. 그래프의 각 구성 요소는 Eulerian입니다. 필요한 최소 스왑 수는 . 여기서 c ( D )A 를 포함 하는 아크 분리 사이클 수입니다 . 우리는 Eulerian 회로를 "따라"교환 할 수 있습니다. (최소 사이클의 아크를 사용하는 스왑은 더 작은 최소 사이클과 자체 루프로 변경할 수 있습니다). 전체 그래프가 자체 루프로 설정되면 필요한 모든 스왑을 만들었습니다.mc(D)c(D)A

이 문제는 일반적으로 얼마나 어렵습니까?

답변:


3

오일러의 최대 분해 에지 이산 사이클 그래프로 NP-하드 인 감독이 책에있어서 적어도, 알고리즘 및 애플리케이션 : 그의 60 생일에 즈음 에스코 Ukkonen에 전용 에세이 .

btw, 여기 당신이 해결하려고하는 문제와 관련된 기사가 있습니다 : 네덜란드 국기 알고리즘에 대한 무증상 최적 알고리즘 .

n6


나는 우리가주기에 도달 할 때까지 그래프를 걷고 다시 시작함으로써 최대 분해를 찾을 수 있다고 잘못 가정했습니다. 실제로이 문제는 일반적으로 NP-hard입니다.
Chao Xu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.