회로가 이해하기 난해한 이유는 배선 시스템 자체의 문제임. 의사코드(C 스타일)로 비유하겠음.


A decider_combinator(A x) {

if (x > 0)

return x;

else

return 0;

}


어떤 수량비교 조합기의 의사코드임. A값이 양수일 때만 A값을 출력하는걸 쉽게 알 수 있을거야

하지만 사실 이 비유는 꽤나 잘못되었음. 게임 내에서 실제 동작하는 모습으로 다시 작성하면..


void decider_combinator(int input_idx, int output_idx) {

if (network[input_idx].A > 0)

network[output_idx].A += A;

}


...가 됨

무슨 말을 하려하느냐? 회로 네트워크는 데이터 흐름이 정말 어지러울정도로 암시적으로 이루어짐

전선의 연결이 하는 일이 사실은 다음 조합기에 정보를 꽂아주는것이 아니고, 전역 상태를 형성한다는 것

그리고 전역상태의 공유를 통해 데이터를 전달한다는 사실이 회로 분석을 난해하게 한다는말임.

어떻게 하면 그나마 이해 가능한 상태로 회로를 유지가능할까?

각 상태에 의존하는 조합기의 수를 줄이면 네트워크를 이해하기 쉬워지겠지.

그리고 이런 방법의 이해 없이도 우리는 0을 더하는 산술조합기를 사용하여 이를 실천하고 있음.