Como as teorias e investigações de Ciência da Computação podem ser resolvidas?

7

Provavelmente é possível provar que P ≠ NP, que existem funções unidirecionais e que jogos de paridade não podem ser resolvidos em tempo polinomial (sim, eu estive lendo esta lista ), mas como é que vamos provar alguma dessas coisas? Houve alguma prova de alguma teoria da ciência da computação ou resposta a alguma questão substancial da ciência da computação (como as da lista )? São como provas matemáticas (como a resolução de Grigori Perelman à conjectura de Poincaré)? Eu sei que o problema P versus NP parece fora do meu alcance, sendo um júnior no ensino médio, mas é um problema que me intriga, e eu realmente gostaria de ver como os outros (se houver) responderam a outras perguntas relacionadas, porque Eu gostaria de procurar uma solução para o problema.

Isso não é uma duplicata desta questão, principalmente porque a física não é ciência da computação e, secundariamente, porque, a menos que eu esteja enganado, as teorias da ciência da computação não são comprovadas da mesma maneira que as teorias relacionadas às ciências físicas são comprovadas. Eles são mais como provas matemáticas, pois são lógicos (certo?).

Carter Pape
fonte
Os jogos de paridade agora podem pelo menos ser resolvidos em tempo quase-polinomial, veja esta resposta . Talvez não seja tão importante, afinal, que eles não possam ser resolvidos no tempo polinomial. Eles podem ser resolvidos na prática, e é isso que mais importa.
Thomas Klimpel 12/03/19

Respostas:

9

Eu discordaria em alguns aspectos.

Não acho que seja "provavelmente" possível provar . Certamente não acho impossível, mas os teoremas da incompletude de Gödel nos dizem que existem no sistema lógico algumas frases que são verdadeiras, mas que não podem ser provadas.PNP

Você pergunta se houve provas para as teorias da ciência da computação. Houve milhares no mínimo. Estes variam de insignificante a enorme. Vou mencionar alguns dos mais relevantes (aka meus favoritos) aqui.

  • Alguns problemas não podem ser resolvidos por QUALQUER algoritmo. Não importa o que. Sempre. Um exemplo disso é determinar se um programa de computador será executado para sempre. Não há como olhar para um programa e ter uma resposta sim / não garantida, se ele será executado para sempre.
  • As funções que podem ser calculadas por uma máquina de Turing são as mesmas que as funções que podem ser calculadas pelo cálculo lambda, são as mesmas de praticamente todas as linguagens de programação. Basicamente, embora a velocidade possa diferir, todas as linguagens de programação completas (que são a maioria delas) podem resolver o mesmo conjunto de problemas.
  • Os tipos de um programa de computador estão diretamente relacionados à sua prova de correção. Isso é chamado de "Correspondência Curry-Howard" e é bastante complexo, então não vou entrar em detalhes aqui. Observe que, por tipos, quero dizer coisas como número inteiro, string, lista, matriz, etc.
  • Uma lista de números reais não pode ser classificada mais rapidamente queIsso significa que, independentemente do algoritmo usado, na pior das hipóteses, serão necessários aproximadamente para classificar essa lista.Ω(nregistron).nregistron
  • Um grande número de problemas é, no fundo, o mesmo problema. Se você já ouviu falar em problemas de NP-completos, o que isso significa é que todos esses problemas se resumem à satisfação. Eles são da teoria dos grafos, combinatória, programação e uma variedade de áreas, mas, no final das contas, todos estão apenas verificando se há alguma entrada para uma fórmula lógica de ORs e ANDs que será verdadeira como resultado geral.

Observe que esses são tópicos necessariamente complexos, que simplifiquei para mostrar a você o tipo de coisas prováveis ​​na ciência da computação.

Você pergunta como as teorias da ciência da computação são comprovadas. O problema é que a Ciência da Computação é um campo incrivelmente diversificado e realmente depende do seu subcampo. A teoria da computação, a construção da linguagem de programação e a IA formal (AI "pura") são altamente matemáticas e baseiam-se fortemente na lógica e nas provas.

No entanto, existem muitos subcampos que são muito mais experimentais. A interação homem-computador ou qualquer coisa relacionada ao lado humano da computação dependerá fortemente de estudos e experimentos envolvendo usuários. Sistemas operacionais, gráficos e compiladores dependerão muito das avaliações de desempenho, vendo quais programas são os mais rápidos na palavra real, não apenas no papel.

Se você está no ensino médio, acho que existem muitos problemas de ciência da computação ao seu alcance. Por ser um campo tão jovem, existem muitos problemas de CS não resolvidos que são relativamente simples de entender. Diferentemente da física, onde você precisa de toneladas e toneladas de experiência em cálculo, o CS realmente depende de uma lógica simples. Se você pode aprender indução, lógica e o básico de estruturas discretas (gráficos, seqüências de caracteres etc.), acho que provavelmente existem muitos conceitos acessíveis a um aluno do ensino médio.

jmite
fonte
11

A ciência da computação teórica, à qual pertencem as perguntas que você declara, faz parte da matemática, e os métodos usados ​​para resolver perguntas são os mesmos usados ​​em outras partes da matemática, a saber, o método de provas. As perguntas que você lista são notoriamente difíceis e parecem estar fora do alcance dos métodos atuais.

No passado, os métodos usados ​​para atacar perguntas do tipo que você descreve eram puramente combinatórios. Recentemente, Ketan Mulmuley e seus alunos criaram um método diferente que emprega a teoria da representação (por meio de alguma geometria algébrica) e é conjecturado por eles como um dia forte o suficiente para resolver a questão P versus NP. Atualmente, porém, as únicas questões ao alcance de seus métodos são algébricas como permanente versus determinante, em vez de booleanas como P versus NP.

Como se acredita amplamente (embora não universalmente) que P seja diferente de NP, muitos resultados são provados condicionais a essa suposição. Ou seja, eles só são válidos se P for realmente diferente de NP. A área de dureza de aproximação, que estuda quão bem diferentes problemas combinatórios podem ser aproximados no pior dos casos (em tempo polinomial), é um bom exemplo: todos os resultados nessa área são condicionais para P versus NP ou para algumas suposições ainda mais fortes.

Yuval Filmus
fonte
4

quando você diz que "provavelmente é possível" resolver problemas abertos não resolvidos mais importantes ou mais difíceis no CS, isso é mera "mente iniciante" ou [mais severa, mas honestamente, desinformada] especulação. quem sabe que, por exemplo, P vs NP está aberto há mais de 4 décadas [ mais que o dobro da sua idade! ] terá que admitir que sua longa história de nenhuma resolução e um prêmio não reivindicado de US $ 1 milhão há mais de uma década são algumas evidências circunstanciais de que a possibilidade de improvabilidade não é desprezível. enquanto eu leio uma pesquisa de teóricos, [4] cerca de 4-5% dizem que eles consideram improvável ou equivalente "independente" dos axiomas aritméticos básicos (na verdade, é aparentemente uma pequena minoria entre os especialistas).

existe até um artigo premiado de Razborov / Rudich chamado Natural Proofs que, sob algumas interpretações, dá alguma evidência de improvabilidade, mostrando [de maneira grosseira e informal] tal prova, se existir, deve ser fundamentalmente diferente de qualquer "similar" conhecido. provas já inventadas (ou num sentido formal estritamente definido " antinatural "!). & você deve aprender sobre os problemas que se mostraram indecidíveis após muito tempo abertos, por exemplo, problema do Hilberts 10 (século X aberto).

Sim, a maioria das principais provas de CS no núcleo são provas matemáticas "por baixo do capô", às vezes altamente técnicas, usando elementos de, por exemplo , combinatória , gráficos extremais e combinatória extremal . as provas existentes mais próximas de PNP são indiscutivelmente provas de Razborov e pesquisadores posteriores sobre limites inferiores de circuitos monótonos. há uma apresentação em nível de graduação [possivelmente a mais acessível já publicada] em Models of Computation by Savage. veja também o novo livro de Lance Fortnows, The Golden Ticket .

como uma nota de rodapé curinga exótica / longshot, há alguma especulação e entusiasmo em matemática e TCS, mesmo por alguns especialistas de elite (por exemplo, WT Gowers ) de que a tecnologia de prova automatizada poderá algum dia se tornar muito mais poderosa, por exemplo, semi-criativa e quase como IA. [1 ] cenários de ficção científica à parte, no entanto, algumas vezes foi bem-sucedido com avanços em alguns problemas isolados, mas muito difíceis, como o teorema das 4 cores e a conjectura de Keplers .

outra abordagem para P vs NP pode ser trabalhar a partir de um esboço de prova proposto [3] ou juntar-se a outras pessoas trabalhando no problema. [4] [5] [6]

[1] aventuras e promoções na prova automatizada de teoremas , vzn

[2] Pesquisa P vs NP realizada por Gasarch

[3] esquema para uma prova NP vs P / poli com base em circuitos monótonos, hipergráficos, fatoração e funções de fatia , vzn

[4] Página de Jun Fukuyama P vs NP

[5] sala de bate-papo com circuitos monótonos tcs.se

[6] Blog do RJ Lipton P vs NP

vzn
fonte
3
O último teorema de Fermat ficou aberto por um longo tempo. Só tinha que esperar pelas técnicas adequadas. Não há razão para acreditar que P vs. NP seja insolúvel apenas porque ninguém poderia resolvê-lo nas primeiras décadas.
Yuval Filmus
11
sem argumento. mas lembre-se de que existem matemáticos muito distantes hoje em dia do que jamais estiveram vivos na história, provavelmente, e a sofisticação dessa matemática existente é extraordinária. Aliás, pessoalmente acho que P vs NP é comprovável.
vzn
2
Hoje, os matemáticos são grandes em número, mas eles também buscam muito mais áreas. A maioria dos matemáticos hoje, escusado será dizer, não está tentando resolver P vs. NP.
Yuval Filmus
3
as principais provas de CS no centro são as provas matemáticas "por baixo do capô" - seria mais preciso dizer que todas as provas de CS são "provas de matemática", porque é isso que significa a palavra "prova".
10113 JeffE
O CS tem seu próprio idioma. a matemática tem sua própria linguagem. há forte sobreposição, mas não é o mesmo. a matemática é muito mais antiga que o CS. existem aspectos / elementos / estruturas de provas de CS que não fazem parte da matemática mais antiga. por exemplo, circuitos. mas sim, eles são reduzidos a gráficos (antigos). Além disso, grandes faixas da matemática moderna ainda não parecem ter aplicação no CS. etc. "não há muitos matemáticos tentando resolver P vs NP". pense que o problema tenha recebido um esforço muito grande / intenso das principais mentes dentro / fora da CS, pense que os principais pesquisadores da CS concordariam. há muita pesquisa relacionada.
vzn
0

Os resolvidos obviamente não estão nessa lista ... questões importantes eram o problema de parada, o que significa "algoritmo", definindo uma maneira razoavelmente "independente de máquina" de dizer quando uma solução para um problema é "eficiente". A análise de algoritmos é uma área completamente nova, com uma rica coleção de resultados. A lista continua.

vonbrand
fonte
4
A análise de algoritmos é uma área completamente nova - ... que remonta à década de 1960 ou ao Egito antigo, dependendo de quão generosamente você define os limites.
Jeffe