Jak na to

Myšlenka řešení:

  • Zmapovat vztahy mezi slovy v podobě neorientovaného grafu.
  • Spustit třeba BFS v tom grafu z každého uzlu.
  1. Vztah mezi dvěma slovy existuje, pokud prováděním u jednoho slova nejvíc L operací (přidání, odebrání jednoho znaku a substituce jednoho znaku na druhý) dostanu druhé slovo. Tohle je přesně Levenshteinova vzdálenost (LD). K vytvoření grafu stačí tedy spočítat LD mezi každými 2 slovy (uzly). Je-li LD mezi slovy W1 a W2 < = L, pak existuje hrana mezi nimi.
  2. Po vytvoření grafu pak stačí spustit BFS z každého uzlu. V každém kroku BFS budeme pamatovat vzdálenost. Zde vzdálenost je v podstatě počet větví stromu, který mi vytvoří BFS. Tedy na začátku to bude 0 u rootu a pak 1 v druhé větvi, pak 2 v třetí atd. Stačí potom pamatovat nejdelší dosud spočítanou vzdálenost - a to je řešení, které zobrazit po spuštěním BFS z každého uzlu.
courses/a4m33pal/uloha6-2014.txt · Poslední úprava: 2025/01/03 18:28 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0