실행 가능한 요리법을 제안하는 알고리즘을 고안하는 방법은 무엇입니까?


15

나는 한때 내 요리에서 요리 레시피를 제안하는 알고리즘을 만든 베테랑을 가졌습니다. 처음에는 모든 종류의 미친 요리법이 나올 것입니다. 그런 다음 그녀는 실제 요리법으로 요리 알고리즘을 훈련시키고 결국에는 아주 좋은 요리법을 제안합니다.

나는 그녀가 Bayes Theorem 또는 Clustering과 관련된 것을 사용했다고 생각하지만 그녀는 오랫동안 사라졌으며 알고리즘도 마찬가지입니다. 나는 인터넷을 검색했지만 요리 레시피를 찾으면 어떤 종류의 결과도 얻지 만 내가 찾고있는 것은 아닙니다. 그래서 내 질문은 :

(고정 레시피 데이터베이스를 사용하지 않고) 실현 가능한 레시피를 (임의로) 제안하는 알고리즘을 고안하는 데 어떤 기술을 사용할 수 있습니까?

왜 요리 알고리즘을 찾고 귀찮게합니까? 글쎄, 그것은 기본 개념의 실제 적용의 아주 좋은 예였으며, 그러한 알고리즘은 실제 세계에 더 가까운 다른 설정에서 유용 할 수 있습니다.


1
다양한 유형의 진화 알고리즘을
Henry

7
... 또는 가벼운 구호를 위해 xkcd에서
Henry

2
@ 헨리 : 그리고 어떤 기능을 피트니스에 사용 하시겠습니까? 이것이 질문의 요점입니다!
Raphael

1
마감 투표를 한 사람이 투표의 이유를 설명 할 수 있습니까? 이유를 밝히지 않고 닫는 투표는 OP가 질문을 개선하는 데 도움이되지 않습니다.
Alex ten Brink

1
의견은 질문 자체보다 이국적 인 것처럼 보입니다.
Oeufcoque Penteano

답변:


4

흠, Bayes Theorem을 사용하여 오래된 요리법으로 새로운 요리법을 만듭니다. 먼저 알고리즘이 이해하는 형태로 성분을 분리하기를 원한다고 생각합니다 (NLP를 사용하고 있는지 또는 수동으로 데이터를 직접 입력하는 경우 여기 또는 거기에 없습니다). .

나는 이와 같은 것을 구상한다.

시험 데이터 분석. 이제 우리는 각 재료가 다른 재료와 함께 어떤 양으로 일어날 지 레시피와 확률 목록을 가지고 있습니다. 이 데이터를 얻은 후에는 프로그램이 임의로 새로운 레시피를 작성하게됩니다. 먼저 알려진 모든 성분의 목록을 순환 한 다음 무작위로 주요 성분을 선택합니다. 거기에서 다른 성분이 주어진 성분의 확률을 사용하여 더 무작위 성분을 던지기 시작합니다. 성분.

새로운 레시피를 만들 때 프로그램에 다음과 같은 정보가 제공 될 수 있다고 제안 할 수도 있습니다.

잘하면 이것은 약간 도움이됩니다.


3

거의 2000 가지 레시피에 대한 미국 중심의 광범위한 데이터 세트에 대해서는 군대 레시피 서비스를 볼 수 있습니다. 이것은 귀하의 질문에 대한 답변은 아니지만 실제 교육 데이터를 제공합니다.

문제에 대한 요구 사항은 대부분의 사람들에게 분명히 표현하기 어려울 수 있으며 선택한 접근 방식은 암시 적으로 제안한 방식으로 체력을 조정하게 될 것입니다. geenral의 음식은 매우 문화에 따라 다르며 접근 방식은 광범위한 조정 없이는 매우 나빠질 수 있습니다.

이것은 또한 재료 목록 이상의 것을 준비하기 위해 실질적인 의미와 영역 지식이 필요합니다. 결국, 웨이퍼, 카페 오레 및 크루아상 및 티라 미스가 함유 된 커피 맛 아이스크림은 구별 할 수 없습니다.


"이것은 당신의 질문에 대답하지 않습니다"-정확히, 그래서 의견이어야합니다. 나는 당신이 아직 언급 할 수없는 것을 본다. 전환을 신고했습니다.
Raphael

@Raphael : 너무 길기 때문에 이것을 변환하지 마십시오. 이상적인 답변은 아니지만-전체적으로 문제를 해결하려고 시도합니다. 도움이되지 않는다면 아래로 투표하십시오. Pekka는 이것이 새로운 요리 예술의 가장 생산적인 소스는 아니지만 흥미롭고 관련성있는 문제입니다. 그러한 알고리즘을 개발하는 구체적인 내용을 논의하기 위해 답을 넓힐 수 있다면 더 받아 들일 수 있습니다.
Shog9

3

레시피 생성은 일반적으로 사례 기반 추론 시스템의 예제 애플리케이션으로 사용됩니다. 위키 백과 페이지 에서 예로 사용되기도합니다 . "case based reasoning recipes"에 대한 Google 검색은 수많은 결과를 산출합니다.


1

당신이 찾고있는 알고리즘의 클래스는 산적입니다. 일반적으로 분류 문제의 탐색 부분을 처리하는 데 사용됩니다.

기본 접근 방식은 레시피를 제한된 구성 요소 백 (최대 0이 아닌 k 값을 갖는 부울 벡터)으로 표시하고 LinUCB를 사용하여 구성 요소 세트를 선택하는 것입니다. 그런 다음 피드백은 '좋아요'또는 '싫어요'입니다. 물론 베이지안 인 경우 Trueskill (Adpredictor 변형 사용)을 사용하는 것이 좋습니다.

덜 기본적인 것은 선형 분리 대신 커널을 사용해야합니다. 커널 ucb가 해당 부분을 처리하는 데 도움을 줄 수 있습니다. 그러나 언젠가는 다른 기본 맛 사이의 균형을 이루고 싶기 때문에 영양소의 화학 성분에주의를 기울이는 것이 유용 할 것이라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.