Problemas de função e


7

Acho difícil encontrar definições formais de classes de complexidade de funções. Aqui estão dois da Wikipedia.

Uma relação binária P(x,y)está em FP se e somente se houver um algoritmo de tempo polinomial determinístico que, dadox, pode encontrar alguns y de tal modo que P(x,y) detém.

A definição acima parece implicar que, para todas as relações no PF, é válido que para cadax existe pelo menos um y cujo comprimento é polinomial no comprimento de x. No entanto, não parece restringir a existência de maisy por isso x de modo a P(x,y) segura enquanto y é exponencialmente maior que x.

Uma relação binária P(x,y), Onde y é no máximo polinomialmente maior que x, está no FNP se e somente se houver um algoritmo de tempo polinomial determinístico que possa determinar seP(x,y) mantém dado tanto x e y.

Esta definição implica que, para uma relação no PNF , não é necessário que exista pelo menos umy para cada x de modo a P(x,y)detém. Implica, porém, que seP(x,y) detém, y deve ser no máximo polinomialmente maior que x.

Na literatura, pode-se ler que FP ⊆ FNP . Tanto quanto eu entendo (ou não), isso não pode ser verdade. É possível que, para alguma relaçãoR(x,y)∈ FP existe uma(x,y) de modo a R(x,y) detém e y é exponencialmente maior que x. Por esse motivo , essa relação não pertence ao FNP e, portanto, ao FP ⊈ FNP .

As definições na Wikipedia estão incompletas? Estou esquecendo de algo?

De qualquer maneira, quais são algumas boas fontes para ler sobre problemas de função (considero-me conhecedor de problemas de decisão)?


Você já olhou para outros livros / fontes além da Wikipedia? Se você deseja definições formais, eu não recomendaria confiar na Wikipedia como sua principal fonte. Em vez disso, um livro sobre teoria da complexidade é provavelmente uma escolha melhor, ou notas de aula de um curso (provavelmente curso de pós-graduação) sobre teoria da complexidade que aborda esses tópicos.
— DW

Estou lendo 'Complexidade computacional: uma abordagem moderna' de Arora et. al. mas esse livro não cobre problemas de função. Estou lendo artigos que definem PLS e PPA (D) [Papadimitrou]. Esses artigos apenas os 'definem' como "funções equivalentes a (N) P". Eu posso entender o PLS e o PPA (D), mas quando raciocino sobre eles em profundidade, sempre me deparo com o problema, não conheço nenhuma boa definição de FP e FNP .
— Auberon

Respostas:


4

Encontrei o seguinte no livro de Papadimitriou, Computational Complexity, que achei satisfatório.

Deixei R⊆Σ∗×Σ∗ ser uma relação binária em strings.

Ré chamado polinomialmente decidível se houver uma máquina de Turing determinística que decide o idioma{x;y:(x,y)∈R} em tempo polinomial.

Dizemos que Ré polinomialmente equilibrado se(x,y)∈R implica |y|≤|x|k para alguns k≥1.

Então Papadimitriou observa o seguinte, que basicamente é outra definição para NP :

Deixei L⊆Σ∗ seja uma linguagem. L∈ NP se e somente se houver uma relação polinomialmente decidível e polinomialmente equilibradaR, de tal modo que L={x:(x,y)∈R para alguns y}.

Algumas dezenas de páginas depois ...

O problema da função associado ao L [∈ NP ], denotadoFL [aqui L significa a linguagem mencionada, não o espaço de registro], é o seguinte problema computacional:

Dado x, encontre uma string y de tal modo que RL(x,y)se existe uma string; se essa string não existir, retorne "no".

Então

A classe de todos os problemas de função associados como os idiomas no NP é chamada FNP . FP é a subclasse resultante se considerarmos apenas problemas de função no FNP que podem ser resolvidos em tempo polinomial.


Agora, para descobrir por que a FP ⊆ TFNP ...
— Auberon

Observe que FPtem outra definição incompatível que também é comumente usada.
— Yuval Filmus

@YuvalFilmus Na literatura, é aceito que o FP ⊆ TFNP ⊆ FNP . Eu diria que qualquer definição de FP existe por aí que satisfaça esta é a correta. Papadimitriou também afirma as inclusões mencionadas em seu livro. No entanto, eu não vejo como sua definição de FP implica que ....
— Auberon

Isso depende de qual parte da literatura você olha. Para mim, FP sempre foi a classe de funções computáveis ​​no polytime, enquanto FNP e TFNP são termos de nicho usados ​​por pessoas que trabalham com problemas de pesquisa.
— Yuval Filmus

3

Vamos esquecer as definições da Wikipedia e criar as nossas.

Uma função f é em FP se houver uma máquina polytime Turing que na entrada x saídas f(x).

Uma função f é em FNP∗ E se:

  1. A função f é polinomialmente limitado: existe um polinômio p de tal modo que |f(x)|≤p(|x|).

  2. Existe uma máquina polytime Turing que, dada a x,y determina se f(x)=y.

E se f é em FPentão é definitivamente polinomialmente limitado. Desde que podemos calcularf(x) em tempo polinomial, dado x,y nós podemos calcular f(x) e compare com y, tudo em tempo polinomial.

Consultando o zoológico de complexidade , parece queFNP na verdade tem uma definição diferente, e que FP possui duas definições diferentes e incompatíveis, sendo uma delas a mencionada acima.


Eu diria que FP e FNP não são conjuntos de funções, mas conjuntos de strings. Além disso, functionimplica que há exatamente umy para cada x, o que não precisa ser o caso. São relações.
— Auberon

Você parece estar certo sobre FNP, mas FPpossui várias definições diferentes (incompatíveis). Veja, por exemplo, o zoológico de complexidade .
— Yuval Filmus

2

Quero adicionar outro conjunto de definições de Automata, Computability and Complexity, de Elaine Rich.

A classe FP : uma relação bináriaQ é em FP se houver um algoritmo de tempo polinomial determinístico que, dada uma entrada arbitrária x, pode encontrar alguns y de tal modo que (x,y)∈Q.

A classe FNP : uma relação bináriaQ é em FNP se houver um verificador de tempo polinomial determinístico, dado um par de entradas arbitrário (x,y), determina se (x,y)∈Q. Equivalentemente,Q é em FNP se houver um algoritmo de tempo polinomial não determinístico que, dada uma entrada arbitrária x, pode encontrar alguns y de tal modo que (x,y)∈Q

Isso é apenas um pouco diferente das definições encontradas na Wikipedia, mas implica coisas diferentes, no entanto. Mais importante, Elaine Rich, sua definição deFNP não implica que se (x,y)∈Q, y tem que ser polinomial emx. É provável que as definições wiki sejam cópias desleixadas delas.

A partir dessas definições, é mais claro que FP⊆TFNP⊆FNP.

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.