Che cos'è esattamente il calcolo?


20

So cos'è il calcolo in un certo senso (è la cosa che fanno i computer), ma vorrei una definizione più rigorosa.

Dictionary.comLe definizioni di calcolo, elaborazione, calcolo e calcolo sono circolari, quindi non aiuta.

Wikipediadefinisce il calcolo come "qualsiasi tipo di calcolo che segue un modello ben definito". Definisce il calcolo come "il processo deliberato che trasforma uno o più input in uno o più risultati, con variazione variabile". Ma sembra che questa definizione includa molte azioni come calcoli anche se in genere non sono considerati calcoli.

Ad esempio, ciò non implicherebbe che, per esempio, l'esplosione di una bomba sia un calcolo, con l'ingresso che viene acceso il fusibile e che l'uscita è l'esplosione?

Quindi, cos'è esattamente il calcolo?


Questa è una grande domanda classica.
Ran G.


@Raphael Per quanto ne so, calcolo! = Un algoritmo. Tuttavia, forse l'esecuzione di un algoritmo è un calcolo.
Kelmikra,

Per me, "P è calcolabile" == "Esiste un algoritmo che risolve P" (per P qualche problema). Questo potrebbe essere il risultato dal mio punto di vista TCS.
Raffaello

@Raphael Questo sta chiedendo cosa sia il calcolo, non cosa significhi che P sia calcolabile.
Kelmikra,

Risposte:


6

Forse il problema qui sta cercando una definizione altamente specifica di un concetto molto generale. Non vedo il problema di visualizzare praticamente tutto come un calcolo. Anche se non ci pensiamo, tutto ciò che facciamo è espressibile in termini di Fisica delle parti componenti, fino ad almeno quark che ronzano. Abbiamo la stessa situazione con il calcolo. Ci sono input, output e un processo (che potrebbero essere banali). Che siano interessanti o utili come calcoli o modelli di calcolo è una domanda molto diversa.

La definizione di lavoro più forte che abbiamo viene dalla (forte) tesi Church-Turing, che afferma che ogni possibile modello di calcolo fisicamente realizzabile non è più potente di una macchina di Turing. Se ritieni che ciò sia vero, anche se potremmo avere molto modo di esprimere le cose, alla fine possiamo ridurre ogni calcolo a una macchina di Turing, dando così una definizione di calcolo come "qualsiasi cosa che possiamo ridurre a una macchina di Turing".

In questo modello, la bomba che esplode è un calcolo. Non è ampiamente applicabile (speriamo;)), ma possiamo modellare in qualche modo con una Turing Machine (anche se qui c'è un argomento sulla natura dell'output e l'equivalenza con l'output del TM). Inoltre, non è un buon modello di calcolo in generale, in quanto sembra improbabile che il modello di bomba che esplode sia Turing completo.


2
Piuttosto fuori tema, ma scommetto che il modello di bomba che esplode è Turing completo! Le esplosioni potrebbero innescare altre esplosioni, che potrebbero essere utilizzate per propagare segnali e creare porte. La bomba b potrebbe essere impostata per esplodere in un determinato momento tramite un dispositivo, ma una bomba vicina potrebbe disabilitare il dispositivo senza causare l'esplosione di b, il che consente di non-gate.
Kelmikra,

@ Kyth'Py1k come porte domino? Non penso che sarà completamente completo perché non è possibile eseguire il ciclo indefinitamente poiché il "calcolo" si interromperà sempre in base alle dimensioni della macchina / campo minato
maniaco del cricchetto,

1
@ratchetfreak A meno che i resti delle bombe non vengano trasformati in nuove bombe tramite nanobot e poi riposizionati ...
Kelmikra,

4

Questa è la domanda che Turing decise di risolvere nel suo famoso documento del 1936, Su numeri calcolabili, con un'applicazione al problema di Entscheidungs , un documento in cui si inventò (quello che divenne noto come) il modello della macchina di Turing. Vedi in particolare la Sezione 9.

Il lavoro di Turing è nel contesto di numeri calcolabili . Esistono altre nozioni di calcolo appropriate per calcolare altri tipi di strutture e il loro studio fa parte della teoria del calcolo (nota anche come teoria della ricorsione).

La differenza principale tra la nozione comune di calcolo e il tuo esempio (una bomba che esplode) è la cosa calcolata. Cosa viene calcolato dalla tua bomba che esplode? Un'altra differenza è il mezzo computazionale, ma si può immaginare un aggeggio meccanico che utilizza le bombe per calcolare qualcosa di più legittimo.

Un altro punto è se le nozioni classiche di calcolo si applicano a ciò che oggi percepiamo come calcolo - vale a dire, interazione a due vie tra il computer e l'utente. Questa è una critica comune rivolta contro il nozionale classico della calcolabilità, sebbene l'interazione possa essere modellata usando gli strumenti della teoria del calcolo (non è proprio ciò che apprendi in classe).


Naturalmente un'esplosione è un calcolo. "Calcola" esattamente la trasformazione unitaria che descrive l'esplosione. A proposito, molte volte i fisici che ho incontrato sono stati "sconvolti" quando dici che (diciamo) un gate quantistico calcola un unitario, piuttosto che evolverlo o trasforma di conseguenza il sistema fisico (" il gate prende carta e penna e calcola il unitario "?) :)
Ran G.,

Ho letto la sezione nove di "Su numeri calcolabili, con un'applicazione al problema di Entscheidungs", ma non mi è sembrato davvero di aiuto. Anche se non l'ho letto in modo estremamente approfondito, sembra che stia gettando le basi per le macchine di Turing. Stai dicendo che il calcolo è qualcosa che può essere modellato come un'azione fatta da una macchina di Turing? Se è così, quasi tutto non sarebbe un calcolo? Ad esempio, le esplosioni di bombe potrebbero essere modellate come una macchina di Turing in modo tale che le posizioni, la velocità e i tipi delle particelle quantistiche delle particelle circostanti siano codificate come binarie.
Kelmikra,

"Cosa viene calcolato dalla tua bomba che esplode?" Il cambiamento negli stati delle particelle che circondano la bomba secondo le leggi della fisica sono in fase di calcolo.
Kelmikra,

"Un altro punto è se le nozioni classiche di calcolo si applicano a ciò che oggi percepiamo come calcolo - vale a dire, interazione a due vie tra il computer e l'utente." Non penso che questo sia proprio ciò che è considerato calcolo. Si pensa che i robot autonomi eseguano calcoli, anche se non è necessario che interagiscano con gli utenti.
Kelmikra,

Ecco un'idea: l'informatica è il processo di generazione di output per favorire l'inferenza fatta da ottimizzatori (ad es. Persone e robot). Com'è quello?
Kelmikra,

1

ABxAyBxAx

xxyxy , quindi calcolano qualcosa (anche se questa mappatura non è ricorsiva e nessun computer può produrla).

t=0t=1

In conclusione: qualsiasi mappatura definisce un calcolo. Qualsiasi "dispositivo" che trasforma un input nell'output corrispondente, esegue ("calcola") quel calcolo specifico.



(1) possiamo estendere la discussione a questi tipi di calcoli, che avranno senso quando penserai a funzioni che non sono ricorsive, ma preferisco non andarci.


Il problema con questa definizione è che non corrisponde a come viene effettivamente utilizzata la parola "calcolo". Si pensa che i PC facciano calcoli, mentre, diciamo, gli esplosivi no.
Kelmikra,

IMHO una mappatura è esattamente ciò che non è un calcolo. Penso che confondi sintassi e semantica. Chiaramente capisci la mappatura come una relazione input-output, comunque definita. Secondo tutti i miei libri, questa è la semantica. Il calcolo è il mezzo utilizzato per ottenere effettivamente l'output corrispondente ad alcuni input attraverso una sequenza di passaggi. Mentre potresti dire che qualsiasi calcolo definisce una mappatura (anche se solo sintattica), penso che sia sbagliato considerare che una mappatura definisce un calcolo, a meno che tu non spieghi attentamente che stai andando in ipercomputer che sembra un po 'al di là della domanda.
babou,

Dovrei chiarire lo spirito della mia risposta (mi rendo conto che non è formulata in questo modo): la mappatura stessa non è un calcolo. Il processo di conversione di un input in un output è un calcolo di quella specifica mappatura (funzione). Quello che stavo cercando di comunicare è che il processo specifico è rilevante, ogni processo di questo tipo è un calcolo (anche un processo molto astratto, ad esempio un "oracolo").
Ran G.

1

Non tenterò di definire cosa sia un calcolo, fatto piuttosto bene da Luke Mathieson e Yuval Filmus.

Tuttavia, pensare a un dispositivo che esplode come un calcolo mi porta a un problema secondario importante: se l'esplosione è un calcolo, allora cosa calcola? Altro che una rappresentazione del dispositivo dopo che è esploso.

Quello a cui sto puntando è che possiamo definire in modo abbastanza preciso ciò che consideriamo un calcolo e persino ciò che può essere visto (inventato?) Come uno. Possiamo descrivere un calcolo. Ma possiamo dire di cosa si tratta?

Il calcolo, come comunemente definito, è un gioco puramente sintattico. È un gioco di strutture fisiche che vengono trasformate secondo regole precise. Poiché il nostro unico strumento (fino alle trasformazioni standard) per rappresentare le strutture fisiche è in definitiva la stringa di simboli, il calcolo finisce per essere definito come una sorta di trasformazioni formali su stringhe di simboli. Ciò vale per le macchine di Turing, il lambda-calcolo, le funzioni parziali ricorsive e altri modelli meno popolari. La parola calcolo (come in lambda-calcolo) riflette in realtà questa visione in quanto, in latino, i calcoli sono piccole pietre utilizzate per la rappresentazione.

Ma ciò che non dice è che significato deve essere associato a questa sintassi, che cosa rappresenta. Ecco quel poco che penso di capire, dato che non sono uno specialista di tali problemi (quindi ricontrolla me). Il problema è coperto dalla teoria dei modelli .

Dato un sistema formale di rappresentazioni, eventualmente associato a una logica (assiomi e regole di inferenza) o un sistema di calcolo (regole di trasformazione), un modello della teoria formale è una struttura matematica con componenti che seguono queste regole.

Lo stesso calcolo, o più precisamente la stessa descrizione di un calcolo, può effettivamente avere molti modelli corrispondenti a entità molto diverse.

Ad esempio, un algoritmo GCD descrive un calcolo. Ma può essere interpretato su numeri naturali o su polinomi.

Questo ricorda Bertrand Russell'quote :

La matematica può essere definita come l'argomento in cui non sappiamo mai di cosa stiamo parlando, né se ciò che stiamo dicendo sia vero.

La situazione è praticamente la stessa per il calcolo. È un gioco formale, in cui le mosse possono essere comprese in molti modi diversi. Ma ci sono in realtà legami profondi tra la matematica definita formalmente dai sistemi assiomatici e la teoria del calcolo.

Il calcolo, l'algoritmo, sono stati definiti per risolvere problemi matematici e molti dei concetti moderni sono stati pensati dai logici che cercavano di comprendere i meccanismi che ci consentono di provare i teoremi, a partire dagli assiomi e applicando le regole di inferenza.

Quindi, per tornare al dispositivo che esplode, può certamente essere interpretato come una manipolazione di una rappresentazione, cioè come un calcolo. Ma è generalmente piuttosto difficile associarlo ad alcun significato diverso da se stesso.

Tuttavia, questo non è sempre vero, o non lo era. Il principio del calcolo analogico si basa sull'idea che è possibile utilizzare un sistema di rappresentazione diverso per i calcoli che sono correlati in qualche modo preciso. Quindi possiamo calcolare con un sistema per avere un'idea di ciò che l'altro sistema (troppo ingombrante per usare effettivamente, ad esempio un universo :) calcolerebbe nell'impostazione corrispondente.


0

Mi piace rispondere a questo tipo di domande sulla terminologia in termini etimologici.

Quindi, il calcolo deriva dalla parola latina compŭtus che letteralmente significa "calcolo".

In lingue latine come francese, italiano, spagnolo o portoghese (tra gli altri) questa etimologia è condivisa con "racconto" (una storia) in francese conte / conte in spagnolo cuenta / cuento in portoghese conta / conto ecc ...

Quindi calcolare è calcolare e raccontare come è stato fatto questo calcolo.

Pertanto, direi che il calcolo è il processo di utilizzo di regole matematiche e logiche per elaborare una determinata informazione, quindi nuove informazioni significative vengono dedotte dai dati originali, tenendo traccia di come sono state generate queste nuove informazioni (processore, memoria, input e output sono quindi i fondamentali coinvolti)


In francese, un racconto è "conte", "cuento" in spagnolo. Mentre "compte" è un calcolo, o una fattura, "cuenta" in spagnolo. Non so che, sebbene gli omofoni, "compte" e "conte" condividano un'etimologia comune (no "h" afaik), ma questa etimologia comune sembra essere confermata sul web. Quindi tutta questa faccenda della computabilità è solo storie?
babou,

Je l'ai corrigé. Dovrei non commettere questo tipo di errori, ma non sono ancora così bravo a scrivere francese
Luis Sieira,

O forse le storie sono solo calcoli. Prendi un sacco di personaggi con una determinata personalità in alcune condizioni iniziali, e il resto della storia viene calcolato
Luis Sieira,

"tenere traccia di come sono state generate queste nuove informazioni (processore, memoria, input e output sono quindi i fondamenti coinvolti)." Ciò non implica che qualcosa non sia un calcolo a meno che uno non tenga traccia del loro utilizzo della memoria mentre lo fa? Non suona bene ...
Kelmikra,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.