Sumários
Relações estruturais
26 março 2010, 14:30 • José Félix Costa
Proposição
: Caracterização das classes DTIME, NTIME, DSPACE e NSPACE: sejam s(n) >= 1, s'(n) >= 1, t(n) >= n+1 e t'(n) >= n+1 funções totais;
(a) DTIME(t) incl. NTIME(t) e DSPACE(s) incl. NSPACE(s),
(b) DTIME(t) incl. DSPACE(t) e NTIME(t) incl.NSPACE(t),
(c) Se s' in O(s), então DSPACE(s') incl. DSPACE(s) e NSPACE(s') incl. NSPACE(s),
(d) Se s' in Teta(s), então DSPACE(s') = DSPACE(s) e NSPACE(s') = NSPACE(s),
(e) Se t' in O(t) e n in o(t), então DTIME(t') incl. DTIME(t) e NTIME(t') incl. NTIME(t),
(f) Se t' in Teta(t) e n in o(t), então DTIME(t') = DTIME(t),
(g) Se s é construtível e s(n) >= log n, então NSPACE(s) incl. DTIME(2^O(s)),
(h) Se t é construtível, então NTIME(t) incl. DSPACE(t),
(i) Se s é construtível e s(n) >= log n, então DSPACE(s) incl. DTIME(2^O(s)),
(j) Se t é construtível, então NTIME(t) incl. DTIME(2^O(t)).
{
Atenção
:
Estudar o algoritmo de Dijkstra do menor percurso num grafo.
}
Cálculo do número de configurações de uma MT
23 março 2010, 14:00 • José Félix Costa
Relação entre recursos de espaço e recursos de tempo: recursos limitados de tempo impõem recursos limitados de espaço e, reciprocamente, recursos limitados de espaço impõem recursos limitados de tempo.
Cálculo de um majorante do número de configurações de uma máquina de Turing.
Exercício
: Mostre que se M1 é uma máquina de Turing que reconhece o conjunto A em espaço s construtível, tal que s(n) >= log n, então existe uma máquina M2 que decide A em espaço s (pára para todos os inputs).
DTIME(t), NTIME(t), DSPACE(s) e NSPACE(s)
23 março 2010, 12:30 • José Félix Costa
Teorema da compressão das fitas
: Se A é decidível por uma máquina de Turing determinística (não determinística) M em espaço s e c é um número real, tal que 0 < c < 1, então A é decidível por uma máquina de Turing determinística (não determinística) N em espaço c s.
Teorema de 'speedup' linear
: Se A é o conjunto decidível por uma máquina de Turing determinística em tempo t, com n in o(t(n)) e 0 < c < 1, então A é decidível por uma máquina de Turing determinística M' em tempo c t.
Proposição
: Se M é uma máquina de Turing determinística que decide A em tempo t, então existe uma máquina de Turing determinística com duas fitas, que decide A em tempo O(t.log t).
Funções construtíveis no tempo e funções construtíveis no espaço.
Exemplos
de funções construtíveis no tempo: \lambda n. n^k, para k > 1, \lambda n. n!, \lambda n. 2^kn, para k >= 1, \lambda n. 2^n^k, para k >= 1, \lambda n. n.|log n|^k, para k >= 1, \lambda n. n.log*n.
Proposição
: Se f é uma função tal que existe um \lambda > 0 tal que, a partir de certa ordem, f(n) >= (1 + \lambda).n, então f é construtível no tempo se e só se f pode ser calculada em tempo O(f).
Proposição
: Para toda a função recursiva f, existe uma função recursiva g construtível no tempo e tal que, para todo o n, g(n) > f(n).
Proposição
: f é construtível no espaço se e só se f pode ser calculada em espaço O(f).
Definição de DTIME(t), NTIME(t), DSPACE(s) e NSPACE(s), para funções totais t(n) >= n+1 e s(n) >= 1.
Extensão destes conceitos a classes de funções.
Máquinas de Turing
19 março 2010, 14:30 • José Félix Costa
Máquinas de Turing.
Tempo de execução e espaço de trabalho das máquinas de Turing: tempo de computação de uma máquina determinística relativamente a um input, tempo de execução de uma máquina determinística, tempo de computação de uma máquina não determinística relativamente a um input, tempo de execução de uma máquina não determinística, espaço de computação de máquinas determinísticas e não determinísticas relativamente a um input, espaço de trabalho de máquinas determinísticas e não determinísticas.
Linguagem decidida por uma máquina (determinística, não determinística) em (tempo, espaço) f.
Autómato finito determinístico
16 março 2010, 14:00 • José Félix Costa
TPC:
Exercício
: Indique um autómato de pilha que reconheça a linguagem {w0w: w in {1}*}.
Exercício
: Indique um autómato de pilha que reconheça a linguagem {w: w in {0,1}* tal que o nº de 0s é igual ao nº de 1s}.
Exercício
: Indique um autómato de pilha que reconheça a linguagem {a^i b^j c^k: i,j,k >= 0 e (i = j ou j = k)}.