Suponha que eu forneça um gráfico não direcionado com arestas ponderadas e diga que cada nó corresponde a um ponto no espaço 3D. Sempre que há uma aresta entre dois nós, o peso da aresta é a distância entre os pontos.
Seu objetivo é reconstruir as posições relativas dos pontos, considerando apenas as distâncias disponíveis (representadas pelos pesos das arestas). Por exemplo, se eu lhe der , então você sabe que os pontos são os vértices de um tetraedro . Você não sabe onde é relativo à origem, nem à sua orientação, ou se foi espelhado, mas pode dizer que é um tetraedro.
Em geral, o problema é fácil se eu fornecer todos os comprimentos das bordas. Escolha apenas arbitrariamente um ponto para estar em ( 0 , 0 , 0 ) , depois escolha um ponto vizinho p 1 e coloque-o em ( d 0 , 1 , 0 , 0 ) , para que um vizinho comum p 2 seja triangulado no Plano XY, então um vizinho comum final p 3 é triangulado no meio espaço z > 0e quebra a simetria restante (supondo que você não tenha escolhido pontos degenerados). Você pode usar esses quatro pontos para triangular todos os demais.
Por outro lado, quando faltam alguns comprimentos de borda, talvez não seja possível recuperar a incorporação. Por exemplo, se houver um vértice que desconecte o gráfico ao ser cortado, os dois componentes que ele separaria se removidos podem girar em torno um do outro.
O que levanta as questões:
- Qual é o preço de encontrar uma solução?
- Como você determina se uma solução é única, até conversão / rotação / espelhamento? A conexão 3 é suficiente? Necessário?
- Que tipos de condições tornam o problema trivial?
- Se eu não prometo que os pesos das bordas realmente correspondem à distância do ponto em 3d, quão caro é determinar se uma incorporação é possível?
Respostas:
Uma abordagem algorítmica para resolver esse problema: trate isso como um conjunto de nós, conectados por molas, e então deixe-os se acomodar / relaxar em forma.
Cada aresta corresponde a uma mola; se a distância entre os pontos v e w deve ser d v , w , a mola é escolhida para que idealmente seja do comprimento d v , w (pode ser maior ou menor, mas isso custa energia). Agora, queremos resolver um conjunto de posições que minimizem a energia total. Suponha que cada vértice v seja colocado no ponto x v ∈ R 3 . Então a energia total desse arranjo será( v , w ) v W dv , w dv , w v xv∈ R3
Aqui os são dados (eles são os pesos nas arestas) e queremos resolver os x v 's (são as coordenadas dos pontos).dv , w xv
Podemos resolver um arranjo que minimize essa energia total. Esse arranjo fornece um candidato razoável para as posições dos pontos. Este é um problema de otimização e existem técnicas padrão para resolver esse tipo de problema de otimização. Veja, por exemplo, o artigo Network Solutions de Erica Klarreich.x
Acho que não há garantia de que isso forneça a solução correta desejada. É possível que o problema de otimização possa se ajustar a um ótimo diferente que não reflete a organização real dos pontos que você estava procurando. No entanto, se o seu gráfico for suficientemente denso, desconfio que ele possa funcionar com frequência e fornecer a solução desejada.
Nota de rodapé: Obviamente, mesmo na melhor das hipóteses, só podemos resolver esse problema até translação, rotação e reflexão, pois essas transformações preservam todas as distâncias. Portanto, você não pode esperar uma solução única - mas pode esperar que a solução seja única até a tradução, rotação e reflexão.
Finalmente, há muito trabalho na incorporação de gráficos no espaço , minimizando a distorção da incorporação. Isso é muito relacionado; você está basicamente pedindo uma incorporação de distorção zero em ℓ 2 . Assim, as técnicas desenvolvidas nesse contexto também podem ser úteis para o seu problema. Normalmente, esse trabalho se concentra em encontrar uma incorporação de baixa distorção, porque esse trabalho se concentra no caso em que não há uma incorporação perfeita que faça todas as distâncias coincidirem exatamente; portanto, procura uma solução de baixa distorção (aquela em que a maioria das distâncias das bordas corresponder muito bem) - para que o trabalho seja focado em um problema um pouco diferente. No entanto, é possível que as técnicas deles também sejam eficazes na sua situação. Vale a tentativa.ℓ2 ℓ2
fonte
O problema é NP-Completo . A posição dos pontos é um bom certificado, portanto está em NP, e você pode codificar os circuitos no "existe um conjunto de pontos satisfatório?" problema.
Redução da avaliação do circuito para a incorporação à distância
Vamos reduzir a avaliação do circuito para um problema de incorporação à distância, criando um sistema de coordenadas, colocando bits lógicos nele, conectando os bits a serem iguais e criando widgets para as portas NOT e AND.
Coordenadas . Precisamos de algum tipo de sistema de coordenadas com o qual possamos posicionar pontos. Faça isso criando um tetraedro "base" de pontos. Adicione quatro pontos, todos declarados a uma distância de um do outro. Isso força a forma desses quatro pontos em um tetraedro. Podemos posicionar outros pontos em relação ao nosso sistema de coordenadas de tetraedro, especificando sua distância para cada um dos quatro cantos da base. O tetraedro pode ser traduzido, girado e refletido, mas o mesmo acontecerá com todos os outros pontos.1
Bits . Para fazer um pouco, posicionamos um triângulo de pontos em relação ao tetraedro base. O normal do triângulo deve apontar para cima ao longo do eixo Z, de modo que o triângulo fique paralelo ao plano XY (em coordenadas de tetraedro). Além disso, suas arestas devem ter comprimento . Feito isso, adicionamos um ponto de "valor" v , especificado para estar a uma distância de 1 dos outros três. Nós não ligar v para a base do sistema de coordenadas. Isso fornece duas posições possíveis: centralizada 11 1 v 1 1 v acima ou abaixo do triângulo, como o canto final de um tetraedro. O bit está LIGADO se o ponto estiver acima do triângulo e DESLIGADO se estiver abaixo.1 13√
Fios . Podemos forçar dois bits a serem iguais, dizendo que a distância entre seus pontos de valor é igual à distância entre os centros de seus triângulos. Há uma exceção: quando o canto superior ou inferior de um dos bits se alinha exatamente com o plano central do outro. Nesse caso, primeiro usamos um fio para mover um dos bits verticalmente.
NÃO . Podemos obter a negação de um pouco adicionando um segundo ponto de valor ao mesmo triângulo, mas exigindo que w seja uma distância de 2W W dav. Isso forçawa assumir a posição oposta av, com relação ao triângulo, dando-nos um pouco com o valor oposto.23√ v W v
IMPLIES . A questão equidistante que tivemos que contornar os fios é realmente bastante útil. Quando os bits se alinham dessa maneira, que podemos forçar com um fio vertical, o mais alto implica o mais baixo. Se a mais alta for verdadeira, apenas a parte superior da mais baixa estará à distância certa. Se a mais alta for falsa, a parte superior e a parte inferior estão à distância certa.
AND . Para que um bit seja igual a A e B , precisamos de duas implicações e um widget para forçar a igualdade quando A e B concordam. As implicações são apenas CC UMA B UMA B e CC⟹UMA C⟹B UMA B 23√ C SUMA SB 2√- 12 3√ UMA B SUMA SB 2√+ 13√ SC 2√+ 12 3√ SUMA SB UMA B SC A ≠ B SC C A = B SC C UMA C SD 1 12 3√ SC C C A ≠ B A = B = C A = B
Com esses elementos, você pode codificar qualquer circuito em uma incorporação à distância. As entradas se tornam bits, os portões são decompostos em NOTs e ANDs, introduzindo novos bits conforme necessário, e é isso. Força a posição da saída como verdadeira e você obtém seu problema de satisfação.
fonte
Resposta parcial à exclusividade : a conexão 3 não é suficiente.
Pegue os cantos da caixa de papelão para ser os vértices de interesse. Cada canto de uma caixa de papelão tem distância fixa de outros cantos com os quais compartilha a face de uma caixa.
fonte
four points laying above or below the other four
pode ser transformado um no outro espelhando.isso é conhecido como o seguinte problema e ocorre, por exemplo, com a reconstrução de coordenadas de redes de sensores que podem medir a distância de nós próximos, e este artigo pode servir como uma mini-pesquisa junto com os principais algoritmos. um método líder é conhecido como Projeção de Valor Singular, outro Threshholding de Valor Singular. os algoritmos são geralmente baseados em álgebra matricial e redução de classificação. o artigo implementa ambos os algoritmos e fornece algumas análises empíricas.
Reconstrução de distância euclidiana a partir de informações de distância parcial Xu, Chen
fonte