Estou procurando bons exemplos, nos quais ocorre o seguinte fenômeno: (1) Um problema algorítmico parece difícil, se você quiser resolvê-lo trabalhando com as definições e usando apenas resultados padrão. (2) Por outro lado, fica fácil se você conhece alguns teoremas (não tão padrão).
O objetivo disso é ilustrar para os alunos que aprender mais teoremas pode ser útil, mesmo para aqueles que estão fora do campo da teoria (como engenheiros de software, engenheiros de computação etc.). Aqui está um exemplo:
Pergunta: Dados os números inteiros , existe um gráfico vertex (e, nesse caso, encontre um), de modo que sua conectividade de vértice seja , sua conectividade de borda seja e seu grau mínimo seja ?n k l d
Observe que exigimos que os parâmetros sejam exatamente iguais aos números fornecidos, eles não são apenas limites. Se você quiser resolver isso do zero, pode parecer um pouco difícil. Por outro lado, se você está familiarizado com o seguinte teorema (consulte Teoria dos grafos extremos por B. Bollobas), a situação se torna bem diferente.
Teorema: Seja inteiros. Existe um gráfico -vertex com conectividade de vértices , conectividade de borda e grau mínimo , se e somente se uma das seguintes condições for atendida:n k l d
- ,
Essas condições são muito fáceis de verificar, sendo simples desigualdades entre os parâmetros de entrada, para que a questão da existência possa ser respondida sem esforço. Além disso, a prova do teorema é construtiva, resolvendo também a questão da construção. Por outro lado, esse resultado não parece padrão o suficiente, para que você possa esperar que todos saibam disso.
Você pode fornecer mais exemplos nesse espírito, onde conhecer um teorema (não tão padrão) simplifica muito uma tarefa?
fonte
Respostas:
Decidir isomorfismo de grupos simples , dado por suas tabuadas de multiplicação. O fato de que isso pode ser feito em tempo polinomial decorre diretamente do fato de que todos os grupos simples finitos podem ser gerados por no máximo 2 elementos, e atualmente a única prova conhecida desse fato usa a Classificação de Grupos Simples Finitos (talvez o maior teorema - em termos de autores, trabalhos e páginas - já comprovados).
fonte
Se eu entendi sua pergunta corretamente, um exemplo canônico seria decidir se um gráfico tem um circuito euleriano: equivalente a verificar se está conectado e todos os vértices têm grau uniforme.GG G
fonte
Esta tarde, eu estava lendo Stringologia - a teoria das cordas "Real" .
Problema: Se e são duas cadeias de mais de algum alfabeto quando existem alguns inteiros positivos , tais que .x y m,n xm=yn
Teorema: Existem inteiros positivos tais que se e somente se .m,n xm=yn xy=yx
fonte
Encontrar o número de raízes reais (distintas) de um polinômio real, em todo of ou em um determinado intervalo. O teorema de Sturm diz que uma sequência de polinômios que atende a um pequeno número de requisitos pode ser usada para contar o número de raízes reais de um polinômio com coeficientes reais.
Então, tudo o que você precisa fazer é construir essa sequência (o que não é muito difícil, mas requer alguns casos extremos e manipulação do caso de polinômios não separáveis), e Bob é seu tio.
Surpreendentemente, poucas pessoas sabem sobre esse resultado, apesar de ser bastante antigo (1829). É usado em muitos sistemas de álgebra computacional, mas todos os professores de matemática da minha universidade a quem perguntei não conheciam o Teorema de Sturm ou apenas o conheciam pelo nome e que têm algo a ver com as raízes dos polinômios.
A maioria das pessoas fica bastante surpresa quando você lhes diz que algo como contar exatamente as raízes reais é fácil e não exige nenhuma aproximação, considerando que encontrar raízes é muito mais difícil. (Lembre-se de que para polinômios de grau ≥ 5, não existe sequer uma fórmula "adequada" para as raízes)
fonte
Problema: projete uma representação de gráficos planares onde podemos verificar se é uma aresta no tempo .O(n) (u,v) O(1)
Podemos remover o vértice com grau no máximo 5 e adicioná-lo a uma lista como chave e seus vizinhos como valores. O gráfico restante também é plano e possui um vértice com grau no máximo 5. Portanto, o espaço consumido é no máximo . Podemos verificar se está na lista de adjacências de ; caso contrário, podemos verificar se está na lista de adjacências de . Isso leva no máximo etapas.5n u v v u 10
fonte
Penso que o póster desta categoria, pelo menos no que diz respeito à assimetria de dificuldade, é o seguinte problema:
Dado um gráfico planar , é 4 colorido?G G
O teorema das quatro cores simplifica o algoritmo para
return true
.fonte
Se um polinômio real (multivariado) pode ser expresso como uma soma de quadrados de polinômios reais pode ser resolvido por redução à programação semi-definida. Precisa conhecer o SDP e esse SDP pode ser resolvido com eficiência.p
fonte
Outro exemplo: dado um gráfico não direcionado, ele tem um corte mínimo no qual todas as arestas são separadas? Se sim, encontre um.
À primeira vista, isso pode parecer difícil. Torna-se fácil, no entanto, se você souber o resultado que um gráfico vértice não direcionado pode ter no máximo cortes mínimos e todos eles podem ser listados em tempo polinomial.n n(n−1)/2
Pode ser estendido para cortes quase mínimos, que são maiores que o corte mínimo, mas no máximo por um fator constante. Seu número ainda é limitado por um polinômio.
(Não procurei uma referência, lembro-me de que esses resultados se devem a D. Karger.)
fonte
Problema: Satifsiabilidade de uma fórmula MSO (lógica monádica de segunda ordem) sobre palavras finitas.
Teorema: MSO é equivalente a autômatos finitos sobre palavras finitas.
O acima pode ser elevado a palavras infinitas, árvores finitas, árvores infinitas.
fonte
Um exemplo um pouco mais complicado: fatoração de matriz não negativa , quando a classificação não negativa é constante.
Digamos que eu lhe forneça uma matriz juntamente com a promessa de que existem não negativos , modo que . O problema é encontrar tais fatoração de um para . U ∈ M m × k V ∈ M k × n A = U V AA∈Mm×n U∈Mm×k V∈Mk×n A=UV A
Com algumas linhas de álgebra linear elementar, você pode reduzir o problema para resolver um sistema de desigualdades polinomiais em variáveis , em que é a classificação não negativa da matriz que você deseja fatorar.rO(r2) r
fonte
Decisional Diffie Hellman
Sob as premissas padrão de dureza do problema de log discreto, esse problema também pode parecer difícil.
Mais sobre isso pode ser lido em O problema decisivo do homem das trevas, Boneh'98 ou uma pesquisa no Google em Pairings
fonte
(Trivialmente) a existência de um Equilíbrio de Nash em um jogo finito, um número par de Caminhos Hamiltonianos em um gráfico cúbico, vários tipos de pontos fixos, comparações decentemente equilibradas em ordens parciais e muitos outros problemas de PPAD.
fonte
fonte
Aqui está outro exemplo: dado um gráfico simples não direcionado, decida se ele possui dois circuitos separados por vértices.
Como é fácil verificar se um gráfico é um dos gráficos permitidos pelo Teorema, isso nos fornece um algoritmo de tempo polinomial para o problema de decisão.
Notas: (1) A prova do teorema não é nada fácil. (2) Depois que decidimos que existem dois circuitos disjuntos, parece menos claro como resolver o problema de pesquisa associado , ou seja, como realmente encontrar esses circuitos. O teorema não aconselha diretamente isso.
fonte
exemplos menos complexos: existem algumas propriedades semelhantes a teoremas que mostram que algoritmos gananciosos para alguns problemas são ótimos. não é tão óbvio para os não iniciados que uma árvore de abrangência mínima possa ser encontrada por um algoritmo ganancioso. um pouco semelhante conceitualmente é o algoritmo de Dijkstra para encontrar o caminho mais curto em um gráfico. na verdade, em ambos os casos, os "teoremas" associados são quase os mesmos que os algoritmos.
fonte
Encontre a sequência dos números de Fibonacci que são o produto de outros números de Fibonacci. Por exemplo, o número de Fibonacci 8 está na sequência porque 8 = 2 * 2 * 2 e 2 é um número de Fibonacci que não é igual a 8. O número de Fibonacci 144 está na sequência porque 144 = 3 * 3 * 2 * 2 * 2 * 2 e 2 e 3 são números de Fibonacci que não são iguais a 144.
O teorema de Carmichael implica que 8 e 144 são os únicos termos dessa sequência.
fonte