Attualmente sto risolvendo un problema di ottimizzazione del mio progetto, solo per sperimentare e imparare qualcosa.
Ecco il concetto: Ho un utente che inizia a casa. L'obiettivo di questo utente è raccogliere alcuni oggetti da un negozio e portare questi oggetti a un consumatore finale. Solo per qualche difficoltà in più, a seconda del tipo di oggetto, l'utente deve fermarsi su un altro negozio prima di andare al consumatore finale.
Quello che mi interessa è calcolare il piano decisionale ottimale per questo utente, basato sulla riduzione dei tempi di consegna.
In una prima fase presumo che il numero di articoli da consegnare sia corretto (diciamo che lo store produce solo 5 oggetti in un giorno e l'utente impiega sempre meno di un giorno per tutte le consegne) e so anche che tutte le variabili temporali (tempo impiegato da casa a negozio iniziale, negozio iniziale a cliente finale, ecc. ecc.)
Perché sto cercando aiuto: Con tutte queste informazioni sono perfettamente in grado di creare un albero in cui i nodi sono i luoghi che l'utente deve visitare e le connessioni sono il tempo necessario per viaggiare tra quelle posizioni. Con quello potrei passare attraverso ogni ramo aggiungendo i costi e mantenendo il valore minimo. Il mio problema è che questo risolverebbe solo questo specifico caso d'uso e sarebbe difficile generalizzare, specialmente se la quantità dell'articolo cambia da fisso a input continuamente alimentato.
Domande:
-
Ho ragione nell'approccio ad albero? In caso contrario, potresti proporne una nuova e i motivi?
-
Ho cercato Google per alcuni giorni e ovviamente non voglio reinventare la ruota. Ho letto sulla teoria dei grafi e sugli algoritmi delle decisioni, ma nulla di ciò che ho trovato si riferisce al mio scenario. Sto cercando parole chiave completamente sbagliate qui o non sto andando in un percorso corretto?
-
Ho pensato che l'implementazione di ID3 o C4.5 sarebbe stata una buona scommessa, ma dopo una comprensione più approfondita di quegli algoritmi sembra che non lo siano. Vedo assolutamente l'uso di un algoritmo di generatore di alberi come ID3, ma quale sarebbe il set di dati di addestramento per questo caso d'uso, ad esempio? Come potrei fare per creare il mio set di dati di formazione per generare l'albero e quale sarebbe il mio set di dati di prova?
-
Tutti gli algoritmi che ho letto sull'implementazione dell'albero decisionale si concentrano principalmente sulla creazione dell'albero e sulla sua eliminazione. Ma nessuno di loro sembra effettivamente iterare l'albero e risolverlo nel modo che voglio. Esistono algoritmi già sviluppati per questa funzionalità o è l'iteratore di "forza bruta" che ho proposto prima della migliore soluzione per problemi simili a questo?