HomeWissen Stichwortverzeichnis Tags

Entfernungsabfragen

Einfache Sprache

Def. Entfernungsabfragen

Es muss eine Distanzfunktion $\textrm{dist}$ definiert sein. Die Entfernungsabfragen $RQ(o,\varepsilon)$ gibt für ein Objekt $o$ und eine Distanz $\varepsilon$ alle Objekte zurück, die höchstens $\varepsilon$ entfernt von $o$ sind. Also

$$RQ(o,\varepsilon) = \{q\in\mathcal D\mid\textrm{dist}(q,o)\leq \varepsilon\}\;.$$

Einfachster Algorithmus löst das Problem als Squenzieller Scan. Dabei gibt $\textrm{getObject}(\mathcal D,i)$ das $i$-te Objekt der Datenbank $\mathcal D$ zurück.

	\begin{algorithm}
	\caption{Range query with squential scan}
	\begin{algorithmic}
	\Input $\textrm{Datenbank }\mathcal D, \textrm{Abfragenobjekt }q,\textrm{Entfernung }\varepsilon$
    \Procedure{RQ-SeqScan}{$\mathcal D,q,\varepsilon$}
    \State $r\gets \emptyset$
    \For{$i = 1$ to $n$}
	    \State $c = \mathrm{getObject}(\mathcal D, i)$
		\If{$\textrm{dist}(q,c)\leq\varepsilon$}
			\State $r \gets r\cup c$
        \EndIf	    
    \EndFor
    \return $r$
    \EndProcedure
	\end{algorithmic}
	\end{algorithm}
Home: