실제로 제작한 차분기관
1. 개요
差分機關 / difference engine영국의 수학자 찰스 배비지가 설계했으나 완성은 하지 못한 기계식 계산기.
2. 상세
톱니바퀴와 기어를 이용하여 기억과 계산을 수행하며, 핸들을 돌려 동력을 얻었다. 계산 결과는 인쇄기로 출력된다. 다항함수를 계산할 수 있었으며 7개의 숫자를 31자리까지 기억시킬 수 있었다.로그값을 정확하게 구하기 위한 프로젝트로 이 차분기관을 이용하기로 해서 영국 정부의 지원을 받았지만[1] 당시 기준으로는 시간과 예산이 너무 많이 들었기 때문에 결국 완성에는 실패하였고 설계도만 남게 되었다. 배비지의 괴팍한 성격도 실패의 원인이 되었다. 당시 영국에서 이 정도로 금속을 정밀하게 가공할 수 있는 기술자가 조세프 클레멘트(Joseph Clement)라는 사람밖에 없었기 때문에 클레멘트에게 부품 제작과 조립을 맡겼는데, 배비지가 클레멘트에게 "조립비가 너무 비싸다"며 시비를 거는 바람에 둘 사이에 싸움이 나서 클레멘트가 조립을 때려치워 버렸고, 결국 완성할 수 없게 되었다고 한다. 게다가 차분기관 제작 도중에도 배비지는 차분기관의 개량판인 차분기관 2호(Difference Engine No. 2)를 설계하기 시작했는데, 이미 돈까지 다 받아놓고 시작한 프로젝트를 완성할 생각은 않고 신 모델만 만든다며 정신을 쏟고 있는데다 결국 완성도 못하고 실패한 배비지의 모습은 투자자들에게 큰 실망을 주었으며, 그들은 배비지에게 더 이상 지원을 하지 않았다.
이 실패에 굴하지 않고 만들기로 시도한 다음 단계가 바로 해석기관. 구조가 더 복잡해진 관계로 증기기관을 사용하게 되어 완전한 컴퓨터나 다름없는 기계였지만 차분기관보다 몇 배나 크고 복잡한 기계다 보니 차분기관과 달리 완성품이 아직도 안 나온 상태.
2.1. 원리
[math(2x^2+3x+1)]
x=1,2,3...에 대해, 위 이차다항식의 값을 구해보자. 대입을 통해 계산할 경우 총 세 번의 곱셈과 세 번의 덧셈이 필요하다. 인간은 이것을 쉽게 계산할 수 있지만, 톱니바퀴를 이용해 기계적으로 구현하기 위해서는 구현이 굉장히 복잡하고 다항식이 바뀔 경우 매번 구조도 변경해야 되므로 다른 방법이 필요하다. 이때 차분법을 사용하면 연속된 덧셈만으로 임의의 다항식의 값을 순차적으로 계산할 수 있다.x에 따른 다항식의 값([math(f(x))])과 그 차이([math(\Delta _1)]), 그 차이의 차이([math(\Delta _2)])...를 계산한 테이블을 작성해보자.
[math(x)] | [math(f(x))] | [math(\Delta _1)] | [math(\Delta _2)] | [math(\Delta _3)] |
1 | 6 | |||
2 | 15 | 15 - 6 = 9 | ||
3 | 28 | 28 - 15 = 13 | 13 - 9 = 4 | |
4 | 45 | 45 - 28 = 17 | 17 - 13 = 4 | 4 - 4 = 0 |
5 | 66 | 66 - 45 = 21 | 21 - 17 = 4 | 4 - 4 = 0 |
이차식의 경우 뻴셈을 두 번 했을 때부터 상수값이 나온다. 미분이 차분의 극한이라는 것을 생각하면 n차 다항함수의 n계도함수가 상수가 나오는 것과 같은 원리라는 것을 쉽게 이해할 수 있다. 표를 조금 변형해보면,
[math(x)] | [math(f(x))] | [math(\Delta _1)] | [math(\Delta _2)] | [math(\Delta _3)] |
1 | 6 | 9 | 4 | 0 |
2 | 6 + 9 = 15 | 9 + 4 = 13 | 4 + 0 = 4 | 0 |
3 | 15 + 13 = 28 | 13 + 4 = 17 | 4 + 0 = 4 | 0 |
4 | 28 + 17 = 45 | 17 + 4 = 21 | 4 + 0 = 4 | 0 |
5 | 45 + 21 = 66 | 21 + 4 = 25 | 4 + 0 = 4 | 0 |
6 | ? | ? | ? | ? |
즉, 다항식 [math(2x^2+3x+1)]은 초기값이 [math(\{6, 9, 4, 0\})]인 점화식으로 변환할 수 있으며 인접한 칸끼리 덧셈을 반복하는 것 만으로 함수값을 구할 수 있다. 구하려는 식이 바뀌어도 초기값 파라메터만 바꿔주면 되고 근본적인 알고리즘은 동일하다. 차분기관에는 [math(\Delta _7)]까지 있었기 때문에 7차 함수까지 다룰 수 있다.
한 사이클에 한 칸씩만 계산하는 것은 효율이 떨어지기 때문에 짝수칸/홀수칸을 동시에 계산하는 방식을 통해 총 두 사이클마다 다음항을 구할 수 있다.[2] 오늘날 CPU의 파이프라인의 원조라고 볼 수 있다.
3. 기타
빅토리아 시대의 기술력으로 이 정도 수준의 기계를 만드는 것은 불가능하지 않을까 하는 의견도 있었지만, 현대에 이르러서 당시의 기술력 수준을 고려하여 실제로 제작해본 결과 놀랍게도 잘 작동했다.차분기관의 작동 동영상
해석기관과는 달리 상대적으로 간단한 덕택인지 레고로도 만들어졌다.
4. 대중매체에서
19세기 빙하기에서 인류의 사투를 다룬 게임 프로스트펑크에서는 차분기관의 개발이 실패한 원 역사와 달리 대성공한다! 이로 인해 오버 테크놀로지 기술인 증기심, 자동기계, 발전기, 드레드노트 등이 만들어져 인류가 생존할 수 있는 희망이 되었다. 실제 게임 내에서도 4티어 테크트리를 해금하는 연구가 차분기관이다.윌리엄 깁슨과 브루스 스털링의 소설 차분기관(The Difference Engine)에서도 개발이 성공하는데, 여기서는 그로 인해 빅토리아 시대에 정보 혁명이 일어났다는 설정이다.
5. 관련 문서
[1] 17,000 파운드를 지원받았는데, 당시 전함 두 대를 생산할 수 있는 돈이었으며 현재 가치로는 대략 340억에 달하는 거액이다.[2] 즉, {6, 9, 4, 0} → {15, 9, 4, 0} → {15, 13, 4, 0} → {28, 13, 4, 0} → {28, 17, 4, 0}과 같이 계산이 이루어진다.