Sto cercando un modo per trovare il percorso più breve attraverso un negozio di alimentari, visitando un elenco di località (lista della spesa). Il percorso dovrebbe iniziare in una posizione di partenza specificata e terminare a più posizioni finali (ci sono più contatori di cassa). Inoltre, ho alcuni vincoli predefiniti sul percorso, come "l'articolo x sulla lista della spesa deve essere l'ultimo, il penultimo o il terzo ultimo elemento sul percorso". Esiste una funzione che restituirà true o false per un determinato percorso. Infine, questo deve essere calcolato con potenza CPU limitata (su uno smartphone) e entro un secondo circa. Se questo non è possibile, allora anche un'approssimazione al percorso ottimale è ok.Calcolare il percorso più breve attraverso un negozio di alimentari
È possibile? Finora penso di dover iniziare calcolando la distanza tra ogni elemento della lista usando qualcosa come A * o Dijkstra. Dopo, dovrei trattarlo come il problema del commesso viaggiatore? Perché nel mio problema c'è un nodo iniziale specificato, nodi finali specificati e alcuni vincoli, che non sono nel problema del commesso viaggiatore.
@Bart: vuoi risolvere il TSP ... su uno smartphone ... in un secondo o così. Penso che avrai un momento difficile, a meno che non sia una lista molto corta :) Hai provato un approccio euristico/avido semplice? Poiché la maggior parte dei supermercati ha una distanza euclidea, potrebbe dare una soluzione "abbastanza buona". Inoltre, penso che potrebbe essere più sensato per gli umani vedere il risultato se fai qualcosa, che assomiglia a quello che faremmo in realtà. Potrebbe significare una camminata più lunga di 15 metri, ma credo che la maggior parte degli umani farebbe qualcosa di simile a quanto descritto da ndp. E sii sconcertato se gli fosse stato detto di fare altrimenti. –
Modifica: "Poiché la maggior parte dei supermercati ha una distanza euclidea che potrebbe dare una soluzione" abbastanza buona "dovrebbe leggere" Poiché le distanze nei supermercati soddisfano il triangolo ineq., Potrebbe dare una soluzione "abbastanza buona" –
Grazie. Un percorso imperfetto andrebbe bene, ma sarebbe bello se potesse trovare il percorso ottimale quando il numero di elementi è piccolo e un'approssimazione se il numero di elementi è grande. A proposito, questo è solo un compito teorico, quindi non devo implementare nulla. Sto pensando che forse l'ottimizzazione delle formiche sarebbe buona, dato che posso limitarmi a un certo limite di tempo e ottenere la migliore approssimazione trovata finora. – Bart