Per risolvere un algoritmo di routing sotto forma di Problema del Commesso Viaggiatore sono arrivato ad una soluzione "vicino più vicino" filtrando cioè solo le connessioni tra nodi (coordinate x,y) adiacenti.

Più nel dettaglio ho ottenuto un'array bidimensionale di nodi dove la chiave primaria è il nodo di partenza, la chiave secondaria il nodo di destinazione ed il valore il peso dell'arco:

Così, seguendo questo esempio...
Codice PHP:
array ( 
   [
124,106] => Array (
      [
124,110] => 4
      
[128,106] => 4
   
)
   [
124,110] => Array (
      [
124,106] => 4
      
[128,110] => 4
      
[124,114] => 4
   
)
   [
124,114] => Array (
      [
128,114] => 4
      
[124,118] => 4
      
[124,110] => 4
   
)
   [
124,118] => Array (
      [
128,118] => 4
      
[124,114] => 4
   
)
   [
125,102] => Array (
      [
127,100] => 2.8284271247462
   
)
   [
126,122] => Array (
      [
128,123] => 2.2360679774998
   
)

Il nodo [124,106] è collegato ai nodi [124,110] e [128,106].
A sua volta il nodo [124,110] è collegato al nodo sorgente (che dovrà risultare "visitato" e quindi da ignorare) ed ai nodi [128,110] e [124,114] "da visitare".

Ogni "collegamento" (o arco) ha un peso ed il mio scopo è costruire un array multidimensionale e ricorsivo calcolando tutte le possibilità di intersezione e (possibilmente) avente come ultimo valore la somma di tutti gli archi per raggiungerlo.
Codice PHP:
array ( 
    [
124,106] => Array (
        [
124,110] => Array (
            [
128,110] => Array (
            [...]
        )
        [
124,114] => Array (
            [
128,114] => Array (
            [...]
        )
            [
124,118] => Array (
            [...]
        )
            [
124,110] => Array (
            [...] = Array (
                        [...] = 
$somma_degli_archi
                    
)
        )
    (...)

E' fattibile? Da dove inizio?
Anticipatamente grato a chiunque mi potrà esser d'aiuto.

Ste