Cosa voglio rappresentare
Supponiamo di avere diversi schemi del seguente tipo:
È un albero su cui le posizioni degli scoiattoli sono rappresentate da un punto blu. Il numero di biforcazioni differisce da un albero all'altro, il numero di scoiattoli varia da un albero all'altro, le posizioni degli scoiattoli variano (e sono su una scala continua), tutti gli alberi non sono necessariamente simmetrici (a differenza dell'immagine) e la lunghezza dei rami è diversa (nella figura la lunghezza dei secondi rami sono tutti uguali, le lunghezze dei terzi rami sono tutte uguali.) Questo non è necessariamente sempre il caso).
Il problema
Sto cercando di descrivere questi alberi con i numeri in modo da poter giocare con questi numeri e calcolare facilmente la distanza tra due scoiattoli (seguendo i rami, non saltando), calcola la distanza tra uno scoiattolo e il terreno (il fondo del tronco) o calcolare la densità degli scoiattoli per ramo.
Gli angoli tra i rami non contano e i rami non hanno larghezza (sono solo linee). Le informazioni di cui ho bisogno sono la lunghezza dei rami (su una scala continua), le posizioni degli scoiattoli (su una scala continua) rispetto al loro ramo, il numero di biforcazioni e le posizioni dei rami rispetto ad altri rami (se uno ramo è collegato a un altro).
Le mie (molto) soluzioni povere
Un modo per descrivere questo albero è di digitalizzarlo. Potrei creare un grande array con 0
s ovunque non ci sia nulla, 1
s ovunque ci sia un ramo e un 2
ovunque ci sia uno scoiattolo (e un ramo necessariamente, nessun scoiattolo volante sull'immagine!). Sarebbe una soluzione, ma vorrei array molto grandi e non è molto utile dedurre cose come la distanza media tra due scoiattoli. Inoltre, perdiamo precisione sulle posizioni degli scoiattoli e sulle lunghezze dei rami
Un'altra soluzione sarebbe quella di avere due serie di vettori e un set di punti. La prima serie di vettori descrive le posizioni di ciascun scoiattolo rispetto all'angolo in basso a sinistra, un'altra serie di vettori definisce la lunghezza e la direzione (anche se non abbiamo bisogno direttamente di queste informazioni) di ciascun ramo e l'insieme di punti indica dove i punti di partenza dei vettori che descrivono i rami. Non sembra davvero una buona idea; è troppo descrittivo (troppe informazioni) e non è molto utile per fare il tipo di calcoli che devo eseguire in seguito.
Mi sento come se fossi concentrato troppo sull'immagine e ho difficoltà a capire come le informazioni di cui ho bisogno potrebbero essere codificate / memorizzate. Puoi aiutarmi con quello?