나무와 관련된 질문이 있습니다. 나는 "자동차"같은 주제에 대해 약 100 문장을 가지고 있습니다. 그 문장은 기본적으로 자동차에 대해 이야기합니다. 사용자가 검색어를 제출하면 "엔진"과 "기름"이라는 단어 사이의 단어 링크 조합을 모두 찾습니다. " 나는 "엔진"과 "기름"이 문장에서 유사한 단어의 임의의 수만큼 연결되도록 가능한 모든 단어 링크를 찾고 싶다.모든 조합 트리 알고리즘
예를 들어.
- 엔진이 뜨거울 때 실행 중입니다.
- 자동차에 엔진이 있습니다.
- 자동차 오일을 사용하십시오.
이 경우 대답은 엔진 -> 자동차 - 오일 (3 단어 조합)입니다. 그리고 나는 가능한 모든 조합을 찾아 결국 "엔진"과 "오일"이 서로 연결되도록하고 싶습니다. 최단 경로 또는 최장 경로는 아니지만 가능한 모든 경로가 모든 방향과 단어로 실행됩니다. 물론 경로가 유사하지 않은 한 "엔진"과 "오일"에 도달하는 단어 조합이 1,000 개일 수도 있습니다.
이렇게하는 방법이 있습니까? 나는 빵을 먼저 사용하려고했지만 조금 까다 롭습니다. 예를 들어 조합이 가능할 수 있습니다.
- 엔진 -> 자동차 -> 실행 -> 스톱 -> 오일
- 엔진 -> 자동차 -> 오일
- 엔진 ->이 빠른> BRAKE-> 오일
사람이 수 이걸 도와주세요. 여기서 논리와 아이디어는 무엇입니까? 이미 방문한 단어는 무시할 수 없습니다. 알고리즘을 바로 멈추고 모든 링크를 제공하지 않기 때문입니다.
도와주세요.
감사합니다.
fa323
당신은 확실히 사이클을 발견 할 것입니다 ... 당신은 그들과 무엇을하고 싶습니까? –
나무에서 사이클을 발견하지 못할 것입니다. –
하지만 이것은 나무가 아닙니다. 일반 그래프입니다 – ltjax