algorithm

모두의 알고리즘 : MISSION 2(범용성/정당성/결정성)

sundefined 2021. 12. 3.

모두의 알고리즘 with 자바스크립트에 담긴 내용을 기초로 하여 적는 글.

<모두의 알고리즘  with 자바스크립트 : MISSION 2>

 

 알고리즘이 만족해야 하는 조건 첫 번째 : 범용성, 정당성, 결정성 (첫 번째 조건에서 3개나 소개해주는 꽤나 무시무시한 책)

 첫 번째 글에서 언급했듯이 요리 레시피도 알고리즘 중 하나이다. 하지만 정확하게는 알고리즘이 아니라고 했는데, 이는 범용성에 위배되는 알고리즘이기 때문이다.

 캠핑을 떠난 두 사람이 한 냄비에 라면을 끓인다고 가정해보자. 살짝 꼬들꼬들한 면을 '익었다'라고 생각하는 사람이 있는 반면 살짝 퍼진 면을 '익었다'라고 생각하는 사람도 있다. 이 두 사람이 같이 라면을 끓인다면 분명 서로의 >라면 끓이기 알고리즘<을 의심할 것이다. '야~~~ 너 진짜 먹을 줄 모르는구나~? 인생 헛살았네;' 라면서 말이다. 이처럼 알고리즘을 실행하는 사람마다 해석의 여지가 있다면 그것은 알고리즘이라고 볼 수 없다.

 인간 계산기 ISTJ인 우리집 실세 경이, 26년의 경력을 자랑하는 베테랑 어머니답게 그는 나름의 훈육 알고리즘을 갖고 있다. 하지만 완벽한 ISTJ인 경이의 훈육 알고리즘에도 정당성에 위배되는 경우가 있다. 경이의 훈육 알고리즘에 따르면 집 구성원이 생활공간을 어지르는 행위는 바로 훈육으로 이어진다. 하지만 우리집 고양이 우쭈쭈가 집을 어지르는 행위를 저질렀을 때, 경이의 훈육 알고리즘은 훈육 대신 애정으로 연결된다. 무슨 잘못을 해도 애정으로 연결되는 것이다! 이는 엄연히 정당성에 위배되는 알고리즘이지만 우쭈쭈는 정말 늘 잘못이 없기 때문에 딱히 불만은 없다.

 자칫 정당성과 헷갈릴 수 있는 알고리즘의 결정성은 같은 값을 입력해보아야만 판단이 가능하다. 앞선 정당성 위배 사례에서 보았듯이 본인 / 우쭈쭈처럼 다른 주체의 행위가 아니라 동일 주체의 동일 행위에 대한 입력에 같은 결과를 내놓아야 결정성에 위배되지 않는 알고리즘이라는 것이다. 카펫에 음료수를 엎질렀을 때, 사정없이 냅다 혼나는 행위와 마침 카펫을 세탁할 때가 되어 덜 혼나는 행위는 같은 입력값임에도 다른 결과를 도출했기 때문에 결정성에 위배된다고 볼 수 있는 것이다.

댓글