최근 수정 시각 : 2024-07-27 14:51:21

차분기관

파일:external/upload.wikimedia.org/050114_2529_difference.jpg

실제로 제작한 차분기관

1. 개요2. 상세
2.1. 원리
3. 기타4. 대중매체에서5. 관련 문서

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(f(6) = 66 + 25 = 91)]임을 알 수 있다.

즉, 다항식 [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}과 같이 계산이 이루어진다.

분류