알고리즘 탐색 (강의요약)


알고리즘을 정의하는 하나의 방법은 단계를 하나 하나 밟아가며 직접 만들어보며, 문제를 해결하거나 주어진 일을 수행해 보는 것입니다. 이 섹션의 목적은 알고리즘을 가지고 무엇이 가능한지 아는 것입니다. 아마도 이미 인터넷 정보를 검색할 때나 교통체증시 GPS기반 네비게이션 추천해주는 경로를 볼 때, 알고리즘이 어떤 역할을 하는지 알고 있을 것입니다. 물론 기술 없이도 알고리즘을 만들거나 코딩 작업없이도 알고리즘을 테스트할 수 있지만, 수작업보다 기술을 사용하면 알고리즘의 매우 복잡한 단계를 빠르게 수행하는데 보다 유용합니다.



여행하기

국경을 넘어서 여행하는 가장 효율적인 길을 결정하는 것은 컴퓨터과학자들이 여행판매원 문제(Traveling Salesperson problem)라고 불려지는 도전과제입니다. 여행 경로를 한 가지로 결정하는 것은 별로 어렵지 않습니다. 이 활동에서 각 수도를 이동하는데 자신만의 방법을 찾았을 것입니다. 문제는 짧고 최단거리의 길과 최단 시간이 걸리는 길을 찾는 것입니다. 여행판매원 문제와 그와 비슷한 문제를 탐구했던 무수한 과학적인 노력으로 컴퓨터 네트워킹, 유전학, 경로 설정 분야에 많은 진보를 가져왔습니다. 다음번에 유사한 문제들로 힘들다면 이런 문제해결과정이 재미있는 발견 활동으로 여겨보세요.



시간에 따른 단어

알고리즘이 기술에서 구현되면, 인간이 수작업으로 하는 것보다 빨리 처리할 수 있게 합니다. 데이터가 많으면 많을 수록 이러한 효율은 증가됩니다. 혼자서 수년동안 고통스럽게 연구하거나 여러 사람이 함께 일을 했던 일들을 알고리즘을 사용한 기술로서 쉽게 처리할 수 있는 점은 대단한 발견입니다. 컴퓨터라는 용어의 원래 사용의미는 많은 사람이 함께(com) 모여서 지금은 계산기로 계산할 수 있는 문제를 계산한다(puting)는 말입니다. 엔-그램 뷰어(n-gram viewer)는 많은 양의 데이터를 사용해서 알고리즘을 적용하는 하나의 예입니다. 그 결과 우리 문화에 대한 재미있고, 가끔 유머스러한 통찰을 얻게 됩니다. 보다 많은 사람들이 데이터를 분석하고 정보를 조직한다면, 새로운 상황에 적용가능하고, 과거에 생각지도 못한 우주를 이해하는 수준까지 나아갈 것입니다.



셀룰라 오토마타(세포자동자)

혼돈은 움직일 때 초기 조건에서부터 이후 일정한 규칙에 따라 변하는 하나의 시스템입니다. 셀룰라 오토마타 역시 초기에 살아있는 세포가 이후 진행될 규칙에 따라 극적인 결과를 주는 시스템입니다. 이러한 혼란스러운 시스템은 날씨나 교통 상황에서 볼 수 있습니다. 또한 우주에 관한 학문과 유전학에서도 볼 수 있습니다. 셀룰러 오토마타에 사용된 알고리즘은 매우 간단해서 수학을 좋아하는 사람들은 수년동안 '생 게임'이란 형태로 만들어서 즐기고 있습니다. 기술은 이러한 규칙이 적용되는 결과를 빠르게 볼 수 있게 해주어 많은 세대에 걸친 세포의 변화를 볼 수 있게 합니다. 또한 기술로 수학자들은 알고리즘을 사용해 혼란스러운 조건이 있는 많은 문제들을 실험해볼 수 있습니다.



유전학

농민들은 동물이나 식물의 자손들이 천년 전의 선조와 특질이 같다고 알고 있습니다. 모든 생명체가 유전적 코드 염가를 공유한다는 점이 알려졌을 때, 엄청난 연구할 것들이 생겨났습니다. 기존 연구물에서 나온 통찰들은 돼지나 다른 종들에게 적용되었죠. 인간의 게놈을 이해하는 것과 시간과 문화에 따라 다른 인간의 유전자를 알게됨으로써 의술이 향상 되었습니다. 이 일은 생물학적 종의 하나로서 인간에게 역사적인 입니다. 인간의 DNA는 수천가지의 유전자로 구성되어 있습니다. 각각의 유전자 하나 하나를 연구하려면 평생이 걸릴 정도로 많은 일입니다. 여기서 알고리즘은 빠르게 연구할 수 있도록 해주고 패턴을 찾기위한 샘플을 분석해주며, 돌연변이의 영향이나 치료를 시뮬레이션해줍니다. 인간 모두는 동일하지 않으며 각기 다른 유전자를 가지고 있습니다. 유전학은 우리가 얼마나 특별한 존재임을 이해하게 해주며 인간의 삶이 얼마나 풍성한지 알게 해줍니다.



여러 교과와 다른 상황에서 알고리즘이 어떻게 적용되며 발전시킬 수 있는지 살폈습니다. 이 중 관심을 끄는 것은 무엇이었나요? 알고리즘을 더 적용하고 싶은 영역이 있나요? 그렇다면 이 코스 커뮤니티에 공유해주세요.