Ho cercato di trovare un buon modo per risolvere il seguente problema, ma non sono sicuro di come inquadrarlo. Penso che potrebbero esserci soluzioni relativamente conosciute con cui non ho familiarità, dal momento che non ho molta conoscenza degli algoritmi. Come potrei avvicinarmi a questo?
Esempio di problema:
C'è uno stato iniziale A conosciuto e uno stato terminale B conosciuto. Esiste una sequenza nota di (una grande quantità di) punti che portano da A a B . Mi piacerebbe trovare un numero minimo / piccolo di punti che descrivono il percorso da A a B . Posso testare qualsiasi sequenza di punti sia che raggiunga B usando quello, ma se non lo fa non ho una stima di quanto sia vicino a raggiungere B . Fondamentalmente sto cercando di trovare i punti che sono essenziali per arrivare a B , ma non saprò se sono sufficienti finché il percorso non è completo.
Quello che ho trovato finora:
Il problema appare un po 'simile alla semplificazione della polilinea, e una opzione sarebbe l'algoritmo Ramer Douglas Peucker . Non penso che funzionerà bene per il mio problema, perché non voglio necessariamente seguire i punti non essenziali sul percorso (che possono essere valori anomali o inutili).
La soluzione che mi è venuta in mente mi sembra un po 'avida e amp; ricerca binaria:
- Seleziona il punto centrale C tra A e B e scarta tutti i punti tra A e C .
- Verifica se questo percorso raggiunge B .
- Se B non può essere raggiunto, c'è un punto essenziale tra A e C che abbiamo perso, quindi scegli il punto centrale D tra A e C e percorso di test con punti tra A e D scartati.
Se B può essere raggiunto, potremmo essere in grado di scartare il punto C e alcuni punti successivi, quindi scegli D tra C e B e scartare i punti fino a D . - Fai questo finché non identificato un punto D più lontano da A che porta ancora a B se tutti i punti tra A e D sono scartati.
- Inizia questa ricerca, ora a partire da D invece di A finché non sono stati identificati tutti i punti essenziali
Altri pensieri:
Potrei essere in grado di fornire una stima di "similarità" per lo stato terminale B1 che è raggiunto da qualche punto C rispetto allo stato finale target B . Fornirebbe una più ampia varietà di algoritmi applicabili?