https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=61290

울트라 큐브 양자해석 관련 정보겨우 2팩까지 밖에 안한 주제에 내부 구현이 너무 궁금해서 코드를 뜯어봤음정답이 큐빗 넣는 순서에 영향을 받는지, 같은 큐빗 2개가 정답이 될 수 있는지도 궁금했고그래서 이걸 어떤 식으로 구현했는지 너무 궁금했다코드를gall.dcinside.com


질문에 앞서 양자해석기 설명 대신에 갤에 있는 설명 잘된 글 첨부함

혹시나 싶어서


나도 일단 21개 조합 다 나열해서 때려박았음

일정 틱 마다 카운트해서 해당 번호 조합 투입하게 함


그렇게 나온 게 이거

이거 전에 프로토타입이 몇 개 있긴 한데 지금은 그게 중요한 게 아니고

보면 왜 굳이 투입기 앞에 로더 놨지 싶을텐데 저게 없으면



정답떴을 때 한텀 입력이 씹힘


앞에 로더(혹은 벨트) 있으면 그런 현상이 없음...


일단 이게 첫번째 질문임

양자 해석기가 각 큐비트를 처리하는데 1.6초

그러면 한쌍은 3.2초 = 192틱일건데

보면 알겠지만 각 투입에 꽤 여유를 줬고 실제 사이클 값은 210틱으로 해 뒀음

벨트에 연결된 건 출력이 막혔을 때 멈춰야 하기 때문에 있는 부분이라 상관 없는 것 같음


어째서 건물에 직접 넣을 때와 로더 혹은 벨트로 넣을 때 이런 차이가 나는지를 알고싶음


그리고 

저거 만들고나서 양자 얽힘 연구가 있는걸 알았음

오기생겨서 도전함

끊임 없이 큐비트를 투입한다고 하면

큐비트가 나오는 걸 본 순간에도 이미 건물 안에 큐비트가 한 쌍 있기 때문에

최소 두 쌍의 큐비트 결과를 볼 수 있는 걸 이용해서


경우의 수를 전부 정리했음

그러면서 원래 조합 번호표는 가장 왼쪽에 있는 거였는데

필요에 의해 그 옆걸로 바꿨음 

빈 용기가 아니라 큐비트가 나왔을 때 스탑을 걸고 다음 결과까지 봤을 때 가능한 결과는

OX 혹은 OO

여기서 O의 개수를 !신호의 값으로 하고 

왼쪽의 숫자는 마지막 투입의 조합 번호의 값임

그러니까 n-1, n의 결과를 알고 있는거지

정답이 한개인 경우는 간단한데

두 개인 경우는 조금 복잡해졌음

예를 들어 2연속 정답에 3번에서 멈췄다고 하면

청록 + 핑크 중 하나 정답

청록 + 빨강 중 하나 정답인데

청록을 확정으로 두면 핑크와 빨강이 제외되지만

반대로 핑크 + 빨강이 정답일 수도 있음

그리고 1번에서 멈춘 경우는 보면 알겠지만 정답 확정임

이 정보를 가지고 


큐비트가 나오면 원래 진행하던 카운트가 아니라 

정답 후보군 풀이 따로 마련되어서 그걸 기반으로 돌게 했음

어느 타이밍에도 정답이 나오는 순간 리셋됨 



그렇게 해서 나름 완성된 물건

하면서 보기 편하려고 디스플레이 넣느라 좀 난잡한데

(사실 정리해보려다가 포기함)


이렇게 돌아감


보면 알겠지만 서브 레시피가 켜질 때 딜레이가 있음

물론 정답이 나왔을 때도 딜레이가 있음 

둘 다 대충 한 사이클 정도 되는 것 같음

그걸 없애 보려고 타이밍 조절을 시도해봤는데 다 잘 안됐음

이 딜레이를 없앨 수 있는 방법이 두번째 질문


그리고 마지막으로 저 경우에는 투입기 앞에 로더놓으면 아예 고장남

이상한 곳에서 멈춰서 헛돌게 되더라

이유는 잘 모르겠음

적어도 입력이 씹혀서 큐비트 쌍 조합이 깨지는 문제는 아닌 것 같음

이게 세번째 질문임



https://factoriobin.com/post/chl56z


울트라큐브 양자 해석기 도움 요청 - FactorioBinFactorioBin is a site for quickly and easily sharing Factorio blueprintsfactoriobin.com

일단 만든 거랑 순서쌍 배치한거 청사진인데

돌아가면 장떙 느낌으로 만들어서 난잡할거고

어디가 문제인지 봐줬으면 해서 올려봄

일단 저 상태로도 양자얽힘 쓰는 버전은 한시간 돌리면 보정 데이터 1300~1400개 모이더라

각 양자 용기는 저렇게 멈칫멈칫하는 바람에 분당 4~5개씩 쓰니까 위상 정렬기 한세트면 한번에 10대정도 굴릴 수 있기는 함