과학은 컴퓨터 모델링에 의존합니다 - 그래서 잘못되었을 때 어떻게됩니까?

페니실린의 변형 발견에서부터 상대성 이론과 양자 역학에 이르기까지 과학은 컴퓨터가 있기 전에도 속도가 빨라졌습니다. 이것의 대부분은 과학적 방법의 견고성에 달려 있습니다. 과학적 결과는 다른 과학자에 의해 복제되고 확장 됨으로써 검증됩니다.

그러나 우리가 과학을하는 방식은 변화하고 있습니다 - 우리는 이제 자연을 이해하기 위해 복잡한 컴퓨터 모델에 점점 더 의존합니다. 그리고이 모델들은 재생산이 거의 불가능할 수 있습니다 - 과학의 중요한 시금석이 도전 받고 있음을 의미합니다. 그렇다면이 변화의 현실적 반향은 무엇이며 우리는 그것에 대해 무엇을 할 수 있습니까?

"자연 철학"으로 알려진 선 현대 과학은 경험적이었다. 경험적 과학은 과거 관측을 사용하여 미래에 대한 예측을하고 그 결과를 테스트 할 수 있습니다. 티코 브라헤, 16th-century 덴마크의 천문학 자,이 방법으로 천국에 대한 정확하고 포괄적 인 관측을 할 수있었습니다.

그러나 현대 과학은 이론적이다. 이론 과학은 또한 예측을하지만, 이전 관찰 결과가 아닌 수학적 모델로부터 파생됩니다. Isaac Newton의 운동 법칙을 생각해보십시오. 중력의 역 제곱 법칙.

예를 들어 태양 주변의 지구 궤도를 설명하는 방정식이 있습니다. 이 방정식을 사용하여 특정 변수를 연결하고 솔루션 변경 방법을 볼 수있는 컴퓨터 모델을 구축 할 수 있습니다. 그 날짜에 미래의 날짜를 연결하고 지구의 위치를 ​​읽을 수 있습니다. 당신은 또한 같은 프로그램을 사용하여 다른 행성계를 모델링 할 수 있습니다 - 그것은 모두 동일한 수학에 기초합니다. 당신이해야 할 일은 다른 대중과 관련된 신체의 다양한 다른 속성을 연결하는 것입니다.


내면의 구독 그래픽


그러한 수학 방정식은 이용 가능할 때 훌륭하지만 종종 그렇지 않습니다. 예를 들어, 우리는 소위 "삼체 문제"는 달, 지구, 태양과 같은 중력에 의해 서로 궤도를 돌고 서로 영향을 미치는 세 개의 몸체를 묘사합니다.

현재 과학의 대부분은 훨씬 더 복잡한 시스템을 다루며 유사하게 정확한 해결책이 부족합니다. 이러한 모델은 시스템이 한 순간에서 다음 순간으로 어떻게 변하는지를 "계산"해야합니다. 그러나 이런 방식으로 진화를 "시뮬레이션"하는 것 이외에는 미래의 어떤 시점에서 정확한 상태를 결정할 방법이 없습니다. 일기 예보는 친숙한 예입니다. 1950에서 컴퓨터가 등장 할 때까지 실제 날씨보다 더 빨리 미래 날씨를 예측하는 것은 불가능했습니다.

현재 과학은 일반적으로 복잡한 시스템을 설명하는 수학적 모델을 고안 한 다음이를 계산 시뮬레이션으로 바꾸고 시뮬레이션을 실행하여 모델의 유효성을 검증합니다.

모델링이 실패 할 때

모델링은 과학 분야 전반에 걸쳐 사용됩니다. 천체 물리학과 기후 예측 생물 정보학 및 경제학 하지만 거기에는 논쟁 증가 이 과학은 복제를 통해 검증하기가 어렵다는 사실에 대해

단순히 단어로 실험 방법을 설명하는 것으로 충분하지 않습니다. 이는 영어와 같은 자연어가 계산을 정확하게 설명하기에는 너무 애매하기 때문입니다. 결국 프로그래머가 프로그래밍 언어를 사용하는 이유가 있습니다. 소프트웨어 개발에서 가장 큰 과제 중 하나는 모호한 요구 사항을 정확한 행동 사양으로 변환하는 것입니다.

인간 - 심지어 과학자 -는 모두 오류가 있습니다. 어떤 정보라도 프로그램으로 변환하면 거의 항상 버그가 발생합니다. 예를 들어, 많은 과학자들은 스프레드 시트와 같은 데이터 탐색 도구에 의존합니다. 스프레드 시트는 사용 용이성과 견고성을 위해 설계되지 않았습니다. 경고를받지 않고 스프레드 시트에서 잘못된 셀 범위를 간단하게 요약하는 것은 매우 쉽습니다. 이것은 방법 론적 결함 미국 공화당이 긴축 정책을 근거로 사용했던 논문에서

유사하게 a 최근의 연구 엔론 (Enron)에 대한 조사에서 공개 된 15,770 스프레드 시트에는 적어도 하나의 수식이 포함 된 스프레드 시트의 24 %에 빈 셀을 추가하는 것과 같은 명백한 버그가 있다는 것을 보여줍니다.

자연 과학에서 화성 기후 옵저버, 화성 기후를 연구하기 위해 1998에서 우주 탐사선 (Space Probe)을 시작한 지 1 년이 지났습니다. 왜냐하면 제어 소프트웨어의 한 부분이 실수로 미터 단위 대신 제국을 사용했기 때문입니다. 또 다른 연구 동일한 데이터 세트, 알고리즘 및 프로그래밍 언어를 사용하여 동일한 지구 과학 실험을 9 회 독립적으로 구현 한 결과, 얻은 결과는 거의 일치하지 않았습니다.

What’s more, even if the reader of a research paper can successfully interpret the writer’s precise meaning, and then faultlessly translate it into a program, there are still pitfalls in executing it. One particularly tricky class of problems arises from how computers handle numbers: although they can manipulate integers such as 42 and -17 with perfect accuracy, standard techniques for manipulating real numbers such ??3.14 and ?2?1.414 permit only approximate accuracy. These approximations mean that apparently equivalent ways of computing the same value can 다른 결과를 내다.

그래서, 무엇을 할 수 있습니까? 전문 소프트웨어 개발자조차도 올바른 소프트웨어를 안정적으로 생산할 수 없다면 과학자와 같은 아마추어 프로그래머에게는 어떤 희망이 있을까요?

한 가지 작업은 "도메인 별"프로그래밍 언어를 설계하기위한 도구를 제작하는 것입니다. 각 언어는 경제 시장에서 에이전트의 행동이나 세포를 통한 약물 확산과 같은 특정 클래스의 문제에 맞춰졌습니다. 이는 전문가가 범용 프로그래밍 언어에서 간접적으로 코드를 인코딩 할 필요없이 친숙한 용어로 직접 계산을 설명하는 것을 훨씬 쉽게 만듭니다.

두 번째 접근법은 프로그램에 대해보다 표현력이 있지만 사용자 친화적 인 "유형 시스템"을 설계하고자합니다. 스프레드 시트의 빈 셀이나 다른 단위로 값을 혼합하는 것과 같은 "어리석은"오류를 쉽게 잡을 수 있습니다. 그것은 모든 논리 오류를 배제 할 수는 없지만. 세 번째 행은 근사 문제를 피하면서 정확한 산술을위한 사용 가능한 코드 라이브러리를 개발하는 것입니다.

이러한 접근법이 앞으로 문제를 해결하거나 적어도 일부 위험을 제거 할 수있는 모든 기회가 있습니다. 결국 세계는 과학을 필요로하고 과학자들은 컴퓨터가 필요합니다. 곧 변경 될 가능성은 거의 없습니다.

저자에 관하여

제레미 기븐 스 (Jeremy Gibbons), 옥스포드 대학 (University of Oxford) 컴퓨팅 교수. 프로그래밍 언어 연구 주제의 대표.

이 문서는 원래 대화에 등장

관련 도서 :

at 이너셀프 마켓과 아마존