Aiuto per semplificare / modellare il processo decisionale complesso (se, poi, altri scenari)

0

Mi trovo in una situazione in cui devo programmare un servizio che può determinare se due oggetti in un enorme database sono gli stessi. Per semplicità, diciamo che sono auto usate e voglio determinare se sono esattamente le stesse, in base a vari attributi, ad es. marca, nome del modello, anno, milage, prezzo, colore ecc. Il problema è che alcuni degli attributi sono significativamente più significativi / critici / importanti di altri, ad es. il nome del marchio / modello deve essere lo stesso, in cui il venditore potrebbe aver erroneamente inserito la milage in modo leggermente diverso. Inoltre, alcune volte informazioni come il colore potrebbero anche essere state lasciate fuori, e quindi devo ricorrere a meno informazioni "identificative univoche" come per esempio la dimensione del motore. A prescindere dal peso / importanza diretti di ciascun attributo, è implicata un'altra dimensione di complessità: l'importanza degli attributi varia tra loro. Quindi diciamo per es. che l'auto che sto confrontando con il resto è molto vecchia, poi all'improvviso l'importanza della miliardaria aumenta di per sé poiché è molto più probabile che sia unica tra le auto simili, rispetto a una macchina più giovane. Ciò è ovviamente dovuto al fatto che la dispersione della milage sulle auto più vecchie è molto più ampia di quella delle auto più giovani.

Come puoi immaginare, modellare questo come un sacco di termini se e poi annidati finisce facilmente in un disordine completo, e completamente illeggibile in seguito, e persino difficile da modellare in primo luogo.

Quindi le mie domande sono:

Che cosa potrebbe essere chiamato questo tipo di problema nella programmazione e come affrontarlo? Quali soluzioni / algoritmi potrebbero essere buone soluzioni? Riferimenti, collegamenti? Buona lettura sull'argomento?

    
posta Niels Kristian 06.02.2013 - 00:30
fonte

2 risposte

1

Fondamentalmente, stai definendo un framework per un "euristico" che verrà specificato dal cliente per alimentare un "motore di ricerca".

Prova a utilizzare una metrica di "pertinenza" numerica e pesa vari attributi per determinare quanto una corrispondenza o una mancata influenza la pertinenza. Alcuni di questi, come marca / modello, saranno statici. Altri, come la gamma di miglia in base all'anno, potrebbero essere dinamici (più vecchia è la macchina, più lontano dalla distanza definita dall'utente il chilometraggio potrebbe cadere prima che non sia una buona corrispondenza). Alcuni o tutti questi potrebbero essere specificati dall'utente quanto all'importanza (qualche utente bizzarro potrebbe desiderare un'automobile, qualsiasi marca / modello / anno / colore / prezzo, con esattamente 111.111 miglia su di esso e non considera una macchina con un miglio in più o in meno, se vuoi umorizzare questo tipo di strambo, puoi consentire all'utente di specificare che questo specifico chilometraggio è di importanza "critica".

È quindi possibile collegare questi dati come condizioni di una clausola WHERE SQL, usando se i dati corrispondono ai criteri e l'importanza relativa di ciascun criterio per calcolare la "rilevanza" del record alla query e mostrare solo le auto che soddisfare una soglia minima di rilevanza (diciamo 75% o superiore, anche questa può essere configurabile dall'utente, quindi se l'utente pensa di non ottenere risultati sufficienti può mostrare più "valori anomali").

    
risposta data 06.02.2013 - 04:19
fonte
0

Sembra che tu sia fondamentalmente alla ricerca di un sistema esperto. Un sistema esperto viene spesso utilizzato per classificare gli oggetti, confrontandoli con criteri specifici. Puoi impostare il tuo sistema esperto fino a classificare le auto in base ai tuoi criteri (chilometraggio, anno, colore e così via), e quindi verificare se ci sono altre auto nella tua collezione con le stesse caratteristiche. In caso contrario, ne crei una nuova, altrimenti potresti generare un errore o semplicemente ignorare i nuovi dati.

    
risposta data 06.02.2013 - 17:14
fonte

Leggi altre domande sui tag