Detectando coplanaridade por distâncias dadas em pares


7

Considere um gráfico ponderado não direcionado , em que modo que os pontos sejam 3D, e o peso de uma aresta seja igual à distância (euclidiana) entre seus pontos finais. Observe que não recebemos as coordenadas dos pontos em V. Podemos nem mesmo ter todas as distâncias aos pares, portanto o gráfico não precisa estar completo e pode ser esparso.G=(V,E)VR3

Suponha que recebemos e avisemos que existem planos de modo que todos os vértices pertencem a pelo menos um desses planos. Queremos encontrar tais aviões, com uma restrição adicional:kkk

Para determinar se 4 pontos são coplanares, dadas apenas suas distâncias aos pares, o método mais direto é usar o determinante de Cayley-Menger . Para o nosso problema, isso exigiria que o gráfico fosse bastante denso, pois precisaríamos conhecer a maioria das distâncias aos pares para aplicar Cayley-Menger. A restrição é encontrar aviões sem usar o determinante de Cayley-Menger.k

Se isso for impossível, podemos obter uma prova de que isso é impossível? Em outras palavras, podemos provar que, para qualquer gráfico e dado , se tivermos informações suficientes para encontrar planos para de alguma maneira, teremos informações suficientes para usar Cayley-Menger para encontrar planos?GkkGk


uma referência de que o determinante de Cayley-Menger é suficiente para esse fim seria útil se você souber um. o que você quer dizer com "todas as distâncias em pares entre cada 4 nós"? Não existem tantas distâncias aos pares quanto arestas com pontos tomados como vértices em um gráfico? é o algoritmo que você tem em mente olhando a coplanaridade de todas as opções de 4 pontos? mais sobre coplanar
vzn

idéia: pense que isso generaliza. coloque todos os pontos em uma matriz e encontre sua classificação. se for 2, todos são coplanares. isso pode ser melhor em matemática ...?
vzn

@vzn Essa é uma boa ideia, mas e se houver mais de um grupo de sensores coplanares?
padawan

Não está claro o que você está perguntando. Nós obtemos os pontos ou não? O que você quer dizer exatamente com "dado conjunto de pontos e distâncias aos pares (não as coordenadas)"? Dê um exemplo.
22814 Craig Gidney

11
Em geral, os planos podem não ser únicos. Por exemplo, se os vértices são vértices de um cubo , os planos superior e inferior funcionam, assim como a frente e a traseira, assim como a esquerda e a direita. Você estava falando sobre os planos , mas presumivelmente você está bem em encontrar quaisquer planos que ainda façam o truque de cobrir todos os pontos em ? kk=2 k kV
Amit Kumar Gupta

Respostas:


3

Eu acho que se o gráfico de entrada estiver conectado em 3 e você assumir alguma origem e orientação arbitrárias, poderá recriar os pontos originais. Especialmente se você encontrar K_4 para propagar o processo de triangulação.

Uma vez que temos os pontos, estratégias gananciosas se tornam disponíveis. Eles podem não ser ótimos, mas talvez sejam suficientes para seus propósitos.

Eu perguntei sobre a recuperação da incorporação como uma pergunta separada.

Random Greedy

Até que tenhamos menos de três pontos não desqualificados, escolha arbitrariamente três deles, produza o avião passando por eles e marque todos os pontos do avião como desqualificados.

Pegue os pontos restantes não desqualificados (se houver), emparelhe-os com alguns pontos desqualificados arbitrários e produza o avião passando por eles.

Os aviões que produzimos cobriram todos os pontos. O número de planos que produzimos é no máximo , e cada um requer a varredura pelos pontos restantes, portanto, esse algoritmo leva tempo (mais rápido que calcular um determinante).n3O(n2)

Se o número de aviões , então temos chances razoavelmente boas de atingir um dos aviões grandes. Não sei ao certo qual é o tempo de execução esperado , mas gostaria de adivinhar em . (Isso se baseia no problema do coletor de cupons, implicando que precisamos de hits para coletar aviões, e que as chances de um hit são portanto o tempo esperado entre os hits é ).knO(nk3logk)klogkk(1/k)2k2

Ganancioso Priorizado

Outra coisa que podemos fazer, se conseguirmos resolver os pontos, é iterar todos os trigêmeos e contar quantos pontos existem nesse plano. Em seguida, produzimos repetidamente o plano que cobre o maior número de pontos, até que nenhum ponto seja deixado.

Se não considerarmos pontos desqualificados ao escolher o próximo plano, isso levará tempo em que é o número de planos que retornamos. Se voltarmos a priorizar, acho que ainda pode ser feito em (o número de pontos desqualificados em outros planos pode mudar apenas em 2, portanto, é possível reequilibrar de alguma maneira inteligente )O(n3logt)tO(n3logt)

Essa abordagem deve se sair melhor, mas, novamente, não acho que seja garantido que . Provavelmente, podemos organizar os pontos para que pegar o avião que cobre a maioria deles nos leve ao caminho errado.t=k


Sua primeira frase do primeiro algoritmo diz basicamente "escolha 3 pontos e desqualifique todos os pontos que são coplanares com os 3". Mas como você determina quais pontos são coplanares? Esse é o ponto principal desta questão. Assumindo que você não conhece as coordenadas dos pontos e conhece apenas algumas de suas distâncias aos pares, como você detecta a coplanaridade?
Amit Kumar Gupta

@AmitKumar Qualquer trio de pontos arbitrário é co-plano, porque define um plano . Uma caixa de canto é quando estão degeneradas (dois dos pontos são iguais ou os três pontos caem em uma linha); nesse caso, eles ainda são co-planares, mas muitos planos podem cobri-los.
22814 Craig Gidney

@Mitmitumar Oh, entendo que você quis dizer como testar se um ponto está em um avião. Basicamente, pontue o produto do plano normal contra o delta do ponto até um ponto no plano . Quando o produto escalar é zero (ou quase zero, se você estiver se aproximando), o ponto está no plano. Você faz isso para cada ponto não desqualificado.
22814 Craig Gidney

@AmitKumarGupta Para ser um pouco mais preciso, a questão não é sobre como descobrir quais pontos estão em um avião. É sobre como escolher um pequeno conjunto de planos que cubram os pontos, com as rugas adicionais de que você apenas obtém algumas das distâncias entre pontos, em vez dos pontos em si.
22814 Craig Gidney

11
@AmitKumarGupta Se você tiver um K_4, coloque um deles em (0,0,0), outro em (x, 0,0), o próximo em (y, z, 0) e o último em (a, b, c) com c> 0. Se você não conseguir resolver uma incorporação única, até a tradução / rotação / espelhamento, não acho que exista uma solução bem definida. Você teria coisas como grupos rígidos de pontos conectados por uma alavanca que você pode girar sem violar as restrições de distância, e eu não acho que os aviões possam sobreviver a essa perda de informação.
22814 Craig Gidney

3

O RANSAC seria um método candidato para encontrar aviões que cobrissem uma grande fração dos pontos.

Suponha que uma grande fração dos pontos passe por algum plano , digamos, deles. Veja como podemos encontrá-lo:Pn/10

Então, vamos escolher 4 pontos aleatoriamente a partir do ; chame esses pontos de . Suponha que conheçamos as distâncias entre todos esses pares (eles formam um 4-clique, ). Em seguida, podemos usar o determinante Cayley-Menger para ver se eles são co-planares. Suponha que eles sejam co-planares. Então, podemos tentar testar um ao outro o ponto e ver se podemos dizer se é co-plano com o plano formado por . Só poderemos testar isso quando o ponto adicional formar um 4-clique junto com alguns outros pontos conhecidos no plano. No final, se encontrarmos um número significativo de pontos que estão no plano formado pornq,r,s,tK4xq,r,s,tuq,r,s,t, mantemos este plano. Continue fazendo isso por, digamos, 1000 opções aleatórias de .q,r,s,t

Quão bem isso vai funcionar? Bem, suponha que modelemos o gráfico como um gráfico aleatório em que cada aresta possível apareça com probabilidade (então esperamos arestas em média). Então a probabilidade de que um conjunto de 4 pontos escolhido aleatoriamente forme um 4-clique no gráfico é . Portanto, se experimentar, pelo menos, escolhas de , espera-se encontrar, pelo menos, uma, onde eles revelam o plano . Além disso, a probabilidade de que um ponto adicional forme um 4-clique com pelo menos três de é , portanto, quando encontramos quatro pontos no planoppn(n1)/2p6104/p6q,r,s,tPup,q,rp3q,r,s,tP, Espera-se encontrar, pelo menos, dos pontos no plano . (Na verdade, provavelmente encontraremos muito mais do que isso. Quando tivermos esses pontos, agora a probabilidade de um ponto adicional formar um 4-clique com pelo menos três deles é , que é significativamente maior que ) Em outras palavras, uma vez que encontramos pontos no plano , é provável que manteremos esse plano.p3n/10Pp3n/10v1(1p3)p3n/101exp{p6n/10}p3q,r,s,tP

Portanto, desde que você experimente 4 combinações de pontos suficientes e o gráfico seja denso o suficiente, esse procedimento provavelmente detectará todos os planos que cobrem uma grande fração de pontos.


No entanto, novamente precisamos usar o determinante de Cayley-Menger para cada ponto extra que testamos.
Padawan

@agirici, sim, nós fazemos. Minha resposta é consistente com a declaração do problema, com o nível de detalhe fornecido na pergunta. Se houver algum motivo para não abordar sua configuração específica, considere editar sua pergunta para fornecer um conjunto mais específico de requisitos técnicos. ("Não use Cayley-Menger" não é um requisito técnico válido. "É necessário trabalhar com gráficos muito esparsos" é um requisito, se você puder formular o que quer dizer com "muito esparso". Um requisito indica o que você deseja para conseguir, não como.)
DW

depois de um longo período, volto a esse problema novamente :) Se eu disser "o algoritmo deve funcionar com medições de distância inconsistentes", isso é um requisito? Em caso afirmativo, esse algoritmo funciona com medições de faixa incorretas?
Padawan #

3

Infelizmente, a resposta é que este é um problema do NP-Complete. Usando apenas 4 planos de pontos, é possível codificar problemas de satisfação para saber se existe ou não um conjunto de pontos que gera um conjunto esparso de distâncias.

Isso significa que você pode criar problemas onde determinar se um quinto plano é necessário ou não requer a solução de problemas 3-SAT. Você pode combinar dois desses problemas, em que exatamente um requer o quinto plano, para manter constante o número de planos e forçar o algoritmo a resolver problemas de 3-SAT, mesmo que ele saiba antecedência.k

Portanto, o problema não tem solução de tempo polinomial para o pior caso, a menos que P = NP.


-1

Estou tentando uma resposta, mesmo que a pergunta possa ser pouco clara. metade diz que os pontos são dados, a outra metade diz que distâncias aos pares são dadas. vou assumir que são dadas coordenadas de ponto para esta resposta. existe uma conexão estreita entre o determinante da computação e a classificação da matriz. existe uma generalização da seguinte maneira. criar a matriz de vetores 3d, eles podem ser vetores de coluna ou linha. calcular a classificação . se for 2, os pontos são coplanares. as distâncias aos pares podem ser calculadas a partir das coordenadas e não é necessário calcular / determinar a classificação da matriz.


11
Você poderia copiar e colar a frase que afirma que as coordenadas dos pontos são dadas? A pergunta diz que um conjunto de pontos é dado. Não são as coordenadas.
P285 # padawan #

estou pegando "conjunto de pontos = coordenadas". você diz que os pontos não estão completos nos comentários, mas não na pergunta. como você define "conjuntos de pontos" sem coordenadas? talvez seja necessário votar para fechar se for inconsistente ou não respondível na forma atual sem revisão. estou tentando extrair algo responsável. os comentários e perguntas não estão alinhados. a resposta determina se todos os pontos são coplanares. talvez você só queira saber se subconjuntos de todos os pontos são coplanares, dadas algumas distâncias em pares?
vzn
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.