일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- feynman's restaurant
- 파이썬
- 페이지랭크
- 인페인팅
- 비동기 프로그래밍
- 러스트
- 컴퓨터 보안 키분배
- 머신러닝
- recommender
- 메세지인증코드
- 협업필터링
- Readme image
- Git
- brew 권한
- tcp
- 인공지능
- Hits
- react-cookie
- 자바스크립트 비동기
- 커널생성
- 키분배 알고리즘
- cs231n
- computer vision
- 커널제거
- 프라미스
- image restoration
- 딥러닝
- rust
- pagerank
- 파인만의 식당문제
- Today
- Total
Worth spreading
Feynman's restaurant problem 본문
Left-Leighton, Right-Feynman
Multi armed bandit 위키피디아 글을 보던 중 external link에서 'feynman'을 발견했다.
굉장히 좋아하는 사람이라 반가웠지만 추천시스템글에 왜 물리학자가 링크되지? 라고 생각했다.
어쨌거나 링크를 클릭해 들어가봤다.
Feynman's restaurant problem이라는 제목의 글이었다.
내용은 다음과 같다.
1970년 어느날 리처드 파인만과 랠프 레이턴이 자주 가던 식당에서 메뉴를 고르고 있었다. 메뉴를 고르던 중 둘은 가장 맛있었던 메뉴를 시키는 것과 새로운 메뉴를 시도해 보는 것 중 어떤 것이 더 나은지에 대한 이야기가 나누었고 이 문제를 수학적으로 분석했다.
파인만이 타계한 이후 2002년 마이클 고트립(Michael Gottlieb)이라는 물리학자는 랠프 레이턴에게 이 일화를 전해듣게 된다. 하지만 오랜 시간이 지난 탓인지 랠프 레이턴은 상세한 솔루션들을 기억해내지 못했다.
하지만 이 문제에 관심을 가졌던 마이클 고트립은 그로부터 2년이 지난 2004년, 이 문제를 다음과 같이 수학적으로 정의해 "Feynman's Restaurant Problem" 이라는 이름을 붙이고 솔루션을 제시한다.
Problem.
당신이 식사를 하러 레스토랑에 갔다. 레스토랑에는 N개의 메뉴가 있다. 각 메뉴는 당신의 취향에 따라서 별점이 매겨져 있다. 하지만 지금 당신은 그 점수를 모르는 상태이다.
당신은 먹어보지 않은 메뉴를 먹어볼 때마다 그 메뉴가 지금까지 먹었던 것들 중 가장 맛있는 메뉴인지(가장 별점이 높은지) 아닌지에 대해서만 알 수 있다. 그리고 당신은 가장 맛있었던 메뉴와 먹어보지 않은 메뉴에 중에서만 주문을 할 수 있다.
앞으로 당신은 그 식당에 M번 방문할 것이다.(M≤N) 당신의 목표는 M번 식사의 평균별점을 최대한 높이는 것이다.
M번의 식사에서 새로운 메뉴를 n번, 가장 맛있었던 메뉴를 b번 먹는다고 한다면 n개의 새로운 메뉴를 처음에 차례대로 먹어본 후 베스트 메뉴를 b번 먹는 것의 평균별점이 그렇게 하지 않는 경우보다 항상 높을 것이다.
위와 같은 방법을 따를 때 M과 N에 대한 평균별점을 최대로 높이기 위해서는 새로운 메뉴를 몇번 먹어봐야 할까?
'ABCD > Data mining' 카테고리의 다른 글
Basic Collaborative-Filtering (0) | 2018.07.21 |
---|---|
Pagerank(페이지랭크) (0) | 2018.06.16 |
Matrix Factorization _ Part3 (0) | 2018.06.03 |
Matrix Factorization _ Part 2 (0) | 2018.06.02 |
Matrix Factorization _ Part 1 (0) | 2018.06.02 |