Funzione ricorsiva e Fukuchi: differenze tra le pagine

(Differenze fra le pagine)
Contenuto cancellato Contenuto aggiunto
LauBot (discussione | contributi)
m Sostituisco Collegamenti esterni ai vecchi template e rimuovo alcuni duplicati
 
FrescoBot (discussione | contributi)
 
Riga 1:
{{S|centri abitati della prefettura di Fukuoka}}
Nella [[logica matematica]] e nell'[[informatica]], le '''funzioni ricorsive''' sono una [[Classe (insiemistica)|classe]] di [[Funzione (matematica)|funzioni]] dai [[numero naturale|numeri naturali]] ai [[numero naturale|numeri naturali]] che sono "calcolabili" in un qualche senso intuitivo. Infatti nella [[teoria della calcolabilità]] si mostra che le funzioni ricorsive corrispondono precisamente a quelle funzioni che possono essere calcolate tramite una [[macchina di Turing]].
{{Divisione amministrativa
|Nome = Fukuchi
|Nome ufficiale = 福智町
|Panorama =
|Didascalia =
|Bandiera =
|Stemma =
|Stato = JPN
|Grado amministrativo = 5
|Tipo = [[Cittadina del Giappone|cittadina]]
|Divisione amm grado 1 = Kyūshū
|Divisione amm grado 2 = Fukuoka
|Divisione amm grado 4 = Tagawa
|Divisione amm grado 3 = no
|Amministratore locale =
|Partito =
|Data elezione =
|Data istituzione =
|Data soppressione =
|Latitudine decimale = 33.683333
|Longitudine decimale = 130.783333
|Latitudine gradi =
|Latitudine minuti =
|Latitudine secondi =
|Latitudine NS =
|Longitudine gradi =
|Longitudine minuti =
|Longitudine secondi =
|Longitudine EW =
|Altitudine =
|Superficie = 42.04
|Note superficie =
|Abitanti = 25541
|Note abitanti =
|Aggiornamento abitanti = 2005
|Sottodivisioni =
|Divisioni confinanti =
|Lingue =
|Codice postale =
|Prefisso =
|Fuso orario =
|Codice statistico =
|Codice catastale =
|Targa =
|Nome abitanti =
|Patrono =
|Festivo =
|Mappa = Fukuchi in Fukuoka Prefecture Ja.svg
|Didascalia mappa =
}}
 
{{nihongo|'''Fukuchi'''|福智町}} è una [[Cittadina del Giappone|cittadina giapponese]] della [[prefettura di Fukuoka]].
Le funzioni ricorsive sono un sovrainsieme delle [[funzione ricorsiva primitiva|funzioni ricorsive primitive]], ed infatti la loro definizione induttiva (come vedremo nel seguito) è costruita a partire da quella di queste ultime. Esistono quindi funzioni ricorsive che non sono anche ricorsive primitive, e l'esempio più noto è quello della [[funzione di Ackermann]].
 
== Altri progetti ==
Altre classi di funzioni [[turing equivalenza|equivalenti a quella delle funzioni ricorsive]] sono le [[funzioni lambda-ricorsive|funzioni λ-ricorsive]] e le funzioni che possono essere calcolate da un [[algoritmo di Markov]].
{{interprogetto}}
 
== Definizione ==
Le funzioni ricorsive sono definite sulla base delle [[Funzione ricorsiva primitiva|funzioni ricorsive primitive]].
 
Le funzioni ricorsive sono la più piccola classe di funzioni contenente le funzioni ricorsive primitive chiusa rispetto agli operatori di composizione, di ricorsione primitiva e all'operatore μ, detto anche operatore di minimizzazione.
 
L'operatore μ è così definito:
 
Minimizzazione <math>\mu</math>: data una funzione totale <math>f(y, x_1, \ldots, x_n)</math>:
:<math>\begin{align}
\mu,y:(f(y, x_1, \ldots, x_n)=0)\ &\stackrel{\mathrm{def}}{=} \text{ il piu' piccolo } y \text{ tale che } f(y, x_1, \ldots, x_n)=0\ \ \text{ (se esiste)}
\end{align}</math>
 
Le funzioni ricorsive primitive sono quindi un sottoinsieme delle funzioni ricorsive. Si noti che mentre le funzioni ricorsive primitive sono sempre totali (NB: non tutte le funzioni totali sono ricorsive primitive), le funzioni ricorsive possono essere parziali, ovvero possono non essere definite per alcuni valori di input: infatti, l'operatore minimizzazione non restituisce alcun valore nel caso in cui la funzione a cui è applicato non si annulla per nessun valore dell'argomento.
 
Si ricorda comunque che l'operatore di minimizzazione opera su funzioni totali. Si può dimostrare che se si ammette l'applicazione dell'operatore di minimizzazione su funzioni parziali, allora le funzioni ricorsive non sarebbero chiuse rispetto alla minimizzazione.
 
== Esempi di funzioni ricorsive ==
* [[Numero di Fibonacci]]
* [[Funzione 91 di McCarthy]]
* [[Funzione di Sudan]]
 
== Limitazioni: funzioni non ricorsive ==
Non tutte le funzioni sono calcolabili, cioè ricorsive. Ecco alcuni esempi.
 
=== Il problema della fermata ===
==== Teorema ====
Consideriamo una qualunque [[Enumerazioni nella teoria della calcolabilità#Enumerazione delle funzioni ricorsive|enumerazione delle funzioni ricorsive]], in cui la funzione <math>\varphi_i</math> corrisponde alla <math>i+1</math>-esima funzione ricorsiva. Cioè detta <math>f</math> la <math>i+1</math>-esima funzione ricorsiva, abbiamo:
:<math>\varphi_i(y) = f(y) </math>
 
Allora, non esiste nessuna funzione ricorsiva <math>g</math> tale che per ogni <math>x</math> e <math>y</math>
:<math>
g(x, y) =
\begin{cases}
1 & \mbox{se } \varphi_x(y) \mbox{ è definita}
\\ 0 & \mbox{altrimenti }
\end{cases}
</math>
 
Questo problema è una formulazione del [[problema della fermata]]. Si veda l'[[Insieme ricorsivo#Il problema della fermata|apposita sezione]] nell'articolo sugli [[insieme ricorsivo|insiemi ricorsivi]] per una formulazione alternativa.
 
==== Dimostrazione ====
Supponiamo per ipotesi che <math>g</math> sia ricorsiva. Allora lo sarebbe anche una funzione <math>h</math> così definita:
:<math>
h(x) =
\begin{cases}
1 & \mbox{se } g(x, x)=0 \mbox{, cio} \grave{e} \mbox{ se } \varphi_x(x) \mbox{ non } \grave{e} \mbox{ definita}
\\ \text{indefinita} & \mbox{altrimenti}
\end{cases}
</math>
 
Diciamo che nell'[[Enumerazioni nella teoria della calcolabilità#Enumerazione delle funzioni ricorsive|enumerazione delle funzioni ricorsive]] che abbiamo dato, <math>e</math> sia l'indice della funzione <math>h</math>, e che quindi <math>h = \varphi_e</math>.<BR>Se passiamo l'indice <math>e</math> (che è un [[numero naturale]]) come parametro alla funzione <math>h</math>, abbiamo <math>h(e) = \varphi_e(e)</math>.<BR>Per la definizione di <math>h</math> abbiamo che <math>h=1</math> [[se e solo se]] <math>g(e, e)=0</math>.<BR>Ma per la definizione di <math>g</math> abbiamo che <math>g(e, e)=0</math> se e solo se <math>\varphi_e(e)</math> non è definita.<BR>Ricapitolando <math>\varphi_e(e) = h(e) = 1</math> se e solo se <math>g(e, e)=0</math>, che è come dire che <math>\varphi_e(e) = 1</math> se e solo se <math>\varphi_e(e)</math> non è definita, che è [[assurdo]].<BR>Quindi questa [[dimostrazione per assurdo]] mostra che l'ipotesi iniziale "<math>g</math> è ricorsiva" è falsa.
 
== Bibliografia ==
* Giorgio Ausiello, Fabrizio d'Amore, Giorgio Gambosi; Franco Angeli Editore: ''Linguaggi, Modelli, Complessità'', 2003. ISBN 88-464-4470-1
* Brainerd, W. S., Landweber, L. H., ''Theory of Computation'', Wiley, 1974. ISBN 0471095850
 
== Voci correlate ==
*[[Induzione]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{SEP|recursive-functions}}
 
{{Controllo di autorità}}
{{Portale|matematica}}
{{Portale|Giappone}}
 
[[Categoria:RicorsioneComuni della prefettura di Fukuoka]]
[[Categoria:Funzioni matematiche|Ricorsiva]]