Cos'è il ragionamento automatico?

Il ragionamento automatico è il campo dell'informatica che tenta di fornire garanzie su ciò che un sistema o un programma farà o non potrà mai fare. Queste garanzie si basano su prove matematiche. Utilizzando strategie logiche come teoremi e deduzioni, le persone risolvono molti problemi logici nel campo della matematica, della scienza e del calcolo. Il ragionamento automatico utilizza computer che utilizzano gli stessi strumenti per risolvere sfide complesse. Gli strumenti di ragionamento automatico tentano di rispondere a domande su un programma (o una formula logica) utilizzando tecniche matematiche note. Gli strumenti ti aiutano a verificare cosa c'è di vero in un'affermazione o in un'espressione.

Quali problemi può risolvere il ragionamento automatico?

Scienziati e sviluppatori di software utilizzano il ragionamento automatico per dimostrare due cose. Innanzitutto, dimostrano che la progettazione o l'implementazione di un sistema obbedisce alle sue specifiche. In secondo luogo, dimostrano che il sistema funziona nel modo in cui è stato progettato.

Il ragionamento automatico raggiunge questi obiettivi producendo dimostrazioni in logica formale supportate da teoremi matematici o verità note. Il ragionamento automatico utilizza metodi di verifica algoritmica matematici e basati sulla logica per produrre prove di sicurezza o correttezza per tutti i comportamenti possibili.

Il ragionamento automatico può essere utilizzato anche per dimostrare che i sistemi utilizzati per configurare le reti, consentire l'accesso alla rete o concedere autorizzazioni o per mantenere i dati privati e sicuri funzionano come previsto.

Quando si utilizza il ragionamento automatico, innanzitutto si presenta al sistema un'enunciazione del problema. Dopodiché, il sistema di ragionamento automatico calcola e convalida le ipotesi rispetto all'enunciazione del problema. Il software esegue questa operazione finché non esaurisce tutte le opzioni.

Esempio di problema per il ragionamento automatico

Per comprendere meglio il ragionamento automatico, considera l'enunciazione del problema I gatti vivono sulla terra? e le seguenti affermazioni:

  • I gatti sono mammiferi
  • I mammiferi vivono sulla terra

Il sistema di ragionamento automatico valuta se l'enunciazione del problema è vera.  Nello specifico, utilizza la deduzione logica. Nel nostro caso, i gatti sono mammiferi e i mammiferi vivono sulla terra. Quindi, il fatto che i gatti vivono sulla terra sarebbe verificato.

Limitazioni del ragionamento automatico

Il ragionamento automatico non fa previsioni o generalizzazioni. Ad esempio, possiamo usare il ragionamento automatico per formulare una deduzione del tipo:

  1. I gatti hanno i peli
  2. Fluffy è un gatto
  3. Quindi, Fluffy ha i peli

Mentre non possiamo usare il ragionamento automatico per formulare una deduzione come questa:

  1. I gatti sono mammiferi
  2. I gatti vivono sulla terra
  3. Quindi, tutti i mammiferi vivono sulla terra

Le applicazioni di questo tipo sono diffuse nei dimostratori di teoremi, che richiedono la supervisione umana per eseguire compiti di ragionamento deduttivo.

Quali sono alcuni casi d'uso del ragionamento automatico?

La capacità del ragionamento automatico di avanzare inferenze logiche passo dopo passo è utile in diverse aree. Utilizzando il ragionamento automatico, è possibile dimostrare le proprietà di sicurezza, conformità, disponibilità, durata e sicurezza delle architetture su larga scala.

Ecco alcuni altri casi d'uso per il ragionamento automatico.

Modellazione matematica

Scienziati, ingegneri e matematici risolvono problemi e verificano dimostrazioni matematiche applicando formule algebriche in applicazioni scientifiche. In tali pratiche, utilizzano modelli matematici che si basano su diverse variabili per dedurre le probabili soluzioni a un problema.

Verifica dell'hardware

Il ragionamento automatico aiuta gli ingegneri hardware a creare prodotti affidabili. Consente loro di scoprire potenziali difetti trascurati dai metodi di test convenzionali.

Ad esempio, i progettisti elettronici utilizzano rigorose analisi matematiche di ragionamento automatico per ottenere prove conclusive rispetto al fatto che un particolare design hardware soddisfa le sue specifiche, come i comportamenti o le esecuzioni dei sistemi.

La verifica mostra che tutti i possibili comportamenti del sistema soddisfano le proprietà temporali che costituiscono la specifica. Potrebbe anche mostrare che ogni possibile comportamento dell'implementazione del sistema è coerente con alcuni comportamenti delle sue specifiche di alto livello.

Convalida del software

Gli sviluppatori di software utilizzano il ragionamento automatico per garantire che le applicazioni siano in grado di resistere a problemi di sicurezza indesiderati e che il software funzioni come previsto o progettato. Come la convalida dell'hardware, il ragionamento automatico consente agli sviluppatori di verificare le misure di sicurezza del software rispetto a varie policy.

Ad esempio, i tecnici di Amazon Web Services (AWS) dimostrano che il codice di avvio è sicuro per ogni configurazione di avvio con il ragionamento automatico. Un altro esempio è che dimostrano che i dati archiviati ed elaborati su Amazon Simple Storage Service (Amazon S3) sono protetti. In questo esempio, si affidano al ragionamento automatico per la replica, la coerenza, il dimensionamento automatico, il bilanciamento del carico e altre attività di coordinamento.

 

Modellazione del ragionamento umano

Gli informatici utilizzano tecnologie di ragionamento automatico per configurare l'accesso. Per fare ciò, scrivono policy che descrivono quando consentire e negare le richieste di accesso a una risorsa da parte degli utenti. Questo verifica che solo gli utenti previsti abbiano accesso alla risorsa, il che è importante per la sicurezza e la privacy della risorsa stessa.

Ad esempio, gli informatici utilizzano le formule delle teorie dei moduli di soddisfazione (SMT) e i risolutori SMT per dimostrare le proprietà di sicurezza.

Quali sono alcuni strumenti e tecniche di ragionamento automatico?

Successivamente, analizzeremo diversi metodi di deduzione automatica che consentono ai sistemi informatici di riprodurre la deduzione umana.

Logica classica

La logica classica è una filosofia matematica che fornisce modelli di ragionamento di base per programmi di ragionamento logico automatizzati. Questa logica si basa sul principio che ogni proposizione ha un valore di verità vero o falso, ma non entrambi.

Si concentra principalmente sulla logica dei predicati del primo ordine, che consente ai matematici di rappresentare in una frase le variabili sconosciute come x con quantificatori come esiste. Ad esempio, gli scienziati applicano la logica classica nella programmazione logica per trovare x nella seguente frase: x esiste in un modo che x vive sulla terra e x è un mammifero.

Logica proposizionale

La logica proposizionale è un sistema logico che comprende proposizioni che possono essere vere o false e la costruzione di relazioni tra di esse, chiamate argomenti.

La classica enunciazione di un argomento nella logica proposizionale è Se P, allora Q. Ad esempio, se è sabato, allora è il fine settimana.

Il ragionamento automatico utilizza una tecnica chiamata risoluzione SAT. Utilizza strumenti chiamati risolutori SAT per cercare assegnazioni soddisfacenti agli argomenti inclusi nella logica proposizionale, ossia delle variabili che rendono vero l'argomento.

Qual è la differenza tra ragionamento automatico e intelligenza artificiale?

Il ragionamento automatico è una disciplina specifica dell'intelligenza artificiale (IA) che applica la deduzione logica ai sistemi informatici.

L'intelligenza artificiale è una scienza che insegna ai computer a pensare come gli esseri umani quando risolvono problemi. I recenti sviluppi nell'intelligenza artificiale hanno portato al progresso di varie sottodiscipline, tra cui il deep learning, l'analisi dei dati e il machine learning.

Il ragionamento automatico differisce dalle altre tecnologie di intelligenza artificiale, come l'elaborazione del linguaggio naturale (NLP), che si concentra sull'addestramento dei computer a comprendere discorsi scritti o verbali. Invece, il ragionamento automatico utilizza prove e modelli logici per ragionare sui possibili comportamenti di un sistema o di un programma, inclusi gli stati che non può o non potrà mai raggiungere.

Qual è la differenza tra ragionamento automatico e deep learning?

Il ragionamento automatico dimostra le proprietà di un programma o di un sistema. Utilizza il programma o il sistema stesso, nonché un modello o una specifica del sistema in logica formale.

Il deep learning effettua previsioni basate sull'applicazione di modelli statistici a set di dati di grandi dimensioni.

Il deep learning è una tecnologia avanzata di machine learning che simula il funzionamento del cervello umano. Utilizza diversi modelli di rete neurale costituiti da più strati di neuroni che estraggono, confrontano e analizzano le informazioni pertinenti. I data scientist utilizzano il deep learning per applicazioni complesse, come l'elaborazione dei dati ricavati da telecamere e sensori nelle auto a guida autonoma.

Maggiori informazioni sul deep learning

Il ragionamento automatico equivale al machine learning?

Il ragionamento automatico e il machine learning non sono la stessa cosa. In sintesi, il machine learning fa previsioni e inferenze. Il ragionamento automatico fornisce una prova.

Il machine learning è un sottoinsieme dell'intelligenza artificiale che addestra i computer a prendere decisioni usando campioni di dati di grandi dimensioni. Ad esempio, i data scientist utilizzano il machine learning per addestrare i software bancari a identificare attività fraudolente. Utilizzano ampi campioni di dati finanziari per garantire che il software identifichi facilmente modelli anomali sulla base di risultati appresi in precedenza.

Invece di addestrare il modello con i dati, il ragionamento automatico consente al modello di dedurre un risultato basato su verità e prove matematiche.

In che modo AWS utilizza il ragionamento automatico per migliorare le offerte di servizi?

AWS utilizza il ragionamento automatico per migliorare varie offerte di servizi. Ecco alcuni esempi:

Visita Sicurezza certificabile per ulteriori informazioni sul ragionamento automatico tra i servizi AWS. Adottiamo un approccio di sicurezza basato sul ragionamento matematico per garantire ai tuoi carichi di lavoro di sicurezza una protezione solida e affidabile.

Inizia a usufruire della sicurezza su AWS creando un account oggi stesso.

Passaggi successivi su AWS

Registrati per creare un account gratuito

Ottieni accesso istantaneo al Piano gratuito di AWS.

Registrati 
Inizia a lavorare nella console

Inizia subito a creare nella Console di gestione AWS.

Accedi