Supponiamo Ho le seguenti categorie (con i loro valori possibili):regole di corrispondenza dato un input (algoritmo)
animal: any, cat, dog
color: any, white, black, gray
gender: any, male, female
[...]
o più in generale ...
category: <array of values>
(1) Diciamo Ho una serie di regole configurabili come:
when animal is any, color is gray, gender is male, call x
when animal is dog, color is gray, gender is male, call y
when animal is any, color is any, gender is any, call z
[...]
(2) E alcuni valori di input.
D. Esiste un algoritmo che risolva il problema di trovare una regola di corrispondenza (con una priorità data alla regola più specifica trovata) in base all'input fornito?
Es.1:
input (animal:dog, color:gray, gender:male)
sarebbe chiamare "y"
Es.2:
input (color:gray, gender:female)
sarebbe chiamare "z"
è la più idonea modo per farlo è costruire un albero di ricerca in base alle regole (ogni livello dell'albero è una categoria)?
piace:
- any animal
- any color
- any gender => z
- gray
- male => x
- dog
- gray
- male => y
C'è un modo migliore di farlo?
Grazie!
cosa vuoi fare per le cravatte, cioè se le regole sono qualsiasi, grigio, femmina e cane, grigio, qualsiasi dato input (colore: grigio) cosa dovrebbe fare? – hatchet
qual'è la definizione di "più specifico"? È che le categorie hanno un ordine di specificità, o è il conteggio delle corrispondenze di categoria che cosa determina la regola più specifica? IOW, che è più specifico, abbinando cane, qualsiasi, qualsiasi o qualsiasi, grigio, femmina? – hatchet
@hatchet: il conteggio della corrispondenza della categoria (la regola che ha meno "qualsiasi" in esso) –