검수요청.png검수요청.png

차분기관

위키원
oshc12 (토론 | 기여)님의 2020년 8월 24일 (월) 16:24 판
이동: 둘러보기, 검색
찰스 배비지(Charles Babbage)
차분기관

차분기관(Difference Engine)이란 기계공학자 찰스 배비지(Charles babbage) 만든 다항식 계산기이다. 흔히 미분기로도 불린다.

개요

1821년 영국, 천문학자이자 수학자인 찰스 배비지는 손으로 계산한 천문 테이블을 보고 오류를 발견했다. 그는 사람들의 오류를 보면서 계산 또한 증기를 사용하여 작동한다면 오류 발생 확률이 극히 적어지며, 오류로 인해 발생하는 피해도 막을 수 있을 것이라 다짐했다. 이에 따라 찰스 배비지는 인쇄된 테이블의 오류의 위험을 제거하기에 기계로 만든 계산 엔진을 설계하고 구축하려는 시도를 하게 되었다. 계산엔진에 대한 그의 작업은 기계화된 산술방식에서 완전히 새로운 자동 계산 영역으로 전환되는 계기가 되었다. 또한 그는 수학자였기 때문에 엔진의 기술 또한 수학 기술로 보았다.[1] 다음해인 1822년 영국왕립학회 회장인 험프리 데이브 경에게 탐색을 하는데 사용되는 로그 테이블의 자동생성 가능성에 대한 편지를 보내기 시작했다. 당시 사용 중인 천문학 테이블에 오류가 있었기 때문에 테이블 자동생산을 한다면 많은 이득을 볼 수 있었다. 이를 받아들인 영국정부는 찰스 배비지에게 차분기관을 개발할 수 있도록 자금지원을 약속하였다. 찰스 배비지는 여러 기계공들과 차분기관을 발명할 환경을 만들고 실험을 진행했다. 일반적으로 최대 30자리 숫자까지 결과를 산출하는 계산기를 생각했으며, 톱니바퀴를 이용하여 0에서 9까지 표현하는 10진법 기법을 사용했다. 단순 계산문제뿐만 아니라 여러 변수에 대한 복합적인 계산을 하는 로그함수, 삼차함수에 대한 계산이 가능했다. 또한 데이터를 임시로 보관할 수 있는 저장공간이 있었으며, 천공카드를 사용하여 해당값의 출력이 가능했다.[2] 차분기관은 계산 부분과 출력간에 동일하게 사용되는 약 25,000 개의 부품을 필요로했다. 만약 완성되었다면, 무게는 약 4 톤이고 높이는 약 8 피트로 예상하고있다. 그의 엔지니어 인 조셉 클레멘트와의 분쟁으로 인해 1832 년 차분기관 작업이 중단되었고 정부 자금또한 끊키게 되었다. 때문에 실제로 만들지는 못하고 찰스 배비지의 노트와 여러 논문만 존재하였다. 1991년 배비지의 탄생200주년을 기념하여 영국의 런던 과학박물관에서 차분기관 및 해석기관을 제작하게 되어 오늘날 우리가 볼수있는 계산기장치가 만들어졌다. 완성 된 기계는 찰스 배비지가 의도 한대로 작동했다. 8,000개의 부품이 계산 부분과 출력 장치간에 균등하게 분할됩된다. 무게는 약 5톤이고 높이는 2미터, 길이는 3.5미터이며 가장 좁은 부분의 깊이는 18인치이다. 차분기관이 잘 작동한다는 의미는 그가 구현했던 수학적 매커니즘과 기계와의 결합이 오류가 없고 매우 정밀도가 높았음을 알 수 있다. 또한 독창성을 지닌 엔지니어로 여겨진다.[1]

차분법

순차 메커니즘 예시
  • 순차 메커니즘
찰스 배비지는 절대적이고 정확한 수학표를 만들기위해 차분기관을 사용하였다. 특히 천문학과 항해에는 사인, 코사인, 로그 등과 같은 표준 수학 함수표가 필수적이였다. 당시 계산된 표는 계산 자체의 실수 나 조판 및 인쇄 과정에서 발생한 오류로 가득 많았기 때문에 항해 오류로 인해 많은 선박이 손실되었다. 이에 뉴턴의 분할차이 방법인 미적분을 사용하여 차분기관을 작동시켰다. 대부분의 계산에는 단순한 덧셈과 뺄셈이 포함되고, 표로 작성할 함수는 먼저 다항식에 의해 특정 범위에 대해 근사화된다 . 다항식의 정도는 계산할 테이블의 원하는 정확도와 단일 다항식 근사치에 포함되는 함수 범위에 따라 달라진다. 이 방법은 프랑스의 수학자 가스파르 드 프로니에 의해 처음 적용되었다.1790 년대 프랑스에서 14 ~ 29 자리까지 계산 된 로그 및 삼각 함수 표 18 권에 대한 원고를 제작했다. 소수의 전문 수학자들이 계산에 사용하기에 가장 적합한 공식을 결정한 다음, 두 번째 소규모 수학자 그룹이 공식을 사용하여 훨씬 더 큰 그룹의 초기 값 세트를 계산했다. 세번째 그룹은 동일한 계산을 독립적으로 수행하기 위해 두 세트로 나누어지고, 마지막으로 두 번째 그룹은 두 세트의 계산 결과를 비교하여 결과를 확인하기 위해 다시 사용되었다. 찰스 배비지는 세 번째 그룹의 전체 작업이 기계에 의해 제거 될 수 있다는 것을 깨달았고, 또한 계산이 사람의 실수없이 자동으로 이루어 지므로 두 번째 그룹의 작업 대부분도 생략 할 수 있다는 사실을 알게되었다. 옆의 표는 2차 다항식에 관한 설명이다. 다음 테이블의 첫 번째 행만 주어지면 이제 함수 x의 임의 값에 대해 나머지 테이블을 더하기 만하면된다. 차이 열의 다음 항목을 얻으려면 두번째 차이 열의 동일한 행에서 차이 열의 현재 항목에 값을 추가하기만 하면된다. 이와같은 방법을 사용하여 테이블을 차례대로 구성할 수 있다. 단, 테이블 함수값을 구하기 전에 각각의 차이값에 대한 부분의 표를 위로 올려주어 표준화 시켜야한다.[3]
  • 병렬 메커니즘
    병렬 메커니즘
찰스 배비지는 차분법을 이용하여 어떠한 다항식값의 결과 테이블 한 행만 있어도 다음 변수x에 대한 계산값을 구할 수 있도록 병렬 메커니즘을 사용하였다. 만약 차분기관이 7자리 숫자까지 표현을 한다면 병렬 메커니즘은 다음의 표와 같다. 유한방법을 사용하여 다항식의 값의 순서를 계산하고, 값의 차이를 구하기 전에 각 열의 첫번째 값을 일치시켜준다. 유한차분방법의 속성은 행을 기억할 필요가 없다. 한줄의 스토리지와 차별화 된 엔진만 주어진다면 한 행을 가지고 계산을 구해낼 수 있다. 병렬 메커니즘에는 3가지 단계로 나뉜다. 첫째, 차분법을 이용하여 f(x) 본래의 값과, 이전값의 차이값을 더해준다. 둘째, 그 다음 해당값의 결과가 나오면 오른쪽으로한 칸 이동하여서 차이에 대한 값과 새로나온 결과값을 더해 준다. 셋째, 첫번째 방법과 동일하게 값을 더해주면 된다. 병렬 알고리즘을 구현하기 위해서는 수동으로 계산을 많이 해놓아야 구현하기가 쉽다. 기존의 순차 알고리즘의 방법보다 속도가 증가하게된다. 자동화된 기계로 설비했고, 값을 하나하나 입력할 필요가 없기 때문이다. 그리고 톱니바퀴와 기어의 계산속돈느 다항식의 차수와 무관하다. 병렬 알고리즘을 구현하기 위한 제어 메커니즘 및 하드웨어는 순차적인 알고리즘보다 설계와 구축이 더 간단한 장점이 있다. 병렬 메커니즘은 두 번째 차분기관부터 적용이 되었다. 옆의 표를 예시로 설명을 하면 8개의 레지스터를 가지는 7개의 가산기가 있다. 주어진 함수 F(x)에따라 값이달라진다. 순차알고리즘과는 다르게 병렬 알고리즘에는 순서가 있다. 먼저 녹색계열의 수식부터 진행하게된다. R0+R1, R2+R3, R4+R5, R6+R7 을 진행한다. 그 다음 나머지 값을 계산하고 다시 계산된 값을 가지고 순서대로 계산을 하면 병렬 알고리즘이 완성된다. 이같이 다항식의 값과 각각의 차이가 하나씩만 존재하여도 함수 F(x)에 관한 모든값을 차분기관을 통하여 계산하고 결과를 얻을수 있다.[4]

각주

  1. 1.0 1.1 CHM, 〈THE BABBAGE ENGINE〉, 《CHM》,
  2. Paul A. Freiberger, 〈Difference Engine〉, 《britannica》
  3. Tim Robinson, 〈Difference Engines〉, 《meccano》, 2007-05-28
  4. MechanicalComputing, 〈Babbage's Difference Engine No. 2, Part 1: The method of finite differences〉, 《유튜브》, 2015-04-11

참고자료

같이 보기


  검수요청.png검수요청.png 이 차분기관 문서는 컴퓨터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.