'짱구의 가방속'에 해당되는 글 5건

  1. 2010.04.22 더 깊은 곳까지 시추 파이프를 내려라
  2. 2010.03.31 BitTorrent, 정보 공유의 벽을 무너뜨려라~ 1
  3. 2010.03.30 길거리 행인을 위한 백만불 현상 문제 소개: P=NP?
  4. 2010.03.30 메타 휴리스틱스(Metaheuristics)의 소개(1)
  5. 2010.03.25 Chemical Process Systems Engineering

더 깊은 곳까지 시추 파이프를 내려라

|
1947년 10월 미국의 석유 회사인 Kerr-McGee의 엔지니어들은 세계 최초로 육지로부터 떨어진 해상 원유전(oil well)에 시추를 성공하였다.
멕시코의 걸프만에 있는 Louisiana 해안으로부터 17km 떨어진 곳으로 한 개의 테니스 코트만한 크기의 드릴데크가 사용되었다.

이 플랫폼은 세계 2차대전부터 저장시설과 승조원들의 잠자리로 쓰이던 바지선들을 개조하여 보완하는 방식으로 만들어졌다. 플랫폼에 장착된 한 개의 드릴 데릭은 4.6m 아래의 바닷속 바닥을 뚫을 수 있다. 이 Kerr-McGee의 해상 드릴 기어는 여전히 멕시코 연안에서 사용 중인 장비이다. 다만 재활용하여 사용하던 바지선만 더욱 정교한 장치들로 바꾸어 사용하고 있다.

2005년에 이 회사는 자체 플랫폼을 뉴올리언스 남서쪽 300km 해상에 설치한다.

수심 1,500m 아래의 해저에 계류되어 있는 600백만 달러의 이 설비는 13,600톤의 길다란 원통형 부유보(floating 'spar')가 9,800톤의 상부 설비들을 물 위에서 지탱해준다.

2006년, Ker
r-McGee를 인수한 독립적 오일 생산 회사인 애너다코석유사(Anadarko Petroleum Co.)가 현재는 이 설비를 소유 및 운영하고 있으며, 수많은 회사들이 이 설비를 사용하고 있다.

2007년, BP사(British Petroleum)는 수심 2,150m 아래의 해저에 매어있는 58,700톤급 반잠수형 해양 굴착 장치의 설치에 성공한다. 이 설비의 실현으로 이것은 당시 세계에서 가장 깊은 곳에 계류되어 있는 원유-가스 생산 설비이었다.

하지만 이 기록은 오래가지 못했다.

2008년 Shell사의 22,000톤급 'Perdido' 부유보(왼쪽 그림)가  핀란드에서 건조되어 새로운 둥지인 텍사스 연안에서 320km 떨어진
지역으로 예인된 것이다. 거의 에펠탑에 육박하는 높이로 세워지는 Perdido 굴착 설비는 2,400m 해저에 고정되었으며 2,900m 보다 더 깊은 해저 원유전에 연결되었다.

2008년도에는 이보다 더 거대한 반잠수형 해양 굴착 설비들이 두 곳에서 더 진행되었고 현재 운전 중이다.
그 중 첫번째는 Chevron사에서 발주한 26,000톤급 'Blind Faith'이고, 두번째는 훨씬 거대한 BP사의 130,000톤급 'Thunder Horse'이다.


이들 거대 선박들은 지정학적 요소와 기술적 요소들 간의 통합적인 발전을 통해서 실현 가능하였다.

육상에 유전
을 가지고 있는 나라들의 자원 민족주의가 더욱 강해지면서 개별 석유 생산 회사들은 더욱 먼 곳의 자원으로 눈을 돌릴 수 밖에 없게 되었다. 불가피하게 이것은 해안으로부터 수마일 떨어진 깊은 바닷 속으로 석유를 찾게 될 수 밖에 없었던 것이다.

이러한 설비들은 물리적인 한계에도 아랑곳 하지 않고 성공적으로 개발되었다.

예를 들어, 해상 시추 설비 내 파이프가 서로 맞물리는 드릴 스트링(string)은 개당 30kg이 넘는다. 더욱 깊은 해저로 내려갈수록 이 드릴 스트링은 더욱 길어져야 하고 무거워져야 한다. 게다가 이것은 더 커지는 연결 하중을 견대기 위해 플랫폼도 함께 커져야 하는 것을 의미한다.

점점 커지는 플랫폼과 고정식 플랫폼보다 큰 규모의 드릴쉽(drill ship)의 사용이 증가하면서 더 깊은 해저에서 작동하기 위해 요구되는 주요사항들도 많아졌다. 수 마일 깊이의 물 속 해저에 존재하는 압력은 관련 장치의 설계자들이나 수면위로 원유를 뽑아올리려는 생산 엔지니어 모두에게 큰 난관이었다.

최근(2010년 3월말) 운전이 시작된 Perdido는 이러한 문제를 해결하기 위해 획기적인 기술들이 적용되었다.  "subsea boosting system"이라고 불리는 이 기술은 유전 내의 낮은 압력을 극복하기 위해 5 대의 강력한 전기 구동 펌프를 해저에 설치하여 원유를 해수면까지 끌어올리도록 도와준다. 게다가 다수 해저 유전을 동시에 시추 및 생산이 가능하며 올라오는 파이프 내 흐름을 통합 제어하여 해저에서 가스로부터 석유를 분리해 내기 때문에 수면까지 더 적은 파이프만을 통해서 생산이 가능하도록 하였다.    

      

이처럼 불리한 작동 조건에도 불구하고 최근에는 거대하고 깊은 해저 탐색이 많아지고 있다.

2007년에는 브라질의 거대 석유기업인 Petrobras사는 리우데자네이루(Rio de Janeiro) 연안에서 240km 떨어진 투피족 영역에서 80억 배럴의 석유를 발견했다고 발표함에 따라 관련 산업 전체를 놀라게했다.
2,000m 수심과 3,000m 모래 및 암석층, 그리고 2,000m 소금층 아래에서 발견된 이 유전은 지금까지 발견된 해상 유전 중 최대라고 홍보하였다.

결과적으로 이후 수심 1,500m 이상의 심해 유전 탐색은 앙골라(Angola), 시에라리온(Sierra Leone), 그리고 나이지리아(Nigeria) 연안을 비롯하여 2009년 Anadarko Petroleum사에 의해 5개의 유전이 발견된 멕시코 연안까지 많은 심해 유전 개발 성과를 올리는 계기가 되었다.

더 깊은 심해 유전을 찾아라! (지질 탐사의 변화)

이러한 발견들은 불과 몇 년전만 해도 그야말로 가늠할 수조차 없는 것이었다.
 
1990년대 중반까지 WesternGeco사의 Robin Walker는 석유 생산 기업들은 해상 유전의 시추를 통한 생산의 성공은 600m 이내에서 그 한계를 들어낼 것이라고 했다. 그러나 이러한 주장은 깊은 심해의 유전에 접근하는 문제보다는 유전을 탐색하는 과정과 관련이 있다.

Thunder Horse나 Perdido와 같은 거대 플랫폼들은 필요한 동력과 힘은 충분히 제공해준다. 하지만 실제 유전 탐색 과정에서는 플랫폼의 성능보다는 정교한 컴퓨터들을 이용하면서 얻게 된 이점들이 심해 유전 굴착 성공에 중요한 요소가 되고 있다.

결과적으로 하드웨어적 기술 경쟁보다는 산업내 실질적 요구에 의한 소프트웨어의 개발과 발전을 위한 경쟁이 더욱 심화되고 있다.

심해 굴착 기술의 어려움은 Walker의 말에도 잘 드러나있다.
심해의 유전을 성냥갑이라고 생각해보자.
이 성냥갑은 2층짜리 건물 옥상에 있으며 1층은 물로 가득차 있고 2층에는 바위와 모래, 그리고 때로는 소금으로 가득차 있다.
드릴 파이프로 유전을 찾는 작업은 건물의 아랫층에서 사람의 머리카락으로 연결된 동전을 쳐서 알아내는 것과 같다.
이러한 도전의 실패로 인한 대가는 막대하다.

석유산업에서 일반적으로 석유가 발견되지 못한 심해로 'dry hole'을 굴착하기 위한 비용은 대략 1억 달러 이상이 든다. BP에서 발표한 자료에 의하면 2억 달러 이상이 든다고도 한다.

Anadarko사의 멕시코만 유전 탐사 책임자인 Stuart Strife는 이렇게 많은 자본 투입이 되고 실패나 오류에 의한 손실의 최소화를 위해서 '시추를 하기 전에 많은 정보와 지식을 가지고 있어야만 한다.'라고 말한다. 이 정보와 지식이란 거의 원유가 매장되어 있을 것으로 예상되는 지역에 대한 이해를 높여줄 해저 바닥의 조성이나 지질학적 구조와 같은 사전 데이터의 구성을 의미한다. 수세기 동안 이러한 데이터와 기술들은 해상에 적용되기 이전에 육상 유전 개발이나 지질학적 탐사들에 의해 선행된 것으로 해상에서도 동일하게 적용될 수 있다.

1980년대로 거슬러올라 당시의 전형적인 해양 지질 탐사는 수킬로미터가 되는 8개 내지 10개의 길다란 줄(스트리머)이 달린 보트를 이용해 이루어졌다. 이 보트에는 수중 음파 탐지기인 소나 전파 혹은 압축 공기의 폭발파인 shot point라고 불리우는 전파를 생성하여 지질 탐사를 할 수 있는 장비가 실려있었다. 이 전파는 보트에 달리 길다란 줄(스트리머)에 균일하게 위치하는 수중 청음기에 의해 수집되고, 소나 전파의 반사정도를 해석함에 따라 다양한 해저 지형도나 해저에 원유를 포함하고 있을만한 암석의 유무 등을 알아낼 수 있었다.

BP사의 멕시코만 탐사 책임자인 David Rainey에 의하면, 2차원의 데이터가 수집되는 방식에도 불구하고 석유 회사들은 약 25미터인 수중 청음기의 간격을 고려하면 수집된 데이터들을 컴퓨터 프로그램을 이용해 해저의 대략적인 3차원 모델도 생성할 수 있다고 한다.

이 모델은 이런 탐사로부터 획득한 자료로부터 충분한 정확도를 가지고 해저의 석유를 포함하고 있을 확률이 높은 배사구조나 단층과 같은 구조적 정보를 석유 회사에게 제공하는 것이 가능하다. 이러한 접근법은 새로운 방법이 제시되기 전까지 상대적으로 쉽게 유전을 찾아내는 것에 훌륭한 역할을 했다.


하지만 이 방법의 탐색은 차츰 줄어든다. 이것은 석유 회사들이 현재 해상에서 운전되고 있는 설비들의 높은 유지비용을 최소화시키기 위해 생산량을 최대로 높이려는 경향이 생겼기 때문이기도 하지만 다른 한편으로는 멕시코만의 2/3정도가 얇은 염분층으로 덮여있었기 때문이다.

바닷물이 증발하면서 해저에는 얇은 염분층이 생성된다. 이 염분층은 수천년동안 바다로 유입되는 강물 속에 포함된 토사물에 의해 뒤덮여지는데 세월이 지나면서 암석으로 변해 바닷속 밑바닥을 형성한다. 바닷물의 높은 압력으로 이 염분층은 암석층에 의해 눌려 바위와 염분이 회오리형태의 해저 표면을 만들어낸다.

이 염분과 암석이 혼합되면서 생성된 패턴은 패턴 아래의 유전을 탐사하고 시추하려는 회사들에게 큰 골칫거리가 되고 있다. 이것은 음파가 염분이 포함된 지질에서는 암석일 때보다 빠른 속도로 방출되기 때문이다. 이 때문에 음파가 반사되고 굴절되는 것이 합쳐져 수중 청음기에 도달하는 방식인 전통적인 소나 탐사를 통해 해저의 지형도를 명확하게 알아내기 힘들어지게 된다.

염분층을 극복하라!

염분층이 존재하는 해저의 명확한 탐사를 위해 초창기 노력은 탐사로 얻은 데이터를 가공하는 쪽으로 집중되었다.
하지만 염분층의 영향이 포함된 데이터를 가공하여 정확한 해저 지형을 알아내기 위한 좋은 알고리즘들이 개발되었음에도 불구하고 좀더 복잡한 지형들에 적용되기 위해서는 한계가 존재하였다. 이에 대해 Rainey는
약 5년전에 우리는 수익이 떨어지는 문제에 봉착했다.
라고 말했다.
 

결국 석유 회사들과 이들의 관련 기업들은 문제의 원점으로 돌아와 처음부터 다시 시작했다.

기존의 길다란 줄(스트리머)을 보트에 매달아 수중 청음기를 달고 2차원의 데이터를 수집한 다음 이 중 적절한 데이터를 선정하여 가공한 후 3차원의 해저 정보를 얻어내는 방식 대신 3차원의 데이터를 수집하기로 결심한다. 흔히 'wide-azimuth' 탐사법이라고 불리우는 이 접근법은 3~4척의 탐사선이 평행으로 이동하면서 지질 탐사를 위한 음파를 동시에 다수 생성한 다음 수중 청음기를 통해 확인하는 방법이다.

이 방법을 이용하면 다양한 방위각에서 동시에 발생한 수중 음파의 반사 및 굴절을 확인하여 더 확실한 해저 구조를 알아낼 수 있다. 더 다양한 방위각에서 동일한 지역에 대해 여러번 반복할수록 더욱 정확한 해저 구조를 알아낼 수 있기 때문에 'multi-azimuth' 탐사법이라고도 한다.

여기에 나선형의 궤도로 소용돌이를 치는 음파를 여러 방위각에서 발생하여 이용하는 'coil shooting'이라는 기술을 적용하면 소위 4차원 탐사도 가능하다. 역시 이 4차원 탐사도 다양한 방위각에서 탐사를 반복하여 해저 구조를 알아내기 위한 노력이 필요하다.

3차원 혹은 4차원 탐사를 통해 해저 구조에 대한 일관된 그림을 얻고 이 결과가 반복적으로 재현 가능한 것으로 확신하기 위해서 수중 청음기는 음파가 발생하는 탐사선에서부터 상대적으로 일정한 위치에 고정되어 있어야만 한다. 그래서 석유 회사들은 WesternGeco사의 Q-Fin 시스템이나 CGG Veritas의 Nautilus 시스템과 같은 물 속에서 탐사선에 달린 수중 청음기(스트리머)의 위치를 조절하면서 측정할 수 있는 시스템을 개발하게 된다.

하지만 이 새로운 수집 기술들의 작동 방법들은 방대한 양의 데이타가 생성된다는 관점에서 극복해야할 난관이 생긴다.

일반적인 3차원 탐사선에 달려있는 수중 청음기(스트리머)는 80km가 넘는 길다란 케이블에 연결되어 있으며 여기 달려있는 청음기의 총 댓수는 25,000개가 넘는다. 매 10~15초 간격으로 음파를 발사하고 1회 발사 때마다 각각의 수중 청음기는 24 bit의 시그널로 매 0.002초 간격으로 돌아오는 음파를 측정하게 된다.

이 결과 한번 음파를 발사한 후 되돌아오는 음파의 측정에 총 500 MB 정도의 데이터가 축적된다. Walker에 따르면 일반적인 탐사선 50대가 1년간 평균적으로 운영되는 시간으로 환산하면 축적되는 데이터는 12 PB(petabytes,
1,000,000,000,000,000 bites)가 된다고 한다.

이 데이터를 처리하면 해저 구조에 대한 그림을 결과로 얻을 수 있다. 이러한 데이터의 처리를 위해 사용되는 컴퓨터의 능력은 믿기 어려울 정도이다. 멕시코만에 위치한 BP사의 운전 센터에는 이 계산을 위해 270 teraflops(1초에 부동 소수점 연산의 횟수가 270,000,000,000,000번)인 컴퓨터를 사용하며, 이는 10년전에 비해 약 3,000배 증가한 속도이다.


해양 지질탐사로부터 유전이 존재할만한 좋은 곳을 알아냈다면, 정교한 탐사를 위한 시추 계획을 준비한다. 시추가 진행되는 동안 'mud'라 불리는 유체를 시추공을 통해 주입한다. 이는 시추공이 끊어지는 것을 방지하고, 드릴 부분의 온도를 낮추며, 시추공 벽면이 무너지지 않고 압력을 유지할 수 있도록 굴착 파이프를 통해 주입하는 것이다.

해저의 암석과 모래를 굴착하는 과정에서 드릴 부분 내 머드의 압력이 일정 조건 내에 유지되어야 한다. 만약 압력이 너무 낮으면 지하 유체 및 가스들의 힘(pore pressure)에 의해 시추공 벽면이 눌려 붕괴되며, 너무 높으면 팽창으로 인한 주변 암석 내 균열을 발생시켜 머드가 이 균열 사이로 빠져나가 순환 과정에서 유실이 생기게 된다.

더욱 성공적인 시추를 위한 노력

따라서 제한된 압력 조건(pressure window) 내에 시추용 머드의 압력을 유지하는 것은 가장 중요하다. 이 압력을 정확히 알아내기 위해 석유 회사들은 일반적으로 암석의 샘플이나 초기 시추에서 얻은 시추 벽면의 스트레스를 측정한 데이터에 의존한다. 이 데이터는 구멍의 압력과 균열이 생기는 압력을 예측하는 모델을 이용한 후 이를 바탕으로 머드 압력을 계산하게 된다.

그러나 이것은 불완전한 방법이기 때문에 해저 염분층의 생성은 이 방법을 더욱 어렵게 만들었다. 염분층과 암석층 사이의 큰 압력 차이는 두 층 사이를 지나 시추를 할 경우 머드의 압력을 적정한 압력 조건 내에 유지되지 못하기 쉽상이다. 게다가 방대한 양의 해저 데이터들에도 불구하고 표면으로부터 염분층과 암석층 사이의 경계를 알아내는 것은 거의 불가능하다.

이 때문에 파내려간 땅 속의 데이터의 선별과 전송이 실시간으로 가능한 새로운 파동 장치들과 통신 시스템들로 변화를 꾀하고 있다. 정해진 시추 계획을 통해 유전에 접근하기 보다, 시추를 진행하면서 압력, 온도, 진동, 그리고 암석의 물성치를 추정가능하도록 도와주는 전기 저항값 등을 측정(measurement while drilling, MWD)하는 기술을 통해 보다 성공적인 시추를 가능하도록 돕고 있다.

기존의
MWD 데이터들은 파내려간 땅 속의 센서로부터 지표면까지 머드를 통해 전달된 압력파인 'mud pulse'를 통해 알아내는 것이다. 이 진동은 초당 몇 안되는 양의 정보만을 전달하지만 무슨 일이 발생하고 있는지에 대한 유용한 정보는 충분히 전달된다. 특히 MWD는 드릴 비트의 정확한 조종을 가능하도록 드릴 비트의 위치와 각도와 같은 정보와 굴착되고 있는 물질들의 정보를 제공해주기 때문에 정확한 시추가 가능하도록 도와준다.

멕시코만의 Thunder Horse 근방의 3차원 해저 영상도

Petrobras사의 Braulio Xavier Bastos는 'MWD는 시추 과정에서 일의 진행 방향을 크게 변화시켰다.'라고 말한다. 유정 데이터를 연속적으로 얻게 된 해상 플랫폼 엔지니어들은 시추를 진행하는 동안 암석의 거동이나 구멍의 압력을 시뮬레이션 해볼 수 있게 되었으며, 이 덕분에 굴착 속도와 관련한 파라미터들을 조절하는 것이 가능해졌다. Shell사의 시추 엔지니어인 Lisa Grant는 'MWD는 5년 전 시도하지 못했던 유정의 시추를 오늘날 가능하도록 했다.'고 말한다.

굴착된 유정 속에서 통신이 가능한 채널이 개발되면서 석유 회사들은 시추공 탄성파(boregole seismic) 장비의 이용을 통한 새로운 방식의 해저 분석 방법을 고안하고 있다. 이 방법은 드릴 모듈에 탄성파 발생기와 수신기를 달아 수면에서만 알아내던 기존의 방법에서 탈피하여 땅 속의 지질학적 환경의 그림까지도 정확하게 알아낼 수 있다.

복잡한 MWD 장비는 더욱 빠른 정보 전달이 가능해야만 한다. 한가지 가능한 해결책은 파이프 조각들 사이에 데이터 전달을 위한 유도 결합(inductive coupling)을 이용할 수 있는 케이블을 드릴 스트링의 파이프 벽면에 매립한 'Intellipipe'를 사용하는 것이다. 이 파이프를 제작한 Grant Prideco에 따르면 Intellipipe는 mud-purse보다 훨씬 빠른 초당 메가비트의 속도로 전송이 가능하다고 한다.

새로운 기술들이 개발되면서 유전은 이제 더욱 접근하기 어려운 영역에서도 발견되고 있다.

석유 산업계는 멕시코만이나 브라질 연안에서 발견된 예상치 못한 거대한 해상 유전의 발견과 같이 놀라운 사실들을 발표했다. 또한 올해 초 미국의 지질학 탐사 연구에서는 베네수엘라는 본래 추정되었던 원유의 두 배 가량을 생산 가능하다고 발표했다.

역사적으로 보면 불확실성을 줄일 수 있고 큰 이익을 제공해줄 수 있는 기술은 석유 산업계에서 승자와 패자를 가르는 결정적인 요인이었다. Kerr-McGee가 1940년대 선구적인 해상 플랫폼을 개발하였을 때, 4개의 다른 미국 회사들은 지금의 사우디아라비아의 국영 석유회사인 Aramco를 설립하는데 참여하고 세계 최대 원유를 확보하려했지만 영국의 탐사권 획득에는 실패하였다. BP의 전임자는 이미 그들의 지질학자들로부터 유전 개발을 위해 긍정적으로 검토할만한 구체적 지역들에 대한 보고서를 보고 있었던 것이다.

시추를 하기 전 사전 지식이 무엇이든 간에 한 가지라도 있다면 그것은 큰 이득이 된다는 것이다.


(내용출처 : Economist, 2010년 3월 6일 영문판)

'짱구의 가방속 > Chemical PSE' 카테고리의 다른 글

Chemical Process Systems Engineering  (0) 2010.03.25
And

BitTorrent, 정보 공유의 벽을 무너뜨려라~

|
1. Description

BitTorrent는 많은 양의 데이터를 확산시키기 위해 사용되는 P2P(peer-to-peer) 파일 공유 프로토콜(통신규약)이다.
BitTorrent는 대용량의 파일을 전송하기 위한 프로토콜로 가장 보편적이고 유명한 방법 중에 하나이며, 2009년 2월 통계로 전세계 인터넷 트래픽의 43% 이상을 차지할 정도이다.

2001년 4월 프로그래머 Bram Cohen에 의해 개발되어 2001년 7월 2일 첫번째 버젼이 배포되었으며 지금은 BitTorrent, Inc.사에 의해 운영되고 있다.

BitTorrent 사용자는 BitTorrent 프로토콜을 실행할 수 있는 어떤 종류의 프로그램이든 이용할 수 있다.
BitTorrent 프로토콜을 실행가능한 사용자 프로그램들로는
torrent의 선구자인 BitTorrent,
국내외 가장 많은 이용자를 보유하고 있는 uTorrent,
Mac이나 Linux에서 많이 사용하는 TransmissionDeluge 같은 프로그램들이 대표적이며,
이외에도 Azureus, BitComet 등등 그 종류는 매우 다양하다.

2. Operation

BitTorrent는
위에서 언급한 프로토콜과 호환되는 클라이언트 프로그램을 설치해야 한다. 이 프로그램들은 모두 .torrent라는 확장자 파일을 이용하여 파일을 공유할 수 있도록 되어 있다.

[ .torrent 파일 ]
씨앗파일이라고도 불리는 .torrent 파일은 공유하고자 하는 파일의 정보, 즉 메타데이터, 호스트 컴퓨터의 정보 등이 기록되어 있는 파일이다.

이 때 메타데이터(Metadata)란 어떤 데이터의 구조적 정보나 데이터를 분류하고 분석하기 위한 부가적인 데이터를 말한다. 예를 들면 디지털 카메라에서 사진을 찍어 저장할 때 화상데이터 외에 메타데이터로 카메라 정보와 촬영 정보(조리개수치, 초점, 촬영모드, 해상도 등)가 함께 저장되는 것이다.

Torrent 파일에도 이러한 메타데이터가 포함되어 있어 공유하고자 하는 파일의 구체적 정보와 함께, "트래커(Tracker)"의 URL 정보를 포함하고 있다.

즉 공유하는 파일의 네트워크상 위치, 파일의 이름 및 크기, 파일 조각의 구성 등의 정보를 담고 있어 이 파일을 torrent 클라이언트 프로그램 상에서 실행시키면 해당 파일을 함께 실행하고 있는 사용자와 파일을 주고 받을 수 있다.

이러한 .torrent 파일은 흔히 시드(seed) 파일 혹은 씨앗 파일이라고 부르고, 이 씨앗파일을 등록하고 필요한 사용자가 다운 받도록 연결해주는 곳을 트래커(Tracker)라고 한다.

위의 그림은 1개의 파일 제공자인 seeder(중앙 아래쪽 큰 컴퓨터)와 7개의 사용자간 torrent를 이용한 파일 공유 과정을 애니메이션으로 표현한 것이다. 7개의 사용자 아래 색깔로 표현된 것은 공유하고 있는 파일이며, 최초의 seeder(파일 제공자)는 파일을 한번 제공해준다. 이 후 각 파일을 받은 사용자끼리의 통신을 통해 파일을 주고 받기 때문에 어느 한 시스템에 의존하지 않는 전형적인 P2P 사용의 장점을 나타내고 있다.

[ 트래커(Tracker) ]
트래커란 torrent 파일이 등록되어 있는 웹사이트이다.

이 트래커에서는 torrent 파일을 다운 받아 비트토런트 클라이언트 프로그램을 이용하여 torrent 파일을 열 수 있다. 위에서도 언급했듯이 이 torrent 파일은 흔히 시더파일 혹은 씨앗파일이라 부른다. 파일을 공유하기 위한 최소한의 용량에 필요한 정보만을 포함하고 있는 파일이기에 이렇게 부른다.
이 씨앗파일 내에는 해당 트래커의 정보와 공유된 파일의 정보가 들어 있어 해당 트래커를 이용하여 파일을 공유하고 있는 모든 사람들과 파일을 주고 받을 수 있다.

물론 현재의 BitTorrent 프로그램들은 반드시 트래커를 거쳐야만 파일을 공유할 수 있는 것은 아니며 동일한 씨앗파일을 오픈하였다면 누구나 이용이 가능하다. 하지만 트래커를 이용하면 동일한 파일을 가지고 있는 사람들과의 연결이 매우 용이하기 때문에 일반적으로 트래커를 많이 이용하게 된다.

업로더와 다운로더를 연결해주는 곳인 트래커는 해당 트래커에 동일한 torrent 파일(즉, 동일한 hash code)을 오픈한 사람들끼만 연결시켜준다. 이때 트래커가 연결시켜준 이들의 정보, 즉 시더(seeder)와 리처(leecher)의 정보를 관리하게 된다.

BitTorrent에서 트래커의 역할은 파일 공유의 중심이 아니라, 네트워크 형성의 기점 역할만 한다. 이 점은 기존에 가장 유명했던 P2P 형태인 당나귀(eDonkey)와 비교되는 점이다. 기존의 당나귀 시스템은 중앙 네트워크 방식이었다면 BitTorrent는 분산 네트워크의 형태를 가지고 있다.

기존의 당나귀 네트워크는 서버 중심의 파일공유 시스템이어서, 서버접속 후 서버에게 다운받을 파일의 소스와 위치를 묻게 된다. 이 때 서버는 요청한 내용의 소스를 파악하고 다운로드와 업로드를 조정, 관할하기 때문에 서버의 의존도가 높다.

반면 BitTorrent는 torrent 파일의 오픈을 통해 지정된 트래커에 접속하게 되고 이 트래커에서 해당 파일에 관심이 있는 사람들끼리만 연결해주기 때문에 트래커가 소스를 찾기위한 시간은 필요없게 된다.

트래커는 크게 공개트래커와 비공개트래커로 나뉜다. 이는 해당 트래커의 접근 혹은 가입을 공개적으로 누구나 할 수 있느냐, 초대장 등의 방식을 통해 비공개적인 가입만을 허용하는냐의 차이이다.

비공개 트래커의 존재는 정보 공유의 경우 저작권 문제에 쉽게 휘말리기 쉽기 때문이다. 일반적인 트래커는 웹하드 업체들처럼 수익구조를 가지고 있는 것이 아니기 때문에, 자유롭게 가입만 하면 돈을 내고 파일을 다운받을 수 있는 것과는 그 구조의 차별화를 둘 수 밖에 없다.
이러한 수익구조를 가지고 있는 웹하드 업체들은 가입이 쉽고 탈퇴가 어려운 반면, 수익구조를 가지고 있지 않은 트래커들은 일반적으로 가입이 어렵고 탈퇴는 간단한 구조를 가지고 있다.

트래커는 운영 목적 자체가 공유라는 특성 때문에 컨텐츠의 내용의 보안이 중요시 된다. 또한 운영 면에서도 트래커의 운영자가 직접 자료를 구성하고 다운받도록 하는 것이 아니고 사용자가 자발적으로 자료를 올리고 다운받는 구조를 가지고 있어 운영자 입장에서 제한된 서버의 한도 내에서 상대적으로 적극적이며 양질의 사용자를 보호하고 싶은 목적에서 비공개트래커를 많이 운영한다.

이런 이유로 고레벨 혹은 좋은 비공개 트래커를 이용하기 위해서는 본인이 먹튀(원하는 파일의 다운만 받고 도망가는 유저)가 아님을 증명해야 한다. 즉 다운받는 파일의 양보다 업로드하는 파일의 양과 시간, 용량이 훨씬 높다는 것을 증명하여야만 가입을 위한 초대를 받을 수 있다. 또한 비공개 트래커를 지속적으로 이용하기 위해서는 지속적인 파일 업로드를 통해 자신의 계정을 관리해야만 가능하다.

[ 피어(Peer)의 개념 ]
피어(Peer)란 특정 자료에 접근한 모든 사용자를 말한다. 이는 P2P가 Peer-to-Peer의 약어이고, 이것은 사용자와 사용자를 직접 연결하는 방식을 공유를 의미하는 것이라면 좀 더 쉽게 이해가 될 것이다. BitTorrent에서도 피어의 개념은 이와 크게 다르지 않다.

BitTorrent에서는 이런 피어는 크게 시더(Seeder)리처(Leecher)를 함께 이컫는 말이기도 하다.

이 때 시더(Seeder)는 파일의 공급자 혹은 업로더의 개념으로 좀 더 정확하게는 해당 torrent의 파일을 모두 가지고 있는 사람을 의미한다. 시더의 수가 1명 이상이라면 온전히 파일을 모두 받을 수 있다는 뜻이다.
반면 리처(Leecher)는 흔히 해당 torrent를 다운받고 있는 사람을 의미하지만 좀 더 정확하게는 해당 torrent를 구성하고 있는 파일의 일부분을 보유하고 있는 사람을 의미한다. 이 리처는 현재 파일의 모든 부분을 갖고 있지는 못하지만 일부를 가지고 있는 상태이기 때문에 다른 이들에게 해당 부분을 다른 이에게 제공해줄 수도 있다.

즉 시더가 많은 torrent는 완전히 다운받을 확률이 높은 자료이며, 리처가 많은 torrent는 최신 자료이거나 혹은 현재 인기가 급상승 중인 자료일 확률이 크다. 이외에도 스내치(Snatch, 다운을 완료한 사람) 수가 많은 자료는 이전에 인기가 많았던 자료로 분류해 볼 수 있다.

[ 자료의 업/다운로드 ]
BitTorrent 프로토콜의 업/다운로드 과정은 위의 애니메이션 그림에 잘 나타나있다.

BitTorrent를 이용하여 트래커에서 필요한 자료를 확인하였다면 해당 자료의 씨앗파일(.torrent)을 내려받아 BitTorrent 클라이언트 프로그램에서 열면 된다. 이 때 BitTorrent 클라이언트 프로그램은 해당 씨앗파일에 포함된 트래커 서버에 접속해 현재 공유 파일의 시더와 리처 등의 피어 정보를 가지고 오며 이들과 해당 자료를 주고 받을 수 있도록 해준다.

처음에는 위의 그림과 같이 피어가 하나도 없을 것이다. 단지 해당 파일을 온전히 가지고 있는 최초의 시더만 존재한다. 새로운 사용자가 자료를 받기 위해 씨앗파일을 열었다면 이 시더로부터 자료를 받기 시작한다. BitTorrent 프로토콜은 파일을 여러 조각으로 나누어서 조그만 파일로 만든 후 이에 대한 정보를 씨앗 파일인 .torrent 파일에 담아두므로 시더로부터 자료를 다운받는 것은 이 작은 단위의 파일 조각을 하나씩 다운 받는 것이다. 그리고 하나의 조각이 다운 완료되면 해시(hash) 알고리즘을 통해 에러 여부를 점검한다.

여러 사람들이 파일을 다운 받기 시작하면서 피어의 숫자가 늘어나고 최초의 시더가 아닌 다른 피어들 사이에서도 가지고 있는 작은 파일 조각들을 공유하기 시작한다. 다운을 받는 피어들은 랜덤하게 파일 조각을 받기 때문에 서로 받은 조각들을 공유할 수 있으며, 이런 원리로 원본 파일을 가지고 있는 시더에게 전송 부하(Bandwidth)를 줄이게 된다.

P2P의 효율은 클라이언트 간의 데이터를 주고 받는 정책에 의해 결정되며, 특정 클라이언트는 자기에게 파일을 준 클라이언트에게 다시 파일을 주는 형식으로 구성하여 공유의 효율을 높인다. BitTorrent는 피어가 많을수록 효율이 좋아지며 당나귀와 같은 다른 P2P와는 다르게 Queue(줄) 서서 기다리는 것이 없다. 또한 BitTorrent는 "optimistic unchoking"이라는 메커니즘을 통해 클라이언트에 일정의 전송 부하를 할당해 무작위로 피어들한테 보내서 모든 피어들이 일정한 양의 조각을 가지고 있을 수 있도록 한다. 그렇게 되면 모든 피어들이 다 다른 조각을 가지고 있으므로 공유의 효율이 높아진다.

[ BitTorrent 프로토콜 작동의 특징 ]
지금까지 언급한 내용을 종합해보면, BitTorrent 프로토콜을 이용하여 파일 한 개(혹은 파일 그룹)을 공유하려면 우선 최초 시더는 .torrent 파일을 하나 생성해야 한다. 이 작은 씨앗파일은 공유할 파일 및 트래커에 대한 메타데이터를 담고 있다. 해당 파일을 다운 받고 싶은 리처는 우선 이 씨앗파일을 획득해야 하며 이를 위해 특정한 트래커에 접속해야 한다. 그리고 이 씨앗파일을 BitTorrent 클라이언트 프로그램 내에서 열게 되면 해당 정보를 공유하여 공유하고자 하는 파일의 조각들을 랜덤하게 받게 된다.

네트워크 상에서 파일을 업/다운로드 받을 수 있게 해준다는 점에서는 비슷하지만, BitTorrent 다운로드와 전통적인 Full-file HTTP 요청 사이에는 근본적인 차이가 있다.
  • 비트토런트는 많은 수의 소규모 P2P 요청을 여러 개의 TCP 소켓을 이용한다. 반면, 웹브라우저는 일반적으로 한 개의 HTTP 요청을 한 개의 TCP 소켓 상에서 생성한다.
  • 비트토런트는 랜덤 다운로드 방식 혹은 희귀한 것 우선(rarest-first) 다운로드 방식이다. 이런 방식은 높은 가용성을 보장한다. 반면 HTTP 다운로드는 순차적 방식이다.
이러한 차이로 BitTorrent 프로토콜은 아래의 특징을 지닌다.
  • 비트토런트는 위의 이유들로 매우 큰 신뢰도(redundancy)를 갖고 있어 어뷰즈(abuse)나 "플래시 크라우드"에 강한 면을 보인다.
  • 충분한 피어 접속을 위한 시간이 걸려 최고 속도에 이르기까지 시간이 걸린다.

3.  Postscript

BitTorrent 프로토콜은 블리자드 엔터테인먼트 월드 오브 워크래프트와 건즈 온라인 등과 같은 큰 용량의 파일 전송과 개인 자료 및 소프트웨어의 원할한 배포 및 제공을 위해 사용되고 있다. 이는 서버의 부하를 줄여 가용성을 높이기 위한 방법으로 BitTorrent의 장점을 활용한 것이다.

수년전까지 많은 사람들이 애용하던 P2P 시스템인 당나귀도 그 한계를 드러내며 이제는 BitTorrent 프로토콜을 이용한 자료의 공유가 대세를 이루고 있다.

국내에도 빗코리아(http://bitcorea.org)비트토크(http://bittalk.org)와 같은 토렌트 포럼을 통해 많은 사람들이 BitTorrent와 관련한 정보를 공유하고 있다. 이곳에서는 국내외 비공개 트래커들의 정보와 초대가 활발히 이루어지고 있지만 처음 접하는 초보자에게는 그리 호락호락한 편은 아니다.

이곳에서 비공개트래커는 진입은 마치 게임 상의 아이템 획득과 같이 수집욕을 불러일으키는 존재이다.

진입한 비공개트래커에서 퇴출(ban)당하지 않고 살아남기 위해서는 필요한 자료의 획득보다는 다른 사람의 필요를 미리 읽고 제공하거나 혹은 현재의 자료의 공유를 원할하도록 돕는 역할이 중요하다. 비공개트래커는 그 특성상 지속적인 시딩이 가능한 양질의 업로더, 즉 다운로더보다는 업로더에게 더 의미를 두고 우대하는 곳이기 때문이다. 이런 역할은 고레벨의 비공개트래커(주로 해외의 특성화된 트래커들)로 갈수록 더욱 어렵고 또한 많은 경험이 필요로 하기도 한다.

때문에 비공개트래커는 자료를 다운받고 제공하기 위한 곳이라기 보다 트래커에 진입하여 이를 관리할 대상으로서의 의미를 갖기도 한다. 이런 의미를 더 크게 두는 사람들을 일컬어 트래커콜렉터(Tracker Collector)라고 부르며, 이들에게 자료의 다운은 큰 의미가 없다. 이들에게는 사용자들이 많은 요구가 있을 법한 시기에 해당 자료의 공유를 돕고, 여기저기 흩어져 있는 파일들을 모아 잘 정리한 후 필요한 사람들의 용이한 접근을 도우며, 새롭게 트래커에 진입한 사람들의 원할한 트래커 활용의 적응을 돕는다. 

이러한 트래커의 종류에 대해서는 추후에 포스팅하도록 하겠지만, 우선 위의 국내 BitTorrent 포럼에서 그 정보를 하나씩 얻어보는 것도 좋을 듯 싶다.

BitTorrent는 애초의 빠른 파일 전송 및 공유의 목적을 넘어 또 다른 매니아들의 새로운 문화를 만들어가는 곳이기도 하기 때문이다.


And

길거리 행인을 위한 백만불 현상 문제 소개: P=NP?

|
출처 : http://www.math.snu.ac.kr/~hongjong/%C0%E2%C7%CA/PversusNP/PversusNP.html


길거리의 행인을 위한 
백만불 현상 문제 소개: P = NP ?


2001년 1월 (대한수학회 소식지 원고)
서울대학교 김홍종

미국의 실업가인 Landon Clay 는 새천년을 기념하여 미국의 Cambridge 에 있는 Clay 수학연구소(Clay Mathematics Institute, http://www.claymath.org)를 세우고, 저명한 수학자 Alan Connes, Arthur Jaffe, Andrew Wiles, Edward Witten 등의 조언을 구하여 2000년 5월24일 각각 백만불 현상금이 붙은 미해결 수학문제 일곱개를 발표하였다. 발표한 도시는 프랑스의 파리로 그곳은 백년전 제2회 국제수학자 대회에서 David Hilbert(1862--1943)가 새로운 세기를 위한 스물세가지 문제를 제시하였던 곳이다. 물론 Clay 수학연구소에서 제시한 문제 외에도 중요하고 좋은 문제들이 많이 있으며 같은 정도의 현상금이 붙은 문제들도 있다.

서울대학교에서는 학부제와 대학원 중심제로 인하여 의욕을 잃고 방황하는 대학생들에게 활기를 불어 넣어 주고 수학을 널리 홍보하기 위하여 강현배 교수의 조직으로 지난해 12월 1일 "새천년 수학문제 소개회"를 열어 Clay 수학연구소의 일곱문제 중 네 문제를 소개하였다. 먼저 아주대학교의 이중섭 교수는 정수론이나 복소함수론 등과 관련한 "Riemann 가설"을 소개하였고, 이어서 서울대학교의 채동호 교수가 유체역학과 비선형 편미분 방정식론에서 중요한 "Navier-Stokes 방정식"을, 최서영 교수는 삼차원 공간의 위상에 관한 "Poincar'e 예상"을 소개하였으며, 마지막으로 필자가 계산과학의 문제인 "P 대 NP"를 소개하였다. 필자가 발표자가 된 까닭은 다른 문제를 소개하기로 하였던 강사가 사정이 생겨 급히 메꿔야 할 빈 자리가 생겼기 때문이었다.  세상에 부족한 것을 채울 수 있다면 존재이유를 정당화 할 수 있으리라. 세상이 필요로 하는 것이 없다면 감사의 기도를 하리라.

"P 대 NP" 문제는 일곱문제 중에서 일반 대중이 가장 이해하기 쉬운 문제인 것 같다. 비록 그 풀이는 그렇지 않을 수 있지만.

▒▒▒ 넓은 의미의 알고리듬 ▒▒▒

알고리듬(Algorithm)이라는 단어는 서기 825년에 "키탑 알 자브르 왈무콰발라"라는 책을 쓴 페르시아(이란의 옛 이름) 수학자 "아부 자파르 모하메드 이븐 무사 알코와리즈미"(자파르의 아버지이고, 코와리즈미 마을에서 온 무사의 아들인 모하메드)에 어원을 두고 있다.  대수학(algebra)이라는 단어도 이 책의 제목에서 유래하였다  [Knuth].  이 책은  인도-아라비아 숫자(0,1,2,...)를 사용하는  법을 서술한 책으로, 유럽에는 12세기에 라틴어로 번역되어  ``알코와리즈미의 책''으로 소개되었다.  이 책이 유명해지면서 "알고리듬"은 더하기, 빼기, 곱하기,  나누기 등의 연산을 기계적으로 처리하는 과정을 뜻하는 단어가 되었다.

요즈음에는  알고리듬이라는 단어를 훨씬 포괄적인 의미로 사용한다.  300원짜리 커피를 파는 자동판매기의 내부에도 간단한 알고리듬이 있어서, 적합한 금액이 들어오면 프림/설탕의 선택에 따라 종이컵과 따끈한 커피를 내놓고 거스름 돈도 정산하여 준다. 높은 아파트에 사는 사람이 출근하려고 엘리베이터 단추를 누르면, 엘리베이터를 작동시키는 알고리듬은 다른 층에 사는 사람이 부르는 지 등을 판정하여 적절한 움직임을 한다.  그러나 알고리듬이 부실하게 짜여 있으면, 자동판매기가 이상하게 행동하고, 엘리베이터가 고장이 난다.  차량 소통이 원할하도록 교통신호등 체계에 대한 알고리듬을 짜는 것과 아무렇게나 신호등을 설치하는 것은 우리 생활에 커다란 차이를 준다.

맛있는 요리법을 잘 적은 지침도 알고리듬이요, 카드 놀이나 바둑, 장기, 운동 경기의 규칙도 알고리듬이요, 최첨단 컴퓨터가 작동하는 프로그램도 알고리듬이며, 학교가 학생을 선발, 교육하고 졸업시키는 과정도 그렇고, 국가의 여러 가지 정책도 알고리듬이다. 최근에는 생물들의 DNA에서 A, G, C, T 염기로 이루어진 서열이 바로 스무가지 아미노산을 만들고 단백질의 생성을 통제하는 알고리듬이라는 것이 밝혀짐에 따라  다윈의 생물 진화에 대한 `자연선택'이나 사람과 동물의 두뇌 활동까지도 알고리듬을 뜻하는 것으로 이해하고 있다.

넓은 의미의 알고리듬이란 개인의 감정이나 사용하는 주체 등과 상관없는 `순수한 논리적 과정'으로 `분명한 결과'를 내는 것을 뜻한다 [Dennet]. 바른 알고리듬은 그 지침이 명백하여 누구라도 따라 할 수 있도록 짜여져 있는 논리적 과정이다.  [Knuth] 는 알고리듬의 중요한 성질로 유한성(finiteness), 명확성(definiteness), 입력(input), 출력(output), 효율성(effectiveness) 등 다섯가지로 서술하기도 한다.

우리 사회에 질서가 없고, 법을 제대로 지키거나 제대로 만들지 않고, 좋은 물건을 만들고도 끝마무리를 못하고, 교육, 금융, 국책 사업과 외교등 각종 정책에서 실수가 일어나는 것도 어떻게 보면 부실한 알고리듬에 기인한다고 볼 수 있다.  간단한 알고리듬을 짜는 훈련을 어려서부터 한다면, 그 훈련은 정직한 생각을 하는 훈련일 것이고, 깊이 있는 생각을 하는 훈련일 것이며, 남을 배려하는 사회를 이루도록 할 것이다.  이것은 바로 수학 교육의 역할이기도 하다.  부실한 알고리듬은 부실한 사회를 야기하고 IMF(Incredibly Miserable Future)를 만나게 한다.  좋은 알고리듬은 좋은 세상을 만든다 [대학신문].

▒▒▒ 좁은 의미의 알고리듬 ▒▒▒

수학자들이 사용하는 좁은 의미의 알고리듬에 대한 정의는 1930년대에 오스트리아의  Kurt G"odel(1906-1978), 영국의 Alan Mathison Turing(1912--1954), 폴란드-미국의 Emil Post(1897--1954), Lambda Calculus 로 유명한 미국의 Alonzo Church(1903--1995), 그의 학생이었고 귀납적(recursive) 함수로 유명한 Stephen Kleene(1909--1994) 등에 의하여 확립되었다.  수학자들은 어떠한 알고리즘이 간단하고, 어떠한 알고리즘이 복잡한가를 이해하기 시작하였다.  그들은 컴퓨터 과학을 탄생시켰으며, 많은 자료에서 원하는 자료를 순식간에 찾아주는 프로그램을 개발하여, 방대한 자료의 인터넷 써치가 가능하도록 하였다.

Turing 은 1930년대에 영국 Cambridge 에 있는 King's college 에 다녔는데, 그때 수리논리학자인 Max Newman 의 강의를 들었다. Newman 은 그 강의에서 Hilbert 가 1904년에 Heidelberg 에서 열린 제3회 국제수학자대회(ICM)에서 제시하고 그 이후로도 이탈리아의 Bologna 에서 열린 제8차 ICM 등에서 계속적으로 강조한 문제 하나를 소개하였다:

Hilbert 의 꿈: 어떠한 수학적 명제라도 그것의 옳고 그름을 판정할 수 있는 효과적인 방법이 있는가?

이와 같이 ``예, 아니오'' 중에서 한가지로 답을 하여야 하는 문제를 판정문제(Entscheidungsproblem, Decision Problem)라고 한다.  국회의원들이 청문회에서 특히 좋아하는 그러한 문제이다: ``본명이 *** 맞습니까? 다른 설명은 필요없으니 `예, 아니오'라고만 답하세요!''  H. Poincar'e 는 Hilbert 의 꿈같은 이야기를 들고는 ``수학적 귀납법을 사용하여 수학적 귀납법을 정당화하려 하지 말라!''는 경고를 하였다 [Poincar'e, 1908].

거짓말장이의 역설 "나는 지금 거짓말을 하고 있다''와 같은 역설이 생기는 이유는, 자신이 기르던 너무나 이성적이어서 굶어 죽은 당나귀로 유명한 프랑스의 Jean Buridan(1295-1360)이 처음으로 명확하게 파악하였듯이, 바로 자신을 언급하는 데 있다 [Podnieks]. 실로 남을 목 졸라 죽이는 살인마도 자신의 목을 졸라 죽이는 것은 불가능할 것이다.  G"odel은 거짓말장이의 역설을 형식언어 체계로 바꾸는 데 성공하였고, 이를 바탕으로  1930년 Hilbert 의 고향인 K"onigsberg 에서 열린 학회에서 Hilbert 의 꿈은 실현할 수 없다는 `불완전성 정리'를 발표하였다:

불완전성 정리: 모순없는 형식 체계는 완전하지 않다.

Turing 은 Hilbert 문제에 깊이 빠져 들었다. 그리고 이 문제의 가장 어려운 부분은 `효과적인 방법'의 의미를 분명히 하는 데 있다는 것을 알았다. Turing 은 달리기를 좋아하였는 데 1936년 어느날 달리기를 하고 나서 쉬다가 Hilbert 문제를 이해하는 방법을 발견하여 현대적인 `계산론'과 `컴퓨터 과학'을 탄생하게 하였다.  이러한 논리적 문제를 이해하고 나서 10여년이 지난 후에야 Turing 과  von Neumann 등의 아이디어를 따르는 현대적인 컴퓨터가 만들어지기 시작하였다. Hilbert 가 말한 `효과적인 방법'의 의미를 현대 수학자들은`좁은 의미의 알고리듬'으로 이해하고 있다.  Turing 은 Hilbert 문제가

정지문제(Halting Problem): 임의의 프로그램과 입력 자료가 주어졌을 때 이들이 유한시간내에 작업을 마치지 않는다는 것을 유한 시간 안에 판정하여 주는 그러한 알고리듬이 있는가?

와 마찬가지라는 것을 보였고, 정지 문제에 대한 부정적인 답을 한 그의 정리가 G"odel 의 불완전성 정리와 동치임을 보였다.

필자는 1970년대에 대학을 다녔는데, 여름방학을 이용하여 한 달 동안 컴퓨터 프로그램과정을 수강한 적이 있다.  서울대학교 공과대학의 첨단 컴퓨터의 용량이 겨우 64KB 이던 그런 시절이었다.  개개인은 프로그램을 펀치카드에 기록하고, 그것에 구멍을 뚫어 컴퓨터에 입력하였다.  컴퓨터 사용자들은 은행에 예치금을 두었고,  컴퓨터를 일정 시간 사용하면, 사용료가 자동으로 은행계좌에서 빠져나갔다.  어떤 날은 소수를 구하는 프로그램을 짜서 제법 방대한 목록을 뽑아 보곤 하였다.  물론 이 때에도 사용료가 예치금에서 빠져 나갔다.  그런데 어느 날은 프로그램에 이상이 있었는지 하루 종일 컴퓨터를 돌리고도 아무런 결과를 얻지 못하였고, 예치금만 몽땅 날린 적이 있었다.  프로그램에 이상이 있을 때  미리 그것을 조사하고 컴퓨터를 돌리는 것을 중지시킬 수 있는 방법이 있었더라면, 아까운 시간과 금전을 날리지 않았을텐데 하는 생각이 들었다.  보편적 이론으로서의 G"odel 과 Turing 의 정리에 의하면 그러한 생각은 실현할 수 없다는 것이다.

앞으로는 `알고리듬'을 좁은 의미로만 사용하고, 그것은 인류가 오랫동안 사용하던 `'의 의미를 분명하게 한정하는 Turing 기계를 뜻하며, 컴퓨터 프로그램을 뜻한다.

▒▒▒ Turing 기계 ▒▒▒

Turing 기계란 어떤 물질을 의미하는 것이 아니고 수학적인 개념인 함수의 한가지이다.  배고픈 사람이 음식을 보고 먹을 만큼 먹고는 포만감에 젖어 다른 곳으로 이동하는 것처럼, Turing 기계도 자신의 상태와 입력에 따라 출력하고 상태를 바꾸고 이동한다.  즉, 마음의 상태 집합을 S, 입출력 문자집합을 A 라 하면 Turing 기계는 함수

M :  S × A  →  S × A × {←,→}

를 뜻한다. (엄밀한 정의는 [Cook], [Devlin, 허민], [Lov'asz], [Penrose] 등을 참고할 것.) 이 함수가 바로 알고리듬이요, 프로그램이다.

보기를 들어 기계
 

상태

입력 0

입력 1

는 0 또는 1을 입력한 자료에서 1의 개수가 홀수인지 또는 짝수인지를 판정하는 기계이다.


Turing 기계는 자연 언어뿐 아니라 컴퓨터 언어 등을 포함한 넓은 의미의 언어를 이해하는 데 사용되며 이는 1950년대에  A. Chomski(1928- )로 하여금 언어와 문법의 분류를 하는데 결정적인 역할을 한다 [Rosen].
 

▒▒▒ 쉬운 문제와 어려운 문제 ▒▒▒

어떠한 문제가 답을 하기 쉬운 문제이고, 어떠한 문제가 답을 하기 어려운 문제인가? 답을 구하는 데 걸리는 시간이 짧은 문제가 쉬운 문제이고, 그렇지 않은 문제는 어려운 문제이다. 주어진 문제를 푸는 알고리듬---즉, Turing 기계가 얼마나 작동하는가가 시간을 정하는데, 그 시간이 짧다 또는 길다는 것은 개개의 문제마다 의미있는 것은 아니고, 집단문제(mass problem)에 부여된 개념이다.  마치 2 곱하기 3 은 잘 셈하지만, 다른 곱하기는 셈하지 못하는 계산기는 계산기가 아니듯이, 알고리듬이란 특정한 문제만을 푸는 데 사용되는 것이 아니라 보편적인 문제를 해결하여야 한다.

보기를 들어 두 자연수 70 과 1106 의 최대공약수를 구하여 보자. "배우지 못한 사람"은 이 문제를 다음과 같이 풀려고 할 것이다: 우선 70의 약수를 모두 구하고 1106의 약수를 모두 구한 다음 이 두 약수 집합의 공통 부분을 구하고, 그 중에서 가장 큰 것을 답으로 한다.  하지만 유클리드의 호제법을 "배운 사람"은 그렇게 오랜 시간을 써가며 구하지 않아도 된다: 먼저 1106 을 70 으로 나눈 나머지 56 을 얻고 70 을 56 으로 나눈 나머지 14 를 얻은 다음 56 이 14 로 나누어 떨어짐을 알고 14 를 답으로 내 놓는다:

1106 ≡ 56  (mod 70)
70 ≡ 14 (mod 56)
56 ≡ 0 (mod 14).

유클리드 호제법은 특정한 자연수 쌍에만 적용되는 것이 아니라 보편성을 가지고 있어 임의의 자연수 쌍 (m,n) 에 대하여 적용되고, 이때 답을 구하는 데 걸리는 (최악의 경우의) 시간은 입력의 길이에 비례한다: 자연수 쌍 m < n 을 입력하는데 사용되는 비트(bit)수를 가우스 기호 [ ] 를 사용하여 나타내면 [log m + 1] + 1 + [log n + 1] 이고 (이진법을 쓰면 log 의 밑은 2 이고, 십진법을 쓰면 밑은 10, 16 진법을 쓰면 밑은 16 이다), 최악의 경우 하여야 할 나눗셈의 회수는 [1 +  log(1+ √ 5)/2 m ] < [1 + 5 log10 m] 이다 (G. Lam'e(1795--1870)의 정리 [Rosen, p.205]).

이와같이 답을 구하기 위하여 시행하는 연산의 수가 입력 길이에 대한 다항식에 지배되는 알고리듬을 다항시간 알고리듬이라 부르고, 다항시간 알고리듬이 존재하는 집단문제---즉, 풀기 쉬운 집단문제 전체집합을

P

나타낸다.

정렬문제: 다른 보기로, 1 부터 n 까지의 자연수가 순서없이 한 자씩 적혀 있는 n 장의 카드를 순서대로 정렬하는데 얼마나 시간이 걸리는 지 살펴보자.  특별한 기교를 부리지 않고, 우선 1 이 어디에 있는지 살펴보는데 n 이하의 시간이 걸리고, 그 다음 2 가 어디에 있는지를 살펴 보는데 n-1 이하의 시간이 걸리고, 최악의 경우라도 n(n+1)/2 시간이 주어지면, 카드를 정렬할 수 있다.  그러므로 정렬문제는 쉬운 집단문제이다.  실제로 좋은 알고리듬으로 정렬하면 걸리는 시간은 O(n log n) 정도로 단축할 수 있다.  정렬을 위한 알고리듬은 비단 이러한 카드뿐 아니라, 50명의 수학 답안지를 성적순으로 정렬하여야 하기도 하고, 문서 편집기에서 잘못 사용한 단어를 찾아 고치는 search-replace 기능을 위하여도 필요하고, 도서관의 백만권 자료 중에서 원하는 것을 실시간에 찾고, 전화교환원이 원하는 곳의 전화번호를 재빨리 알려주며, 인터넷을 빠른 시간 안에 뒤지는 것을 가능하게 한다.

쉬운 집단문제의 보기로

  • 두 개의 n x n 행렬끼리 곱하기
  • 정사각 행렬의 역행렬 구하기
  • 두 다항식끼리 곱하기
  • 이산 Fourier 변환
  • network flow 문제

등을 들 수 있다.

물론 어떤 집단문제가 쉽다는 것은 이론적으로 그렇다는 뜻이지 실질적인 것은 아닐 수 있다.  작년에 어떤 선진국에서 대통령 선거를 마치고는 투표지에 난 구멍의 개수를 잘 세지 못하여 사회적으로 큰 혼란을 일으켰는데, 이와 같이 수학적으로 자명한 문제가 실제로는 아주 어려운 문제일 수도 있다.

다항식 시간 문제와 비다항식 시간 문제에 대한 개념은 von Neumann(1953), Cobham(1964), Edmonds(1965) 등에 의하여 확립되었다 [Cook].

▒▒▒ 어려운 문제 ▒▒▒

물론 모든 집단문제가 다 쉬운 것은 아니다. 어려운 집단문제의 보기로는 하노이 탑 문제라고 부르는 것이 있다. 이 문제는 1883년에 Lucas 라는 오락 수학자가 만든 문제로 다음과 같다.

티벳의 한 고원에 n 층 탑이 있는데,  이 탑의 위치를 다른 곳으로 옮겨야 한다. 이 때 맨 위층부터 차례로 옮겨야 하고, 각 층들을 놓아 둘 수 있는 곳은 현재 자리, 옮길 자리, 여분의 한 자리뿐이다. 그리고 낮은 층을 높은 층 위에 쌓아서는 안된다. 과연 몇번 만에 이 탑을 다 옮길 수 있을까?

n 층 탑을 옮기는 데 걸리는 시간을 T(n) 이라 하면 점화식

T(n) = 2 T(n-1) + 1,    T(1) = 1

을 쉽게 얻고, 따라서 T(n) = 2n -1 임을 안다.  이 문제는 탑의 층수가 증가함에 따라 해결하는데 걸리는 시간이 기하급수적으로 증가하고, 따라서 어려운 문제이다. 만약 63 빌딩을 1초에 한 층씩 옮긴다면 3천억년 이상이 걸린다.

어떤 집단문제가 쉽다는 것을 보이는 것은 쉽다: 그 집단문제를 해결하는 다항식 알고리듬을 보여주기만 하면 된다.  그러나 어떤 집단문제가 어렵다는 것을 보이는 것은 어려운 일이다. 왜냐하면 어떠한 알고리듬도 쉬운 것이 없다는 것을 증명하는 것이 어렵기 때문이다.

▒▒▒ 풀 수 없는 문제 ▒▒▒

어떤 문제는 너무나 어려워서 풀리지 않는 것도 있다. 대표적인 것이 앞에서 말한 정지 문제이다. 다른 보기로는

타일링 문제: 임의의 다각형 집합이 평면 타일링을 하는가를 판정하는 문제

를 들 수 있다 [Berger], [Croft et al.], [Gardner], [Lov'asz], [Penrose]. 다각형의 종류가 불가산수이기 때문에 가산수의 기계들로 해결할 수 없는 것은 당연하다. 그러나 다각형을 "동서남북 각변에 색을 칠한 정사각형" 또는 "폴리요미노"로 한정하더라도 판정불가능하다.


판정 문제 중에서 가장 유명한 것 중의 하나가 Hilbert 의 열번째 문제라고 부르는 Diophantus 방정식에 관한 것이다:

Hilbert 의 열번째 문제: 일반 정수방정식 p(x1, ... , xn) = 0 이 정수해를 가지는 지를 판정할 수 있는 알고리듬이 존재하는가?

1970년에 Matiyahsevich 는 이 문제에 대한 부정적인 답을 하였다. 또 다른 보기로는 1914년 A. Thue 가 질문한

단어 문제(word problem): 일반 자유군의 원소 a0, a1, ... , an 에 대하여 a0 은 a1, ... , an 이 생성하는 부분군의 원소인가?

이다. 이 문제도  1947년에 E. Post 와 A. Markov 에 의하여 판정 불가능하다는 것이 밝혀졌다 .

▒▒▒ 수학자들은 해결사 ▒▒▒

20세기 수학의 주요한 특징은 "존재성과 유일성"에 관한 이해가 주를 이루었다.  공간이나 구조에 대한 명확한 개념과 용어 및 방법들이 정립되지 않은 시절이었다.  그러나 21세기가 가까워 지면서 수학자들은 "존재성과 유일성" 문제를 상당히 잘 이해하게 되었고, 어떤 것은 그들의 상식이 되었다.  그 대신 ``어떻게 찾을 것인가?''하는 문제는 여전히 풀리지 않은 것들이 많이 있고, 큰 관심을 끌고 있다.

어려운 문제에 부딪히면 그 난관을 극복하는 법이 있는가? 얼마나 많이 있는가? 이러한 것들이 20세기 수학자들이 많이 연구한 것이라면, 21세기 수학자들은 난관을 어떻게 구체적으로 극복할 것인가? 하는 문제를 더 많이 연구할 것이다.

수학자들은 문제가 주어지면

  • 답이 존재하는가?
  • 답을 어떻게 찾는가?
  • 찾은 것이 바른지를 어떻게 검증하는가?

등을 연구하여 왔고, 이것은 마치 사건이 생겼을 때 해결책을 구하는 자세와 같다.  그런 의미에서 수학자들은 해결사라 말할 수 있다.

▒▒▒ NP - 아리송한(Hard) 문제 ▒▒▒

어떤 집단문제들은 어려워 보이기는 하지만, 그 답을 보면 옳다는 것을 검증하기가 쉬운 그러한 집단문제들이 있다. 마치 평범한 고등학생들이 ``수학의 정석''과 낑낑대고 씨름하다가 포기하고는 해답을 보고 나서 "아! 바로 그것이구나" 하듯이. 이러한 집단문제---미정다항시간집단문제(nondeterministic polynomial time problem)들의 집합을

NP

라 한다. 이러한 이름이 붙은 이유는 다음과 같다. 앞에서 Turing 기계를 설명하였는데, 이것은 함수이고, 따라서 결정적인(deterministic) 행동을 하는 기계이다. 집합론적 입장에서는 함수란 관계의 일종이다. Turing 기계에서 함수를 관계

M  ⊂  S × A × S × A × {←,→}

로 바꾸기만 하면 미정적인 Turing 기계가 된다.  그러므로 미정적인 기계에서는 입력을 보고 그 다음 상태와 출력 및 움직이는 방향이 한가지로 정해지는 것이 아니고, 여러가지로 나타난다. 이러한 미정적인 기계를 이용하여 다항식 시간안에 답을 구하는 알고리듬이 있는 문제가 바로 NP 에 속하는 문제이다. 이 정의는 ``쉽게 검증할 수 있는 증명서(certificate)를 가진 문제''로 정의하는 것과 동치임이 알려져 있다.  현재 인류가 사용하고 있는 컴퓨터는 모두 결정적인 Turing 기계이고, 미정적인 기계는 아직 이용되고 있지 않다.  확률론적인 기계나 양자 기계 등이 연구되고 있기는 하지만 실용 단계는 아니다.  집단문제중에는  하노이의 탑처럼 NP 에 속하지 않는 문제도 많이 있다.  물론 PNP 의 부분집합이기는 하지만, NPP 와 다르다는 것이 증명된 것은 아니다.  Clay 수학연구소에서 현상금을 건 문제가 바로 "P = NP ?"이다.  이 문제는 "PNP ?" 와 마찬가지이다. 한 은사님께서 말씀하시기를 "의문문은 긍정문으로 하거나 부정문으로 하더라도 그 뜻은 마찬가지이다"라고 하셨는데, 페티김의 "누가 그사람을 모르시나요?"와 조성모의 "아시나요?"를 들어 보면 둘 다 "이별의 슬픔"을 노래한 것임을 알 수 있다.   이제 NP 에 속하는 문제들의 보기를 몇가지 든다.

TSP 문제: 만득이가 방학을 이용하여 배낭 메고 세계 여행을 떠난다고 하자. 방문하고 싶은 도시는 런던, 파리, 베를린, 로마, 그라나다, 이스탄불, 모스코바, 페이킹, 뉴욕, 토교 등 모두 열 곳. 여행사에 전화하여 어떤 방법으로 도시들을 방문하는 것이 비행기 삯을 가장 저렴하게 하는지를 알아 본다.  물론 서울에서 출발하여 서울로 돌아와야 하니까 여행사 직원이 조사하여야 할 경우의 수는 모두 10! = 3628800.  그러나 만득이는 여행사 직원이 추천한 방법을 그 자리에서 따르지 않고, 몇군데 다른 여행사에 더 문의한다. 만득이가 풀려고 하는 문제는, 부인의 허락이 없어 외박하지 못하고 하루 종일 여러 도시를 돌아 다니다가 지친 육신을 이끌고 집으로 다시 돌아오는 외판원 문제(TSP, Traveling Salesman Problem)와 마찬가지다.  만득이 문제는 여행사 직원이 어리석어서 풀기 어려운 것이 아니고, 문제의 속성이 그러하기 때문이다.  핀볼 게임기를 만들려면 수많은 못을 박고 나사를 조아야 하는 데, 작업 시간을 줄일 수 있는 방법을 아는 것은 중요한 일이다. 컴퓨터 칩이나 전자회로판을 설계할 때 레이저 드릴로 65,000 개 이상의 구멍을 내야 하는 경우를 생각해 보면 좋은 알고리듬의 중요성을 실감하게 된다

그래프에 관한 Hamilton 회로 문제: 사원수의 발견으로 유명한 W. Hamilton(1805-1865)은 1857년에 "20면체 게임"을 발명하여 게임 판매 업자에게 25 파운드에 팔았다. 업자들은 이 게임을 `세계 여행(A Voyage Round the World)'이라는 이름으로 판매하였는 데,  20면체의 모서리를 따라서 모든 꼭지점을 오직 한번씩 지나 다시 처음 꼭지점으로 되돌아 오는 그러한 놀이였다.  이 게임이 잘 팔리지 않아 업자는 투자를 잘못한 것이 되었지만, 그 후로 그래프에서 모든 꼭지점을 오직 한번씩  지나고 처음으로 되돌아 오는 경로를 Hamilton 회로라고 부른다.  Hamilton 회로 문제는 NP 에 속하는 문제이다.  그러나 한붓 그리기 문제(그래프의 모든 모서리를 오직 한번씩 지나는 문제)는 아이들을 돌보던 L. Euler 가 아주 쉬운 문제로 만들었다.

시간표 짜기: 요즈음 대학의 시간표---즉, 수강편람을 보면 한심하기 짝이 없다.  학생수는 20년전보다 2배로 늘었는데, 대학을 운영하는 알고리듬은 갈수록 엉망이다.  부전공제도다, 복수전공제도다, 조기졸업이다, 대학원 중심이고, 학부 변두리다 어쩌구 저쩌구 하지만 수강편람을 보면 도저히 학생들에게 양질의 교육을 제공한다고 보기 힘들다.  어떤 시간은 학교 저 구석 건물의 4층에서 강의가 있고, 그 다음 시간은 반대쪽 건물의 4층에서 강의가 있다.  기말고사를 볼 때에도 같은 날에 두가지 시험을 치르지 않도록 시간표를 짜면 좋을텐데.  이러한 문제는 학교 행정직원들의 무책임한 자세 때문인 것이 대부분이지만, 한편으로는 이 문제가 본질적으로 가지고 있는 속성때문이다.

퍼즐맞추기: 빈치 마을의 레오나르도가 그린 모나리자를 500조각낸 퍼즐을 구입하고는 밤을 새워가며 짝을 맞추느라고 고생한 적이 있다.  문제를 푸는 것은 어렵지만(500! ≒ 1.2 × 101134), 답을 보고는 그것이 옳다는 것을 판정하는 데는 500개 조각만 조사하면 된다.

소수판정: 자연수 중에서 약수의 개수가 두개인 자연수를 소수라 한다.  1보다 큰 자연수는 더 이상 쪼개지지 않는 소수이거나 또는 소수들의 곱으로 표현되는 합성수이다.   소수의 개수가 무한하다는 것은 유클리드 시절에 이미 알려졌지만, 주어진 큰 수가 소수인지를 판정하는 것은 여간 어렵지 않다.  평범한 방법으로 자연수 n 이 소수인지 판정하려면, 최악의 경우, √n 이하의 모든 자연수로 나누어 보아야 한다. 이때 걸리는 계산의 시간은 입력한 비트수 b = [1+ log n] 에 대한 지수함수로 나타난다.  그러므로 이러한 (원시적인) 방법은 소수판정문제가 어렵다는 것을 암시하여 준다.  그러나

    Fermat 의 작은 정리:   p 가 소수이면 임의의 자연수 a 에 대하여 ap ≡ a (mod p) 이다.

를 이용하여 1975년에 V. Pratt 는 모든 소수에는 증명서가 있어서 이것을 보면 쉽게 그 수가  소수임을 알 수 있다는 것을 보였다. 따라서 소수판정문제는 NP 에 속한다.   `소수문제는 P 에 속할 것이다'라고 생각하는 학자들이 있지만 아직 증명을 가지고 있는 것은 아니다.

합성수판정:   명제 "4,003,997 는 합성수이다"가 참이라는 것을 확신하려면 제법 생각하여야 한다.  하지만 이 수가 1999 과 2003 의 곱이라는 것을 보이는 것은 쉽다:

1999 ×2003 = (2000 -1) ×(2000 + 3) = 4,000,000 + 4,000 - 3 = 4,003,997

수학자들은 "소인수 분해가 어렵다"는 것에 대한 보편적인 증명이 나오기 전까지는 그것이 옳다고 말하지 않는다.

이삿짐짜기:  어느날 컴퓨터 파일 다섯 개

filenameA (300 kb), filenameB (400 kb), filenameC (600 kb), filenameD (700 kb), filenameE (800 kb)

를 장당 용량이 1440 kb 인 3.5인치 플로피 디스켓 두장에 담으려고 복사 명령을 하였더니, filenameA, filenameB, filenameC 를 첫장에 복사하고, filenameD 는 복사하다가 중간에 포기하고 `용량이 부족하니 다른 디스켓을 넣고 Any Key 를 누르시오'라고 하였다.  그래서 두 번째 디스켓을 넣었더니, 드라이브가 망가졌다.  처음 디스켓을 빼지 않았기 때문이다.  급히 드라이브를 수리한 다음, 다시 복사 명령을 하였더니 아까와 같은 지침이 내려왔다.  이번에는 첫 번째 디스켓을 빼고 두 번째 디스켓을 넣은 다음 `Any Key'를 열심히 자판에서 찾았지만 보이지 않았다. 그래서 자판을 만든 회사에 `왜 당신회사 자판에는 Any  Key 가 없느냐?'고 문의하였더니 `Enter'나 `Shift' 등을 포함한 모든 키가 Any Key 라 하였다. 성공적으로 Any Key 를 눌렀더니 filenameD 가 복사되었고, 계속하여 filenameE 를 복사하다가 중간에 포기하고는 또 다시 `용량이 부족하니 다른 디스켓을 넣고 Any Key 를 누르시오'라는 지침이 내려았다. 내가 가진 플로피 디스켓은 두장뿐인데.

복사 알고리듬은 각 파일을 복사하기 전에 디스켓에 용량이 충분한지를 먼저 조사하여야 하고, 그런 다음에도 filenameA, filenameB, filenameC 를 첫 번째 디스켓에 넣을 것이 아니라 filenameA, filenameB, filenameD 를 첫 번째 디스켓에, filenameC, filenameE 를 두 번째 디스켓에 넣어 임무를 성공적으로 완수하였어야 하였다.

비슷한 문제로, 살기 좋은 나라를 만들기 위해 수도를 다른 도시로 옮기는 문제를 생각하자. 이때, 많은 짐들을 트럭 1000대에 다 실으려면 어떠한 순서로 짐을 실어야 할까? 이와 같은 최적화 문제가 안고 있는 난이도도 NP 이다.

선형계획법: 선형방정식의 연립 부등식을 푸는 문제는 군수 산업이나 산업 공학에서도 아주 중요한 문제이다. 이 문제를 단체법(simplex method)으로 많이 풀고 있지만 그 알고리듬은 지수시간 알고리듬이다. L. Khachian 은 1979년에 다항시간 알고리듬을 개발하였고, 그 이후로도 좋은 알고리듬이 많이 개발되었다.   그러므로 선형계획법은 P 에 속하는 문제이다.  하지만 실수해가 아니고 정수해를 구하는 문제라면 NP 에 속한다.

▒▒▒ SAT 문제 ▒▒▒

승용차를 타 본 사람이면 실내등이 언제 켜지는지를 잘 안다: 차문이 하나라도 열려 있으면 켜지고, 모두 닫혀 있으면 꺼진다. 이처럼 전등 하나가 여러가지 스위치와 복잡하게 연결되어 있는 전기 회로의 설계도면을 보고  어느 스위치들을 올리고 어느 스위치를 내리면 불이 들어올까를 판정하는 문제가 바로 SAT 문제(satisfiablity problem)이다.

영국의 G. Boole(1815--1864)은 1848년에 기호 논리학에 관한 책 `The Mathematical Analysis of Logic'을 출판하였고, 1854년에는 유명한 `The Laws of Thought'를 출판하였다. 이 책에는 명제로부터 새로운 명제를 얻는 방법

 p,     NOT p,     p AND q,     p OR q

등이 적혀 있고, 현재 불 대수(Boolean Algebra)라고 부르는 개념을 확립하였다. 다음 그림들은 이변수 불 함수 열여섯가지 모두를 나타낸 것이다.


Boole 의 논리는 1938년 C. Shannon(1916- )의 연구로 전기회로에서 스위치를 올리고(TURE) 내리는(FALSE) 것에 이용되어 20세기의 디지털 혁명이 일어나는 정신적 바탕이 되었으며, 정보이론(IT, Information Theory)이나 인공지능(AI, Artificial Intellligence)뿐 아니라 러시아의 A. Kolmogorov 나 미국 IBM 회사의 G. Chaitin 등에 의한 AIT(Algorithmic Information Theory)가 발전하는 데도 커다란 영향을 끼쳤다 [Casti, 2000].

▒▒▒ NP-완비(Complete)문제 ▒▒▒

얼마전에 큰 행렬들의 곱하기를 아주 빨리 하는 MaTricks 라는 프로그램을 하나 구입하여 집에 와 설치하고 사용법을 적은 설명서를 읽어 보았더니 마지막에 깨알 같은 글씨로 "본 제품은 크기가 10×10 이하인 행렬에만 사용할 수 있습니다"라고 적혀 있었다.  이 프로그램을 사용하여 두개의 20×20 행렬을 곱한 것을 구하려 하였지만, 크게 실망하지는 않았다.  왜냐하면 20×20 행렬은 네 개의 10×10 행렬로 쪼갤 수 있고, 따라서 MaTricks 를 이용할 수 있기 때문이었다. 이와 같이 어떤 문제를 다항 시간안에 P 문제로 변형할 수 있다면 처음 문제 역시 P 이고, 다항 시간안에 NP 문제로 변형할 수 있다면 처음 문제 역시 NP 이다.

어떤 NP 문제 T 가 임의의 NP 문제를 다항시간안에 T 로 바꾸어 해결할 수 있다면 그 문제를 NP-완비라 부른다.  NP-완비 문제는 NP 문제 중에서 가장 어려운 문제라 할 수 있다. 이러한 문제가 존재하는 지도 분명하지 않다. 1971년에 Stephen Cook 는 NP-완비 문제라는 개념을 확립하고 SAT 문제가 NP-완비라는 것을 증명하였다.   그러므로  NPP 가 같다는 것을 보이기 위해서는 모든 NP 문제가 다 P 에 속한다는 것을 보일 필요가 없고, 한가지 NP-완비 문제가 P 에 속한다는 것을 보이면 된다. 물론 NPP 가 다르다는 것을 보이기 위해서는 P 에 속하지 않는 NP 문제를 하나 발견하면 된다.

Cook 의 발견 후에 여러 가지 NP-완비 문제들이 밝혀졌다.  예를 들면 임의의 정수 a, b, c 에 대하여 방정식 ax2 + by = c 이 자연수해 (x,y)를 가지는가 하는 문제도 NP-완비이다 [Klee, Wagon, p.232].  최근에는 영국의 R. Kaye 가 Microsoft 사의 Windows 게임인 지뢰찾기게임(minesweeper)도 NP-완비임을 밝혔다 [과학동아], [Stewart].

물론 지뢰밭의 크기는 한정된 것이 아니다.  Kaye 는 전기회로를 다항식 시간내에 지뢰밭으로 변형하는 방법을 보여 지뢰밭에 주어진 정보가 모순이 없다는 것을 판정하는 문제가 SAT 문제와 동치임을 보였다.  지뢰 찾기 문제 외에도 바둑이나 장기, 소코반 등 여러 게임들의 난이도에 대하여 연구하는 학자들이 많이 있다.

▒▒▒ 두가지 미래 ▒▒▒

많은 학자들은 PNP 라고 믿고 있다.  만약 이것이 밝혀지면, 현재 전자상거래 등에서 많이 사용하는 RSA(R. Rivest, A. Shamir, L. Adleman) 암호 체계 같은 것이 상당히 안정적이라는 것에 대한 이론적 배경을 제공하는 셈이 된다.  하지만 누군가가 P = NP 를 증명한다면 현재 사용하는 암호체계의 신빙성에 큰 타격을 주게 된다.  아마 P = NP 를 증명한 사람은 Clay 수학연구소에 연락하는 대신 다른 곳에 투자하면 더 큰 보상을 받을 수 있을 것이다. 하지만 이 경우는 어렵게 보이는 문제에 대한 쉬운 알고리듬을 발견한 것이 되어 실생활에 큰 발전을 줄 것이다.  대학 행정직원들도 수강편람을 잘못 짜면 그 책임을 면하지 못할 것이고, 국제 어업협정을 하며 쌍끌이 어선을 빼 먹거나 인공호수나 고속전철 등 국책 사업을 잘못 정한 이들도 갈 곳은 정해지게 된다.

2002년 7월 추가: 어쩌면 세 번째 미래가 있어  "P = NP" 와 "PNP"를 모두 증명할 수 없다는 것을 증명할 지도 모른다.

▒▒▒ 감사의 글 ▒▒▒

이 글을 쓰는 동안 쾌적한 환경을 마련해 준 서울대학교와 고등과학원에 감사드린다.  그리고 대한수학회 소식지 편집자의 의욕에 찬 활동에 조금이나마 도움이 되었으면 좋겠다.

▒▒▒ 참고문헌 ▒▒▒

과학동아, 12억원 상금 걸린 지뢰찾기게임, 2001년 1월호, 130-131.

대학신문, 과학에세이 "알고리듬이 만드는 좋은 세상", 서울대학교 2000년 9월 18일.

신현식외 15인, 이산수학, 교학사, 1994.

R. Berger, The undecidability of the domino problem, Memoirs Amer. Math. Soc. 66 (1966).

J. Casti, Five Golden Rules, John Wiley & Sons, Inc., 1996. 한태식, 권기호, 김정헌 옮김, ``20세기 수학의 다섯가지 황금율'' 경문사, 1999.

________, Five MORE Golden Rules, John Wiley & Sons, Inc., 2000.

B. Cipra, What's happening in the Mathematical Sciences, I , II (ch. 6, ch. 9). Amer. Math. Soc., 1993, 1994. (김재겸, 김한두 공역, 교우사, 1996)

S. Cook, The P versus NP Problem,  http://www.claymath.org/prize_problems/p_vs_np.pdf

H. Croft, K. Falconer, R. Guy, Unsolved Problems in Geometry, Springer, 1991.

D. Dennett, Darwin's dangerous idea : Evolution and the meanings of life, Simon & Schuster, 1995.

K. Devlin, Mathematics: The New Golden Age, Penguin Group Ltd., 1988. 허민 옮김, 수학: 새로운 황금시대, 경문사, 1995, 1999.

R. Feynmann, Lectures on Computation, Addison Wesley, 1996.

M. Gardner, Scientific American, Jan. 1977, 110--121.

R. Graham, D. Knuth, O. Patashnik, Concrete Mathematics, Addison-Wesley Publ. Co., 1989.

P. Hoffman, Archimedes' Revenge, Fawsett Crest, New York, 1988.

D. Hoffstadter, G"odel, Ecsher, Bach: an Eternal Golden Braid, Basic Books, Inc., 1979. 박여성 옮김, 괴델, 에셔, 바흐, 까치, 1999.

V. Klee, S. Wagon, Unsolved Problems, Math. Assoc. Amer., 1991.

D. Knuth, Fundamental Algorithm, The Art of Computer Programming, Addison-Wesley, 1968, 1973.

L. Lov'asz, Computation Complexity, Lecture Notes.

R. Penrose, The Emperor's New Mind: concerning computers, minds, and the laws of physics, Oxford Univ. Press, 1989. 박승수 옮김. 상,하. 황제의 새 마음 : 컴퓨터, 마음, 물리법칙에 관하여,  내일을 여는 책,  서울, 이화여자대학교 출판부, 1996.

__________, Shadows of the Mind: An Approach to the Missing Science of the Consciousness, Oxford Univ. Press, 1994.

R. Penrose, A. Shimony, N. Cartwright, S. Hawking, The Large, the Small and the Human Mind, Cambridge Univ. Press, 1997.

I. Peterson, A Mathematical Mystery Cruise, W. H. Freeman & Co., 1988.

K. Podnieks, Around G"odel's Theorem, http://www.ltn.lv/~podnieks/

H. Poincar'e, Science et methode, Paris, 1908.

V. Pratt, Every prime has a sufficient certificate, SIAM J. Comput. 4 (1975), 214--220.

K. Rosen, Discrete Mathematics and its applications, McGraw-Hill, Inc., 1988, 1995.

S. Smale, Mathematical Problems for the next century, Math. Intelligencer 20 no.2 (1998), 7--15.

I. Stewart, Million Dollar Minesweeper, http://www.claymath.org/prize_problems/million-dollar-minesweeper.htm

A. Turing, Computing Machinery and Intelligence, Mind, 1950.

H. Wilf, Algorithms and Complexity,  Internet Edition, 1994. (http://www.cis.upenn.edu/~wilf/AlgComp2.html)

And

메타 휴리스틱스(Metaheuristics)의 소개(1)

|

많은 경우의 최적화 방법 연구는 해결하고자 하는 문제마다 각기 다른 그 특성에 맞추어 개발해야 하는 어려움이 있다.

이에 따라 특정 문제가 갖는 정보에 크게 구속되지 않고 다양한 문제에 적용 가능한 상위 수준의 방법인 메타 휴리스틱스(Metaheuristics)에 대한 이론과 그 응용에 관한 연구가 진행되었다. 대표적인 메타 휴리스틱스로는 유전적 알고리즘, 시뮬레이티드 어닐링, 타부 탐색 등이 있다.

메타 휴리스틱스(Metaheuristics)란 알고리즘에 대한 다른 표현으로 특정 계산 문제에 의존하지 않는 휴리스틱스를 말한다.

즉 특정 문제에 한정되지 않고 어떠한 문제에 대해서도 범용적으로 대응할 수 있도록 설계된 알고리즘의 기본적 뼈대를 의미한다.

메타 휴리스틱스는 모델링, 시뮬레이션 기술과의 결합을 전제로 한 최적화 수법의 개발과 최적화 수법과의 결합을 전제로 한 모델링, 시뮬레이션 기술 개발에 의한 최적화 기술의 발전적 재구축을 위한 주요 기술이 될 것이다. 그리고 이러한 최적화의 뼈대가 실용적인 레벨에서 실현되면 여러 분야에 대한 최적화의 보급을 촉진할 수 있을 것이다.

▒▒▒ 조합 최적화와 지역탐색(local search), 메타휴리스틱스 ▒▒▒

조합최적화 문제와 지역탐색

1. 조합최적화 문제

S는 주어진 제약조건에 맞는 이산적인 집합(=해집합)

x는 가능해(feasible solution)    

이 문제는 대부분 NP-hard로 Heuristic 접근 방법이 필요

 

2. Heuristics :

  • Constructive

  • Local search(지역탐색) : 근방(neighborhood)의 설정,

  • 교환알고리즘: 스케줄링(1965), 그래프 분할(Kernigan&Lin, 1970), TSP(L&K, 1973)

 

예1) GPP(Graph Partitioning Problem)

그래프 G(V,E)가 주어졌을 때 vertex의 집합 V를 동일한 개수의 원소를 갖도록 두 개의 집합 V1과 V2로 나눌 때, V1과 V2를 가로지르는 edge의 수(또는 가중치의 합)를 최소로 만드는 방법을 찾는 문제

- 비용함수:

- 근방: 가능해의 k-교환(exchange) 근방

- k개의 vertex쌍 을 선택하여 각각을 교환

 

예2) TSP(Traveling Salesman Problem)

n개의 도시가 주어지고 i, j 도시 사이의 거리가 행렬()로 주어졌을 때 출발 도시에서 가장 최소의 거리로 모든 도시를 한 번씩 거쳐서 다시 출발 도시로 돌아오는 경로(tour)를 찾는 문제

- 해: (는 도시 다음에 방문되는 도시)

- 비용함수:

- 근방: (k-exchange 근방)

Hamiltonian Cycle(or Tour)에서 edge k개를 대체

지역 최적이 전체 최적해가 되려면


3. 근방의 설정

a) k-exchange 근방: k가 크면 근방이 복잡(), 지역해는 좋아짐

b) 변동길이 근방: GPP에 대한 K-L algorithm, 1970

a, b 교환의 이득: (현재 일 때)

[STEP 1] g(a,b)가 최대가 되는 쌍을 선택(음수라도 무관)

[STEP 2] 선택된 쌍을 잠정적으로 교환

[STEP 3] STEP1, 2를 n회 반복하여 를 계산(먼저 고려된 쌍은 제외)

[STEP 4] 를 계산

[STEP 5] 가 최대가 되는 k 선택. 이 때 이면 이웃해로 채택하고 과정반복, 아니면 stop

c) 기타 수정법: GPP에서 2-exchange를 2번의 1-exchange로 하는 방법 등


4. 지역 탐색법에서 최적(에 가까운) 해를 얻는 방안

a) 초기해를 달리하여 여러 번의 지역 탐색을 시도

- 소모된 시간에 대한 알고리즘의 효율성이 문제

- 초기해(가능해)를 만들어 내기도 쉽지 않음

b) 해집합의 보다 많은 부분을 탐색할 수 있도록 근방의 구조를 바꿈

- 문제의 특수성에 따라 적절한 근방 구조를 찾기가 힘들다

c) 지역 탐색법을 수정하여 비용이 증가하는 이동도 제한적으로 허용

- 비용 증가의 이동을 어떤 방식으로 허용하는가?


5. Metaheuristics의 등장

1975: GA(Holland) → EC(Evolutionary Computation)

1983: SA(Kirpatrick et al.)

1987: TS(Glover)

1991: Ant System(Colorni, Dorigo, Maniezzo) → ACO(Ant Colony Optimization) 등

And

Chemical Process Systems Engineering

|


▒▒▒ Abstract ▒▒▒

  The paper reviews the development of process systems engineering from a personal view-point, selecting concepts from the past which have given rise to new paradigms, and hence led to improved understanding or advances in solution techniques, but which either still pose unresolved problems or hold the promise of further developments.


▒▒▒ History of chemical process systems engineering ▒▒▒

The systems engineering approach
- 1940년대 새롭게 개발된 디지털 컴퓨터의 사용이 가능해지면서 발전
- 문제를 정확히 fomulate했다면 원칙적으로 그것을 푸는 알고리즘을 개발가능할 것이라고 기대 
- 개별적으로 잘 알고 있는 장치들 간의 상호작용들로 이루어진 복잡한 시스템의 고려
- 화학공학을 "
systems engineering applied to the problems of the process industries"라고 설명

[ 분야 초창기 ]
"Unit operations"
- 다양한 prcess들에 광범위하게 사용되는 기본 장치들의 operation을 의미
- 기본 unit opertion의 이해를 높이는데 기여하여 이들의 시스템적 접근이 가능해짐
-
결과적으로 열 및 물질 전달 이론에서 "theoretical plate" 또는 "film theory"와 같은 간단한 모델 및 해석의 개발이 가능해짐
The representation of the process by a "flow-diagram" or "flow-sheet"
- 각 장치들이 어떻게 상호간 연결을 하고 있는지 나타냄
- 장치 간 상호관계를 알아볼 수 있는 좋은 방법으로 energy와 material 보전 법칙을 이용
- 여전히 case-by-case 접근 방식을 기본으로 한 flow-sheet 계산

[ 디지털컴퓨터의 성능 향상 이후 ]
"Graphical solution procedures"
- by numerical algorithms
- 풀이에 사용할 수 있는 일반적인 수치해석 테크닉의 이해와 새로운 알고리즘 개발의 필요성에 직면

[ Grphical solution의 발전 ] 
flow-sheet 계산을 위한 체계적인 기술들을 개발

Graph theory revealed a technique for identifying the groups of units linked by recycle streams
- Westerberg & Sargent, 1964[각주:1]
- recycle로 엮인 장치들의 그룹, 즉 "strong components" 를 함께 계산
- 문제를 decomposition하고 문제 내에서 적절한 iteration을 하기 위한 후보를 나타냄

각 장치들의 계산을 subroutine으로 표현한 "sequential modelar" flow-sheeting 계획법을 "equation-based"  계획법으로 바꿀 수 있다면
매우 크고 sparse한 방정식으로 표현되는 시스템의 구조로
설명할 수 있다.
"P-graph" for the representing process synthesis routes
- Ferencz Friedler, Tarjan, Huang, & Fan, 1992[각주:2]
Concept of "Super-structures"
- Grossmann, 1990[각주:3]
- 하나의 flow-sheet 위에 가능한 모든 구조들의 옵션을 포함시킴
- 공정 합성에 합리적인 기준을 제시가능
Bodo Linnhoff's representation of heat-exchanger networks
- Linnhoff, 1981[각주:4]
- "pinch technology"를 이용
- 열교환망과 같은 networks 이외에도 다양한 적용이 가능

위의 생각들을 일반화시켜 computer science에서는 "object-oriented programming"이라고 한다.
"equation-based" 접근법을 이용한 문제의 풀이에서 "units"의 선택은 효율성에 큰 영향을 미친다.
예를 들어 black box 모델에 적용 시에는 항상 안정적이고 효율적인 풀이를 할 수 있다고 말할 수 없다.

[ Object-oriented programming의 발전 ]
"equation-based" 접근법인 "Object-oriented programming"은 design, planning, operation 등의 다양한 공정시스템 영역의 최적화 기법에서 기본적인 가이드라인을 제공하게 된다.

예를 들어 control engineering에서는 "unit" 들을 transfer fuction으로 표현하고 이들의 상호 연결을 block diagram으로 표현한다.
"internal model control" block diagram structure
- Garcia & Morari, 1982[각주:5]
- MPC(model predictive control) 문제의 해석과 처리법 제시

열역학 이론의 발전에서 시작되는 "state" 개념은 control의 패러다임을 전환하는 계기가 된다.
즉 기존의 input 정보로부터 output 정보로 변환하는데 주력을 했다면 input 정보에 영향을 받는 "system state"의 표현에 주목하게 된다.

Kalman filter의 이용
- Kalman, 1960[각주:6]
- 현재의 state를 반복적으로 추정하고 observability와 controllability 의 개념 사이에 duality를 나타냄(Kailathe, 1980[각주:7])

[ System state 관점의 발전 ]
"system state"의 표현 관점은 differential equation 이론들과 접목될 수 있다.
이는 "Optimal control"(Pontryagin, Boltyanskii, Gamkrelidze, & Mischenko, 1962[각주:8])의 개념을 바탕으로 하여 이 후 nonlinear 시스템의 control 문제를 다룰 수 있게 된다.

하지만 이 경우도 한동안 중요한 computing 조건의 한계 때문에 optimal control 방법을 찾기 위해서는 off-line에서만 행해지다가 이후 Dave Cutler에 의해 on-line에서도 가능하게 된다.
"Dynamic Matrix Control"
- Cutler & Ramaker, 1979[각주:9]
- discrete-time linear-quardratic on-line optimal controller를 선형모델을 이용해서 만들 수 있음을 보임
- 이 후 회사를 설립하여 이 접근법의 성공을 드러내 보임

이 후 state estimation 및 optimal control 계산을 위한 컴퓨터 처리 속도의 비약적인 발전과 수치해석 기술의 향상을 바탕으로 좀 더 복잡한 nonlinear system을 보다 현실적인 objective function의 표현을 통해서도 계산이 가능하게 된다.(Morari & Lee, 1999[각주:10]; San-Blas, 2003[각주:11])

[ Robustness issues ]
control 엔지니어들은 매우 민감한 controller의 design과 error prediction을 위한 필요성에 직면한다.
그리고 "robust control"에 worst-case 분석을 바탕으로 한 H-infinity 접근법을 이용하게 된다.(Limebeer & Green, 1995[각주:12])

"Robustness" 문제들은 control 분야 뿐만 아니라 중요한 결과를 예측한 후 이를 바탕으로 적절한 행위을 취해야 하는 모든 영역에서 발생하는 "uncertainty"를 어떻게 다룰지에 대한 질문에서부터 시작한다.

이를 위해 가능하다면 worst-case를 바탕으로 한 결과를 기준으로 하면 가장 안전하겠지만 일반적으로 지나치게 불필요한 고려가 된다.
그보다는 특정 확률 기준을 잡고 이를 제약조건으로 하는 결과를 계산하여 행동을 취하는 것이 가장 적절할 것이다.

어떤 사건이 예측불가능한 무작위적으로 발생하는 사건인지 여부와 예측불가하여 영향을 알 수 없고 복잡한 chaotic response를 갖는 문제를 다루어야 하는지 여부는 많은 논쟁이 있었다.
하지만 확률분포를 이용한 예측은 우리에게 좋은 결과를 주었고, chaos theory으로부터 이러한 확률분포를 얻을 수 없다고 하더라도 서로 independent한 많은 영향들이 합쳐지면 Gaussian 분포를 갖게 된다는 "central limit theorem"과 같이 경험적인 관찰을 통해 얻은 데이터도 분포로 이용될 수 있다.

매우 큰 uncertainty가 포함된 system의 경우 보다 정확한 확신을 갖기 위한 계산을 위해서는 여전히 계산 비용이 크게 들었기 때문에 일부는 weighted objective function을 이용하게 된다.
Weighted objective function
- Grossmann & Sargent, 1978[각주:13]
- 적은 수의 적절한 시나리오만을 상정
- 근사적인 분포 함수를 구하여 대략적인 방법으로 해석 가능
"parametric programming"
- Sakizlis, Perkins, & Pistikopoulos, 2001[각주:14]
- 장점에도 불구하고 문제를 만족할만한 수준으로 훌륭히 해결한다기 보다 문제 해결에 사용가능한 하나의 툴로서의 역할

[ Numerial Integration - Stiff system issues ]
Process engineering은 항상 상대적으로 복잡하고 이해가 충분하지 못하며 필연적으로 nonlinear한 거동을 보이는 공정에 대해 대처해 왔다.

성공적인 dynamic simulation을 수행할 수 있기 전에는 "stiff systems"라고 알려진 system의 numerial integration 문제인 optimal control은 거의 다룰 수 없었다.
"stiff system"은 input의 변화에 따른 반응이 서로 다른 time-scale로 운영되고 있는 시스템들의 반응들로 조합되어 있는 시스템이다.(Mah, Michaelson, & Sargent, 1962[각주:15])

다행스럽게도 이 문제는 Gear method(Gear, 1971[각주:16])라고 불리우는 방법으로 해결이 되었다. 하지만 instantaneous response를 보이는 요소를 포함한 이 문제의 극단적인 유형은 "differential-algebraic systems" (Pantelides, Gritis, Morison, & Sargent, 1988[각주:17])을 생기게도 하였고 아직까지 이 문제를 다룰 수 있는 충분히 검증된 방법에 관한 논문은 없다.

일부 사람들은 실제 물리적인 공정에서 정말로 instantaneous한 시스템은 없으며 그런 이유로 이를 모델링할 필요가 없다고 위안을 삼지만, 몇몇 stiffness 문제들에 있어서 instantaneity의 가정은 실제 공정을 간략히 모델링하는 큰 도움을 주고 있기 때문에 이에 대한 연구는 여전히 계속되고 있다.

[ Numerial Integration - Paradoxical behavior of symplectic integration techniques ] 
위와 관련된 문제로 "symplectic integration 기법"의 역설적인 거동(Sanz-Serna & Calvo, 1994[각주:18]; Hairer, Lubich, & Wanner, 2002[각주:19])에 대한 것이 있다. 대략적으로 말하자면 numerical integration을 하는 동안에 에너지 보존 법칙과 같은 시스템에서 변하지 않는 요소의 불변성을 유지하는 문제라고 할 수 있다.

직관적으로 적분의 정확성을 높이고자 한다면 극단적으로 긴 time-interval의 경우를 생각해볼 수 있지만 이 경우 실제 관심있는 time-interval 보다 길어 전통적인 방법들보다 유용하지 못하다.

PDE(partial differential equation)의 경우 도함수를 구하기 위해 finite-difference approximation을 사용하는 것보다  finite elements를 이용하는 것이 유용한 "systems" 접근법이다. 또다시 여기에 에너지 보존 법칙을 도입하려한다면 다시 한번 "symplectic paradox"가 기본적으로 우려되는 요인이 된다.

실제 유체에 적용이 가능한 모델이라고 알려진 Navier-Stokes equation의 타당성 역시 여전히 의문점이다. 유체역학 분야에서 일반적으로 만족스러운 모델링 프로그램(Barber, 2000[각주:20])을 만들지 못하는 것으로부터도 유체역학 계산을 위해 널리 이용되는 일괄 프로그램들에서 사용하는 기본 가정들의 타당성에 의문을 갖기에 충분하다.  

[ Other uses of the state concept ]
"state-task network"
- Kondili, Pantelides, & Sargent, 1993[각주:21]
- flow-sheet 개념의 또 다른 접근법
- 다양한 batch-processing 공정의 시스템적인 관점에서의 해석
- 이러한 공정의 "functional" 관점은 새로운 공정의 합성(Sargent, 1998[각주:22])과 주어진 공정의 모델리의 새로운 접근법(Sargent, 2003[각주:23])을 제시
Jim Douglas' "hierarchical design"
- J. M. Douglas, 1988[각주:24]
- 공정 내 몇 가지 장치들 및 이들 구성의 포함 여부를 결정
- 전체 공정의 가치를 판단하기 위한 중요한 "utility-measure"의 방식을 향상
- 공정 합성 및 공정 설계의 과정에서 문제의 공정 향상을 위해 사용되는 모델의 타당성을 판단할 수 있는 기준을 제시

[ Generation of a dynamic mathematical model ]
순수하게 공정에 대한 정성적인 설명으로부터 dynamic mathematical model을 자동적으로 생성하는 아이디어의 적용은 새로운 관점에서 쓰여져야 하며 좀 더 많은 토론이 필요하다.
 
완벽한 모델이란 존재할 수 없으며, 우리가 궁극적으로 하고자 하는 것은 합리적인 정확도를 가지고 있으며 관심있는 시스템의 제한된 특성들로부터 이끌어내는 시스템의 예측이다. 또한 만들어진 모델이 사용된 단순화 작업들과 여러 가정들에 크게 민감하지 않기를 바란다. 하지만 이러한 모호한 표현들에 대한 보다 정확한 정의를 해야할 필요가 있다.

관심있는 시스템의 특성들의 집합은 사용자에게 충분히 명확해야하며, 즉시 계산에 포함되었을 보존법칙들과 같은 물리적 법칙의 집합을 보여줄 수 있어야 한다. 이 때 필수적이든 경험적이든 충분히 목적에 부합되는 법칙들은 특별한 방식이든 기존의 문헌들에서 선택되었든 제공될 수 있다고 가정해야만 한다.
 
이럴 경우 well-defined 된 수학적 모델(programmable for the computer)이라 부를 수 있으며, 모델 내 포함되었을 가능성이 있는 관계식들로부터 최소한의 집합을 찾거나 혹은 불완전한 모델이라고 판단할 수 있을 것이다. 그리고 관심있는 모든 특성들로 부터 최소의 변수들로 이루어진 부분집합을 찾아 algebraic equation들만을 이용하여 원하는 시간 및 공간에 대해 명쾌하게 계산하는 것도 가능하다.

최소의 변수 집합은 시스템의 instantaneous state를 명확히 밝히고, 시스템의 input과 최소 집합의 남은 방정식들로부터 이것들의 진행 혹은 발전을 확인할 수 있게 된다. 일반적으로 이 집합들은 partial differential equation, ordinary differential equation 혹은 algebraic equation들의 혼합 집합이다. 따라서 우리는 이것을 수학적 모델이라고 부를 수 있는 것이다.
 
물론 창의적 능력이 없는 컴퓨터를 이용하기 위해서 사람의 지식과 통찰력 등은 필수적인 구성 요소가 되고 목적에 맞는 적절한 선택 역시 사람의 손을 빌려야 한다. 하지만 이러한 framework는 이러한 구성 요소들을 저장하고 자동으로 분석이 가능한 부분들을 제공할 수 있는 시스템적인 방법이 될 수 있다.

모델을 간략하게 구성하고 아이디어를 확장하는 것은 인간의 통찰력이 필요하다.

예를 들어 기-액 분리를 위한 간단한 flash vessel을 생각하보자.
instantaneous separation이라는 가정을 한다면, 용기 속에는 각각의 state variable들의 부분집합으로 표현되는 기체와 액체, 두 가지 영역이 존재하고 이들은 일반적인 경계조건에서의 관계식들로 표현된다. 명확히 구분되는 두 개의 영역을 참이라고 명시한다면, 컴퓨터는 각각의 영역에 부합하는 수학적 모델로 분리하게 된다.
이와 다르게 두 상으로부터 분리되어 나오는 비율을 알고 싶을 수도 있다.
이 때는  유체가 용기 전체에 걸쳐 분포되어 있다고 가정한다면 분리를 일으키는 주요 요소가 중력이 되기 때문에, 기체 대비 액체의 비율은 높이나 각 지점에서 유체 사이의 단위 부피당 shear-force의 경험적인 관계에 따라 달라질 것이다. 이 힘을 없다고 한다면 애초에 고려한 모델이 되겠지만, 분리 비율을 알고 싶다면 single pseudo-fluid라고 생각한 혼합물을 다루기 보다는 한 지점 주위의 작은 부피에서 두 개의 유체의 국지적 평균을 내어 결정한 state variable을 이용하는 것이 좋다.
이 "local system"은 다시 hierarchical modelling process를 이용한 방법으로 모델링 될 수 있다.
예를 들어 주위의 bubble들의 영향을 무시한 하나의 bubble만을 고려한다면, shear-force parameter는 Stokes' Law를 이용하면 된다. 또한 이것은 두 개의 유체 혼합물에 finite element approximation의 극한까지 성공적으로 개선할 수 있다. 하지만 이것은 계산 노력이 필요한 만큼 상대적으로 비용도 함께 증가하는 단점이 있다.

따라서 생성된 모델을 가능한 단순화 시키기 위한 정성적인 정보의 제공을 통해서, 만들어진 모델의 복잡성을 조절할 수 있거나 심지어 몇 가지 대안들을 생성할 수 있다. 그리고 Douglas' hierarchical design 접근법을 통해 전체 공정 모델을 위한 몇 가지 utility-measure의 영향성 판단을 바탕으로 이들 중에서 적절한 선택을 할 수 있다. 이것의 방법의 장점은 모델의 복잡성이 그것의 목적에 달려있다는 것과 사용자가 모델을 컴파일링하면서 사용한 가정들을 명확히 알 수 있다는 것이다. 이 아이디어는 앞으로 보다 면밀한 검토와 노력을 바탕으로 한 진전이 필요하고, 부수적인 문제들의 주체들에 의한 충분한 검토가 필요하다.

[ Process systems engineering 영역의 확대 ]
수십 년간 process systems engineering은 공정 자체에만 관심을 두고 있었지만 관심 영역의 점차적인 확대는 필요하다.
우선 process management에서부터 multi-site operations이나 궁극적으로는 전체 supply chain의 고려까지 필요하다.

실제로 process systems engineering은 metallurgical process나 biochemical process 영역의 모델을 개선하기 위해 필요한 physico-chemical 기본 지식과 biochemical 기본 지식의 깊이를 더하는 역할을 하고 있으며, 이들과  관련된 관심의 범위를 확대하는데 기여하고 있다.

이런 시도들은 아래와 같이 실제로 여러 비슷한 학문들과의 융합과 포용을 통해 가능해왔다.
"Computational fluid dynamics"
- Bezzo, Macchietto, & Pantelides, 2000[각주:25]
"Molecular dynamics"
- Stephanovic & Pantelides, 2000[각주:26]

반면 컴퓨터 공학에서는 소위 "expert systems"라고 불리우는 압축, 저장, 및 정성적 지식의 사용을 위한 기술들이 개발되었다.
이 기술은 operating instructions의 무결성 확인이나 안전 점검 및 안전도 분석을 위한 기술들의 제공을 위한 목적을 위한 전혀 다른 컴퓨터의 이용 방식을 제공한다.
"Qualitative modelling" 시스템은 expert systems의 영역을 확대하고 전통적인 quantitative modelling system을 이용하기 위해 필요한 과도한 투자비용을 절약하기 위해 개발되었다. 

소위 "artificial intelligence" 학파는 biochemical process 혹은 기타 다른 natural process와 유사하도록 하여 인간의 사고 과정을 모방할 수 있는 컴퓨터를 제공하려는 방향으로 관심사를 돌리기도 했다.(Stephanopoulos, 1990[각주:27])
이것은 적용하기 쉬운 매력을 가지고 있어 곧바로 넓은 분야에 적용되었다. 
"generic algorithm for optimization"
- 매우 유명한 최적화 방법으로서 각광
"emulation of neural network"
- Hoskins & Himmelblau, 1988[각주:28]
- parameter와 state estimation을 위한 전통적인 기법들의 향상에 주목할만한 영향을 미침

이러한 기술들은 이 후 계속 발전하였다.
"Wavelet theory"
- Daubechies, 1992[각주:29]
- multi-scale process의 분석에 강력한 툴을 제공

그리고 mathematical logic이나 graph theory 등의 적용이 더욱 다양하게 진행되었다.
초창기 원인을 추적하기 위한 fault-tree 혹은 event-tree 분석 기법들을 사용할 때 빈번히 발생하는 오류의 현상을 극복하기 위한 노력들을 통해 개선된 기법들이 등장한다.
the use of directed signal graphs(digraph)
- Becraft, Guo, Lee, & Newell, 1991[각주:30]
methods to check complicated operational procedures
- Sanchez & Macchietto, 1995[각주:31]
"disjunctive programming"
- Grossmann, 2002[각주:32]
- integer programming 기법의 강력한 적용

▒▒▒ Conclusion  ▒▒▒

저자의 경력 기간 내 일어난 발전들에 대한 리뷰
다른 많은 중요하고 흥미로운 아이디어들도 있지만 저자가 수행할 앞으로의 연구와 관련하여 흥미롭고 이해를 돕기 위한 주제들 중심으로 언급

process systems engineering의 영역이 확대되고 있으며 장황한 영역으로 확대 되고 있어 점점 더 그 범위를 정의하고 중요한 핵심 요소들을 정의하는 것이 힘들지만, 새롭게 개척될 영역들의 접근과 문제의 범위가 어느 때보다 넓어져 함께 연구하기 위해서 이러한 리뷰는 도움이 될 것이다.
 

  1. A.W. Westerberg and R.W.H. Sargent, “SPEEDUP”: Simulation programme for the economic evaluation and design of unsteady-state processes in chemical engineering design, Transactions of the Institution of Chemical Engineers 42 (1964), p. 190. [본문으로]
  2. F. Friedler, K. Tarjan, Y.W. Huang and I.T. Fan, Graph–theoretic approach to process synthesis: Axioms and theorems, Chemical Engineering Science 47 (1992), pp. 1973–1988 [본문으로]
  3. I.E. Grossmann, MINLP optimization strategies and algorithms for process synthesis. In: J.J. Siirola, I.E. Grosmann and G. Stephanopoulos, Editors, Foundations of computer-aided process design (FOCAPD’89), CACHE, Elsevier, Amsterdam (1990). [본문으로]
  4. B. Linnhoff, Entropy in practical process design. In: R.S.H. Mah and W.D. Seider, Editors, Foundations of computer-aided process design (FOCAPD’80), Engineering Foundation, New York (1981). [본문으로]
  5. C.E. Garcia and M. Morari, Internal model control 1: A unifying review and some new results, Industrial and Engineering Chemistry and Process Design, Development 21 (1982), pp. 308–323. [본문으로]
  6. R.E. Kalman, A new approach to linear filtering and prediction problems, Journal of Basic and Engineering Transactions ASME Series D 82 (1960) (1), pp. 35–45. [본문으로]
  7. T. Kailath, Linear systems, Prentice-Hall, Englewood Cliffs, NJ (1980). [본문으로]
  8. C.C. Pantelides, D.M. Gritis, K.R. Morison and R.W.H. Sargent, The mathematical modelling of transient systems using differential: Algebraic equations, Computers and Chemical Engineering 12 (1988) (5), pp. 449–454 [본문으로]
  9. Cutler, C. R., & Ramaker, B. L. (1979). Dynamic matrix control: A computer control algorithm, Paper WP5-B, Houston, USA: AIChE National Meeting [본문으로]
  10. M. Morari and J.H. Lee, Model predictive control: Past, present and future, Computing and Chemical Engineering 23 (1999), pp. 667–682. [본문으로]
  11. San-Blas, F. C. (2003). A case study in nonlinear on-line optimal control, Ph.D. Thesis, London. [본문으로]
  12. D.J.M. Limebeer and M. Green, Linear robust control, Prentice-Hall, Englewood Cliffs (1995). [본문으로]
  13. I.E. Grossmann and R.W.H. Sargent, Optimum design of chemical plants with uncertain parameters, AIChE Journal 24 (1978) (November (6)), pp. 1021–1028 [본문으로]
  14. V. Sakizlis, J.D. Perkins and E.N. Pistikopoulos, Simultaneous process synthesis and control design under uncertainty based on a mixed dynamic optimization approach, Proceedings of the 3rd panhellenic scientific conference on chemical engineering: Vol. 1 Athens (2001), pp. 313–316 [본문으로]
  15. R.S.H. Mah, S. Michaelson and R.W.H. Sargent, Dynamic behaviour of multicomponent multistage systems: Numerical methods for the solution, Chemical Engineering Science 17 (1962), p. 619 [본문으로]
  16. C.W. Gear, Numerical initial-value problems in ordinary differential equations, Prentice-Hall, Englewood Cliffs (1971). [본문으로]
  17. C.C. Pantelides, D.M. Gritis, K.R. Morison and R.W.H. Sargent, The mathematical modelling of transient systems using differential: Algebraic equations, Computers and Chemical Engineering 12 (1988) (5), pp. 449–454 [본문으로]
  18. J.M. Sanz-Serna and M.P. Calvo, Numerical hamiltonian problems, Chapman and Hall, London (1994) [본문으로]
  19. E. Hairer, C. Lubich and G. Wanner, Geometric numerical integration: Structure-preserving algorithms for ordinary differential equations, Springer-Verlag, New York (2002). [본문으로]
  20. Barber, J. A. (2000). The automatic synthesis of mathematical models for process systems, Ph.D. Thesis, London [본문으로]
  21. E. Kondili, C.C. Pantelides and R.W.H. Sargent, A general algorithm for short-term scheduling of batch operations. Part 1: MILP formulation, Computers and Chemical Engineering 17 (1993) (2), pp. 211–227 [본문으로]
  22. R.W.H. Sargent, A functional approach to process synthesis and its application to distillation systems, Computers and Chemical Engineerings 22 (1998) (1–2), pp. 31–45. [본문으로]
  23. R.W.H. Sargent, Modelling: A process systems perspective, Proceedings of nordic process control workshop January (2003). [본문으로]
  24. J.M. Douglas, Conceptual design of chemical processes, McGraw Hill, New York (1988). [본문으로]
  25. F. Bezzo, S. Macchietto and C.C. Pantelides, A general framework for the integration of computational fluid dynamics and process simulation, 7th Symposium on Process Systems Engineering (PSE 2000) (2000). [본문으로]
  26. Stephanovic, J., & Pantelides, C. C., Towards tighter integration of molecular dynamics within process and product design computations, In J. A. Malone & J. A. Trainham (Eds.), Foundations of computer-aided process design (FOCAPD’99): Vol. 96, CACHE, AIChE Symposium series no. 323, 2000 [본문으로]
  27. Stephanopoulos, G., Artificial Intelligence and symbolic computing in process engineering design, In J. J. Siirola, I. E. Grossmann, & G. Stephanopoulos (Eds.), Foundations of computer-aided process design (FOCAPD’89), CACHE, Elsevier, Amsterdam, 1990 [본문으로]
  28. J.C. Hoskins and D.M. Himmelblau, Artificial neural network models of knowledge representation in chemical engineering, Computers and Chemical Engineering 12 (1988), p. 881 [본문으로]
  29. I. Daubechies, Ten lectures on wavelets, SIAM, Philadelphia (1992). [본문으로]
  30. W.R. Becraft, D.Z. Guo, P.L. Lee and R.B. Newell, Fault diagnosis strategies for chemical plants: A review of competing technologies, Proceedings of 4th international symposium on process systems engineering (PSE’91): Vol. II, 12.1 (1991). [본문으로]
  31. A. Sanchez and S. Macchietto, Design of procedural controllers for chemical processes, Computers and Chemical Engineering 19 (1995), pp. S381–S386 [본문으로]
  32. .E. Grossmann, Review of nonlinear mixed-integer and disjunctive programming techniques, Optimization and Engineering 3 (2002), pp. 227–252. [본문으로]
And
prev | 1 | next