Un problema Progettare un programma per calcolare se un qualsiasi altro programma contiene un ciclo infinito –Ciclo infinito: per esempio, eseguire le.

Slides:



Advertisements
Presentazioni simili
Misure ed Errori Prof Valerio CURCIO.
Advertisements

I numeri… complessi o no?
Elementi di complessità
Macchine di Turing e ricorsività generale
Process synchronization
Il problema del minimo albero ricoprente in un grafo non cooperativo
Dati, istruzione e pseudocodice
Sistema operativo MS-DOS
Iterazione while – do while - for.
Iterazione A. Ferrari.
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F3 Iterazione.
Costruzione delle tabelle di parsing LR canoniche
Precorsi di Informatica Dott. Antonio Cisternino Settembre 2003
Deduzione naturale + Logica & Calcolabilità
Sommatorie Proprietà Serie aritmetica Serie geometrica Serie armonica
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Algoritmi e Strutture Dati
Algoritmi Politecnico di Milano
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Il problema del minimo albero ricoprente in un grafo con archi privati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
METODO SPERIMENTALE Galileo è considerato l’inventore del metodo sperimentale. Lo studioso deve prima di tutto osservare i fenomeni naturali considerando.
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente) ITERAZIONE: ripetere piu volte una sequenza di operazioni istruzioni: for, while, do.
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente)
Il Linguaggio Macchina
Algoritmi.
Gli algoritmi AA 2003/04 © Alberti Programmazione 2. Algoritmi.
Esercizi 5 Grafi.
Fondamenti di Informatica Algoritmi
Algoritmi e diagrammi di flusso
Elementi di Informatica
Da Problema a Programmazione
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
Elementi di Informatica di base
Lezione 7 Strutture di controllo Il ciclo while
Massimo Comun Divisore
Problemi facili, problemi difficili
BIOINFO3 - Lezione 221 Listruzione IF-ELSE prevede un secondo blocco di istruzioni da eseguire in alternativa al primo nel caso la condizione sia falsa.
Ripasso : Algoritmi.
L’iterazione while La sintassi è la seguente: while (condizione) {
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
C. Gaibisso Programmazione di Calcolatori Lezione II Cosa vuol dire scrivere un programma Programmazione di Calcolatori: Cosa vuol dire scrivere un programma.
Il ciclo while.  Permette di ripetere un blocco di istruzioni fino a quando non si verifica un determinato evento  Il ciclo while può essere realizzato.
Risoluzione di Problemi con gli algoritmi Ricorsivi
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
Misure ed Errori.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
Algoritmi.
NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una.
Vincenza Ferrara Novembre 2007 Fondamenti di Matematica e Informatica Laboratorio Informatica I anno a.a
1/20 NP completezza. 2/20 Problemi astratti Un problema è un’entità astratta (es. il TSP). Una istanza del problema è un suo caso particolare in cui vengono.
Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Informatica 4 La ricorsione. Definizione di ricorsione Ricorsione è la proprietà di quei programmi che, all’interno delle istruzioni che li compongono,
Problema dell’Ordinamento. Problema dell’ordinamento Formulazione del problema –Si vuole ordinare una lista di elementi secondo una data proprietà P Esempio:
Come esegue le istruzioni il microprocessore Un’istruzione è sempre composta da più operazioni elementari.
Algoritmi e Strutture Dati
Cammini minimi fra tutte le coppie:
Cammini minimi in grafi:
Sistemi e Tecnologie Informatiche Complessità di calcolo.
Rudimenti di Complessità Corso di Programmazione II Prof. Dario Catalano.
Corso di Meccanica e Termodinamica per il CdL in Fisica Corso di Meccanica e Termodinamica per il CdL in Fisica Università degli Studi di Napoli FEDERICO.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 22 Marzo 2016.
Transcript della presentazione:

Un problema Progettare un programma per calcolare se un qualsiasi altro programma contiene un ciclo infinito –Ciclo infinito: per esempio, eseguire le istruzioni con numeri 1000, 1001, …, 1010, poi sempre tornare all’istruzione 1000, poi ripetere 1001, …, 1010, poi tornare all’istruzione 1000 … ecc. Supponiamo che un programma per calcolare se un qualsiasi altro programma contiene un ciclo infinito esiste –Programma LC(P,x), dove P è un altro programma e x è l’input del programma P –Il risultato di LC(P,x) è “Sì” se, quando P è eseguito su x, fa un ciclo infinito –Altrimenti il risultato di LC(P,x) è “No”

Un problema Supponiamo che esiste un programma CD(P): –Calcola LC(P,P) –Se il risultato di LC(P,P) è “Sì”, termina con il risultato “Sì” –Altrimenti, torna al punto del CD(P) dopo il calcolo di LC(P,P) Ans=LC(P,P) Ans? Termina con risultato Ans “No” “Sì” CD(P)

Un problema Eseguire CD su se stesso: che cos’è il risultato di CD(CD)? –Se il risultato di LC(CD,CD) è “No”: vuol dire che CD non ha un ciclo infinito con input CD –Poi CD(CD) fa un ciclo infinito (in rosso) –Il risultato di LC è scorretto Ans=LC(P,P) Ans? Termina con risultato Ans “No” “Sì” CD(P)

Un problema Eseguire CD su se stesso: che cos’è il risultato di CD(CD)? –Se il risultato di LC(CD,CD) è “Sì”: vuol dire che CD ha un ciclo infinito con input CD –Poi CD(CD) non fa un ciclo infinito (in rosso) –Il risultato di LC è scorretto (di nuovo) Ans=LC(P,P) Ans? Termina con risultato Ans “No” “Sì” CD(P)

Un problema Non è possibile trovare un programma per calcolare se un qualsiasi altro programma contiene un ciclo infinito Per molti problemi che possono essere descritti formalmente, non possiamo trovare programmi per la loro soluzione Per altri problemi, possiamo trovare programmi per la loro soluzione, ma non programmi efficienti –Programma efficiente: il numero di istruzioni eseguiti è una funzione polinomiale della dimensione del input al programma –Per esempio: non sì può trovare un programma efficiente per trovare l’insieme meno costoso di biglietti aerei per fare un viaggio a n città