Ripristino dell'incorporamento di un punto da un grafico con bordi ponderati per la distanza del punto


10

Supponiamo che io ti dia un grafico non orientato con bordi ponderati e ti dica che ogni nodo corrisponde a un punto nello spazio 3d. Ogni volta che c'è un bordo tra due nodi, il peso del bordo è la distanza tra i punti.

Il tuo obiettivo è ricostruire le posizioni relative dei punti, date solo le distanze disponibili (rappresentate dai pesi dei bordi). Ad esempio, se ti ho dato , allora sai che i punti sono i vertici di un tetraedro. Non sai dove sia rispetto all'origine, o al suo orientamento, o se è stato rispecchiato, ma puoi dire che è un tetraedro.d0,1=d0,2=d0,3=d1,2=d1,3=d2,3=1

In generale, il problema è semplice se ti do tutte le lunghezze del bordo. Scegli arbitrariamente un punto in modo che sia , quindi scegli un punto vicino e posizionalo in , quindi un vicino comune viene triangolato sulla XY piano, quindi un vicino comune finale viene triangolato nel e rompe la simmetria rimanente (supponendo che non si siano scelti punti degenerati). Puoi usare quei quattro punti per triangolare tutti i rimanenti. ( 0 , 0 , 0 ) p 1 ( d 0 , 1 , 0 , 0 ) p 2 p 3 z > 0p0(0,0,0)p1(d0,1,0,0)p2p3z>0

D'altra parte, quando mancano alcune lunghezze dei bordi, potrebbe non essere possibile ripristinare l'incorporamento. Ad esempio, se c'è un vertice che disconnette il grafico quando viene tagliato, i due componenti che separerebbe se rimossi possono oscillare l'uno rispetto all'altro.

Il che solleva le domande:

  • Quanto costa trovare una soluzione?
  • Come si determina se una soluzione è unica, fino alla traduzione / rotazione / mirroring? La connessione 3 è sufficiente? Necessario?
  • Quali condizioni rendono banale il problema?
  • Se non prometto che i pesi del bordo corrispondano effettivamente alla distanza del punto sin 3d, quanto costa determinare se è possibile un incorporamento?

mi sembra un problema di apprendimento automatico ...
vzn

Non ho idea di quale risposta selezionare. Sono tutti buoni in modi non sovrapposti. Il più votato è!
Craig Gidney,

Risposte:


5

Un approccio algoritmico per risolvere questo problema: trattarlo come un insieme di nodi, collegati da molle, quindi lasciarli sistemare / rilassarsi in forma.

Ogni bordo corrisponde a una molla; se si suppone che la distanza tra i punti v e w sia d v , w , allora viene scelta la molla, quindi idealmente vuole essere di lunghezza d v , w (può essere più lunga o più corta, ma questo costa energia). Vogliamo ora risolvere un insieme di posizioni che riducono al minimo l'energia totale. Supponiamo che ogni vertice v sia posizionato nel punto x vR 3 . Quindi l'energia totale di questa disposizione sarà(v,w)vwdv,wdv,wvXvR3

E(X)=Σ(v,w)E(distanza(Xv,Xw)-dv,w)2.

Qui sono indicati i (sono i pesi sui bordi) e vogliamo risolvere per i x v (sono le coordinate dei punti).dv,wXv

Possiamo risolvere un accordo che minimizzi questa energia totale. Questa disposizione fornisce quindi un candidato ragionevole per le posizioni dei punti. Questo è un problema di ottimizzazione e ci sono tecniche standard per risolvere questo tipo di problema di ottimizzazione. Vedi, ad esempio, l'articolo Network Solutions di Erica Klarreich.X

Non credo che ci sia alcuna garanzia che ciò fornirà la soluzione desiderata corretta. È possibile che il problema di ottimizzazione si risolva in un diverso ottimale che non riflette la disposizione effettiva dei punti che stavi cercando. Tuttavia, se il tuo grafico è sufficientemente denso, sospetto che spesso funzioni e ti dia la soluzione desiderata.


Nota a piè di pagina: ovviamente anche nel migliore dei casi possiamo risolvere questo problema fino alla traduzione, alla rotazione e alla riflessione poiché tali trasformazioni conservano tutte le distanze. Pertanto, non puoi aspettarti una soluzione unica, ma potresti sperare che la soluzione sia unica fino alla traduzione, alla rotazione e alla riflessione.


Infine, c'è molto lavoro sull'incorporamento dei grafici nello spazio , riducendo al minimo la distorsione dell'incorporamento. È molto correlato; fondamentalmente stai chiedendo di incorporare una distorsione zero in 2 . Pertanto, anche le tecniche sviluppate in quel contesto potrebbero essere utili per il tuo problema. In genere, quel lavoro si concentra sulla ricerca di un incorporamento a bassa distorsione, perché quel lavoro si concentra sul caso in cui non esiste un incorporamento perfetto che fa corrispondere esattamente tutte le distanze, quindi cerca una soluzione a bassa distorsione (quella in cui la maggior parte delle distanze dal bordo abbinarsi piuttosto bene) - in modo che il lavoro si concentri su un problema leggermente diverso. Tuttavia, è possibile che le loro tecniche possano essere efficaci anche nella tua situazione. Vale la pena provarlo.22


4

Il problema è NP-Complete . Le posizioni dei punti sono un buon certificato, quindi è in NP, e puoi codificare i circuiti nel "c'è un insieme soddisfacente di punti?" problema.

Riduzione dalla valutazione del circuito all'inclusione a distanza

Ridurremo la valutazione del circuito in un problema di inclusione a distanza creando un sistema di coordinate, inserendo bit logici, collegando i bit in modo uguale e creando widget per porte NOT e AND.

  1. Coordinate . Abbiamo bisogno di un qualche tipo di sistema di coordinate con cui possiamo posizionare i punti. Fallo creando un tetraedro di punti "base". Aggiungi quattro punti tutti dichiarati distanti tra loro . Ciò forza la forma di quei quattro punti in un tetraedro. Possiamo posizionare altri punti rispetto al nostro sistema di coordinate tetraedro specificando la loro distanza da ciascuno dei quattro angoli della base. Il tetraedro può essere tradotto, ruotato e riflesso, ma la stessa cosa accadrà anche in tutti gli altri punti.1

  2. Bit . Per fare un po ', posizioniamo un triangolo di punti rispetto al tetraedro di base. Il triangolo normale deve puntare verso l'alto lungo l'asse Z, in modo che il triangolo sia parallelo al piano XY (in coordinate tetraedro). Anche i suoi bordi devono avere lunghezza . Fatto ciò, aggiungiamo un "valore" punto v , specificato per essere una distanza di 1 dagli altri tre. Noi non colleghiamo v alla base del sistema di coordinate. Questo gli dà due posizioni possibili: centrato 11v1v sopra o sotto il triangolo, come l'angolo finale di un tetraedro. Il bit è ON se il punto è sopra il triangolo e OFF se è sotto.13

  3. Fili . Possiamo forzare due bit per essere uguali dicendo che la distanza tra i loro punti valore è uguale alla distanza tra i centri dei loro triangoli. C'è un'eccezione: quando l'angolo superiore o inferiore di uno dei bit si allinea esattamente con il piano centrale dell'altro. In tal caso, per prima cosa utilizziamo un filo per spostare verticalmente uno dei bit.

  4. NON . Possiamo ottenere la negazione di un po 'aggiungendo un secondo valore valore allo stesso triangolo, ma richiedendo che w sia una distanza di 2ww dav. Questo costringewad assumere la posizione opposta av, rispetto al triangolo, dandoci un po 'con il valore opposto.23vwv

  5. IMPLIE . Il problema equidistante che abbiamo dovuto aggirare con i fili è in realtà abbastanza utile. Quando i bit si allineano in quel modo, che possiamo forzare con un filo verticale, quello superiore implica quello inferiore. Se quello più alto è vero, solo la parte superiore di quello inferiore è la giusta distanza. Se quello superiore è falso, sia la parte superiore che quella inferiore sono alla giusta distanza.

  6. E . Per rendere un bit uguale a A AND B , abbiamo bisogno di due implicazioni e di un widget per forzare l'uguaglianza quando A e B concordano. Le implicazioni sono solo CCUNBUNB e CCUN . Per creare il widget, spostiamo A e B verticalmente in modo che siano sullo stesso livello e una distanza 2CBUNB parte, quindi spostiamoCper essere equidistanti tra di loro. Aggiungiamo quindi un puntoSAeSBa distanza23CSUNSB daipunti di valore diAeBrispettivamente, e forzare la distanza traSAeSBa essere2-123UNBSUNSB . Aggiungiamo anche un puntoSCuna distanza2+13SC siaSAeSB. Questo crea una catena trai punti valore diAeB, conSCal centro della catena. QuandoAB, la catena è allungata al limite eSCè al centro deltriangolodiC. QuandoA=Bpubblicitari le catene sono costretti ad andare in direzioni opposte esatti,spingendoal limite e sistemazioneSCsuCpunto valore s' uguale adA. Per forzareC2+123SUNSBUNBSCUNBSCCUN=BSCCUNCvalore di punto, inseriamo un punto una distanza 1SD dalpunto di valore diSCeC. Questo non forzaCpunto valore s' quandoAB, ma le forzeA=B=CquandoA=B.123SCCCUNBUN=B=CUN=B

Con questi elementi, puoi codificare qualsiasi circuito in un incorporamento a distanza. Gli input diventano bit, le porte vengono scomposte in NOT e AND introducendo nuovi bit se necessario, e basta. Forzare la posizione dell'output su true e si ottiene il problema di soddisfacibilità.


3

Risposta parziale sull'unicità : la 3-connessione non è sufficiente.

Esempio di contatore minimo: grafico cubo ( della famiglia Hypercube Graph )Q3

inserisci qui la descrizione dell'immagine

Per vedere come fissare la lunghezza di tutti i bordi in non dia posizioni ai vertici nello spazio 3-d che è unico fino alla traslazione / rotazione / mirroring, guarda come puoi appiattire una scatola di cartone (con 2 facce opposte rimosse) .Q3

Prendi gli angoli della scatola di cartone per essere i vertici di interesse. Ogni angolo di una scatola di cartone ha una distanza fissa dagli altri angoli con cui condivide la faccia di una scatola.

Q3


Non lo seguo del tutto. Tuttavia, ho realizzato che puoi trasformare la connessione a 3 in una connessione a 1 mettendo i punti uno sopra l'altro. Quindi la 3-connessione grezza non può essere sufficiente.
Craig Gidney,

@DW Espanderò l'argomento come suggerito. Non ti ho tenuto in discussione perché four points laying above or below the other fourpuò essere trasformato l'uno nell'altro mediante il mirroring.
Apiwat Chantawibul,

K4

K4K4

3

questo è noto come il seguente problema e si verifica, ad esempio, con la ricostruzione di coordinate da reti di sensori in grado di misurare la distanza dai nodi vicini, e questo documento può servire da mini-sondaggio insieme ai principali algoritmi. un metodo principale è noto come Proiezione del valore singolare, un'altra trebbiatura del valore singolare. gli algoritmi si basano generalmente su algebra matriciale e riduzione del rango. l'articolo implementa entrambi gli algoritmi e fornisce alcune analisi empiriche.

Ricostruzione della distanza euclidea da informazioni sulla distanza parziale Xu, Chen

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.