Questo è solo qualcosa che mi è venuto in mente da solo, ma sembra un problema divertente e mi ha convinto.Percorso più veloce con accelerazione ai punti
Hai una serie di punti nello spazio bidimensionale, con un punto designato "Inizio" e uno "Fine". Ogni punto ha coordinate (in metri dall'origine), ma anche un "numero di accelerazione" (in metri/secondo di delta-V). Al raggiungimento di un punto (incluso l'inizio), è possibile accelerare fino al numero di accelerazione di quel punto in qualsiasi direzione. Il costo del bordo dipende dalla tua velocità attuale, ma devi anche muoverti nella direzione corretta.
Esiste un algoritmo efficiente per trovare il percorso più veloce fino al punto finale? Non ho trovato niente di meglio di "Prova ogni percorso e verifica i risultati". Gli algoritmi di Djikstra e altri semplici algoritmi non funzionano, perché non si può facilmente dire che un percorso verso un punto intermedio sia migliore o peggiore di un altro, se vi arriva con diverse velocità iniziali.
Se è troppo semplice, cosa succede se aggiungi il requisito che devi fermare al punto finale? (Ad esempio, è necessario avere un valore inferiore al suo valore di accelerazione quando si raggiunge la fine.)
MODIFICA: Per essere chiari, la direzione è importante. Si mantiene un vettore di velocità mentre si attraversa il grafico e l'accelerazione significa aggiungere un vettore ad esso, la cui magnitudine è limitata al numero di accelerazione di quel punto. Ciò significa che ci sono situazioni in cui la costruzione di un'enorme velocità è dannosa, poiché andrai troppo veloce per "indirizzare" verso altri punti preziosi/la tua destinazione.
Dovrai fornire maggiori dettagli. Come funzionerebbe il tuo concetto di "accelerazione"? Riduce tutti i costi dei bordi lungo un percorso con il "numero di accelerazione"? Cosa succede se accumuli "numero di accelerazione" ben oltre i costi di bordo? Introdurre un concetto come "accelerazione" suggerisce che potrebbe essere utile introdurre un'idea corrispondente di attrito/trascinamento, altrimenti si potrebbe finire con una "velocità incontrollata". Finora, non penso che la tua domanda sia abbastanza chiara per noi da formulare una soluzione adeguata, ma penso che sia molto interessante. – lightalchemist
Dubito che ci sia una soluzione analitica a questo problema. Vorrei iniziare risolvendo prima un problema molto più semplice: il percorso più veloce che prende i punti in un dato ordine. (Quel spazio di ricerca ha un numero di dimensioni pari al numero di punti intermedi, e non riesco a vedere un approccio migliore di ricottura.) Una volta che hai quel metodo, puoi creare un Dijkstra modificato. – Beta
@ lightalchemist Con "Accelerazione", intendo "Cambio di velocità". (Quindi, costo di costa = distanza euclidea/velocità, ma permesso solo se stai viaggiando nella direzione giusta ... quindi) La velocità non selezionata va bene (è pensato per essere un puzzle matematico, non una simulazione ... anche se l'ho fatto inizialmente lo immagino per un veicolo spaziale che raccoglie le riserve di carburante, quindi l'attrito non sarebbe ancora una cosa.) –