Intelligenza Artificiale: Tra Uomo e Macchina

Embed Size (px)

Citation preview

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    1/311

    Tesina a cura di : Del Prato Giacomo

    Classe 5^Info B

    A.S. 2012/2013

    TRA UOMO E MACCHINA

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    2/312

    INDICE 1 - INTRODUZIONE ....................................................................................................................................................... 3

    1.1 - L’idea di progetto ............................................................................................................................................. 3

    2 – IL PROGETTO .......................................................................................................................................................... 5

    2.1 - Implementazione del progetto ........................................................................................................................ 5

    2.2 - L’Applicazione................................................................................................................................................. 6

    2.2.1 - Lato Client .................................................................................................................................................... 8

    2.2.1.1 - Schema di funzionamento del programma ................................................................................................. 8

    2.2.1.2 - Esempio di funzionamento stati principali .................................................................................................. 8

    2.2.1.3 – Codice Client ......................................................................................................... 9

    2.2.2 - Lato Server ................................................................................................................................................. 10

    2.2.2.1 - Schema di funzionamento del programma ............................................................................................... 10

    2.2.2.2 - Esempio di funzionamento stati principali ................................................................................................ 11

    2.2.2.3 – Codice Server ...................................................................................................... 11

    3 – INTELLIGENZA ARTIFICIALE ................................................................................................................................... 13

    3.1 - Artificial Intelligence ...................................................................................................................................... 133.1.1 - What is an Ai .............................................................................................................................................. 13

    3.1.2 - History Of Ai ......................................................................................................................... 13

    3.1.3 - Positive Effects of Ai ........................................................................................ ..................... 14

    3.1.4 - Negative Effects of Ai .................................................................................................................................. 15

    3.1.5 - Filmography and Bibliography ..................................................................................................................... 15

    3.2 - Struttura intelligenza artificiale ...................................................................................................................... 17

    3.3 – File AIML ...................................................................................................................................................... 18

    3.4 - Un’applicazione concreta: Il Sistema di acquisizione deidati....... .....................................................................20

    4 – L’APPLICAZIONE IN RETE ..................................................................................................................................... 22

    4.1 - Protocollo di accesso ..................................................................................................................................... 22

    4.2 - Protocollo di comunicazione .......................................................................................................................... 25

    4.3 – Il modello ISO / OSI ....................................................................................................................................... 28

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    3/313

    Introduzione

    L’idea di progetto L’idea che sta alla base di questo progetto è quella di voler realizzare un’entitàinformatica in grado di poter assimilare tutte le conoscenze degli esseri umani,quindi un’Intelligenza Artificiale che riesca a rispondere a qualsiasi domanda. Per lenostre conoscenze attuali sembra una cosa impossibile ma nel corso di alcuni annipotrebbe essere una cosa realizzabile che porterebbe ad una grande rivoluzione intutto il mondo. Infatti, l’Intelligenza Artificiale in questione potrebbe riscontrarediverse applicazioni nella vita reale, ad esempio, potrebbe sostituire qualsiasi

    manuale, enciclopedia o dizionario perchè tutte le informazioni che cerchiamo sonogià organizzate e reperibili all’interno del cervello elettronico. Come detto prima,questo non vuole avere la presunzione di poter cambiare il mondo perchè è cosadifficile ma vuole essere una sperimentazione basata su un argomento cosi delicatoe discusso com’è l’intelligenza artificiale.

    Il progetto iniziale era quello di creare un intelligenza artificiale in grado di impararedai discorsi delle persone, quindi di rendere un computer quasi umano.

    Lo studio per l’implementaz ione di questo progetto si basava sulla creazione di unsistema di chat tra più utenti dove al centro di questo sistema vi era un server, ilquale oltre che a gestire le connessioni tra i client doveva inserire le conversazioniall’interno di un database composto da due tabelle , domande e risposte.

    In questo modo se un utente voleva interagire con l’intelligenza artificiale dovevainviare al server la domanda che veniva poi salvata nel database.

    Dopo alcuni mesi di lavoro ho dovuto abbandonare questo progetto moltoambizioso perchè per la realizzazione di un’idea di queste proporzioni è necessariauna task force di ingegnieri, indi per cui, ho ridimensionato il progetto sulla base deiparametri limitanti quali tempo e risorse.

    Dopo varie ricerche ho scoperto che esiste una libreria per vb.net che permette lacreazione di chatbot cioè di programmi che rispondono con domandepreprogrammate, con questa scoperta mi si è aperto un mondo di nuovi progetti da

    poter realizzare come ad esempio riuscire a far parlare due chatbot tra di loro,ma lascelta poi è ricaduta sul realizzare una chat, tra “umano” e bot cosi da non sprecare

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    4/314

    tutto il lavoro che fino a quel momento avevo fatto sulle chat, cosi è nato il progettodi una chat tra umano e bot.

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    5/315

    Il progetto

    Implementazione del progettoPer l’implementazione del progetto mi sono basato sull’utlizzo di due linguaggi ilVb.net e l’AIML

    Il Vb.NET, linguaggio molto diffuso atto a sviluppare applicazioni eseguibili inambiente Windows. Vb.NET è un linguaggio di programmazione ad oggetti ad altolivello che permette all’utente di implementare le proprie idee con una vastissimagamma di opzioni.

    Per quanto riguarda l’AIML che è l’acronimo di Artificial Intelligence MarkupLanguage, è un dialetto dell'XMLinventato per creare programmi che riescano adinterpretare il linguaggio naturale. Questo dialetto fu inventato da da RichardWallace e successivamente sviluppato da una comunità di software libero tra il 1995e il 2002.

    Prima di tutto ho iniziato a pensare come mettere in comunicazione client e server,per risolvere questo problema ho utilizzato i socket di Vb.NET grazie ai quali riesco a

    creare connessioni TCP tra due host all’interno di una LAN.

    Dopo aver pensato alla connessione ho dovuto pensare come riuscire a crearequesta intelligenza artificiale e qui navigando in rete ho scoperto l’esistenza di una.dll di Vb.NET chiamata AIMLbot che permette la creazione di intelligenze artificialiutilizzando come fonte di informazioni un file scritto in AIML. Da qui in poi il passo èstato semplice infatti dopo aver messo in connessione client e server ho realizzatoanche uno scambio di trame contenenti del testo e successivamente ho applicato i

    metodi della .dll riuscendo cosi a far avere in input al server la domanda del clientcosi che il server potesse attraverso il metodo .chat inoltrare la domanda al servercosi da ricevere in input la risposta che poi sarà inviata al client come risposta allasua domanda.

    https://it.wikipedia.org/wiki/XMLhttps://it.wikipedia.org/wiki/Linguaggio_naturalehttps://it.wikipedia.org/wiki/Linguaggio_naturalehttps://it.wikipedia.org/wiki/XML

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    6/316

    L’Applicazione L’applicazione ha come obiettivo principale quello di permettere la comunicazionetra un essere umano e macchina.

    Quindi l’applicazione sarà divisa in due parti, una client, l’utente , e l’altra server, laAI.

    La progettazione e la realizzazione di queste due entità del sistema sono statediverse infatti nella prima si vuole che l’applicazione sia in grado di inviare messaggi,mentre nell’altra si è studiato un modo per ottenere prima la ricezione delmessaggio del client e poi una trasmissione della risposta al medesimo client

    L’interfaccia grafica di entrambe le applicazioni è molto scarna infatti si èconsiderata questa soluzione per non andare a distrarre l’attenzione su ciò che èveramente interessante, cioè l’anima del programma. Il codice.

    L’interfaccia del client è cosi composta:

    Button1 :Connessione al server

    Button2:Invio trama

    Textbox1:Input domanda

    Textbox2:Cronologia dialoghi

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    7/317

    Mentre l’interfaccia del server è cosi composta:

    Textbox1:Stato server

    Button1 : Avvio server

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    8/318

    Lato Client

    Schema di funzionamento

    Esempio di funzionamento stati principali

    CONNESSIONE

    In questo stato il client invia la richiesta di connessione al server così da iniziare la

    conversazione.

    INVIO

    In questo stato il client invia una stringa di caratteri cioè la domandaopportunamente convertita in una sequenza di byte.

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    9/319

    RICEZIONE

    In questo stato il client si mette in ascolto e riceve la risposta alla domanda postanello stato precedente e dopo averla convertita da byte a stringa la visualizza sulloschermo.

    Codice Client

    Imports System.Net.Sockets 'Libreria per gestire i sockets Imports System.Text. UTF8Encoding 'Libreria per decodificare in UTF8

    Public Class Form1

    Dim cliente As TcpClient 'Variabile client Dim flusso As NetworkStream 'Variabile flusso di dati client-server

    Private Sub Button1_Click( ByVal sender As System. Object , ByVal e As System. EventArgs )Handles Button1.Click

    Dim AddressIP As String = TextBox1.Text 'Metto l'ip dentro ad AddressIP cliente = New TcpClient 'cliente è un nuovo client cliente.Connect(AddressIP, 8888) 'Connetti cliente all'indirizzo ip indirizzo

    attraverso la porta 8888 If cliente.Connected Then 'Se cliente è connesso allora... (cioè se il server è in

    ascolto) TextBox3.Text = TextBox3.Text & "Connesso!" & vbCrLf 'Scrivo in TextBox3 flusso = cliente.GetStream() 'flusso è l’invio/ricezione (Stream) di dati con il

    server al quale cliente è connesso Timer1.Start() 'Avvio Timer1

    Else 'Altrimenti...

    TextBox3.Text = TextBox3.Text & "Il server non risponde!" & vbCrLf 'Scrivo inTextBox3 End If 'Fine se

    End Sub

    Private Sub Timer1_Tick( ByVal sender As System. Object , ByVal e As System. EventArgs )Handles Timer1.Tick

    If cliente.Available > 0 Then 'Se i dati che ricevi dal server al quale è connessocliente sono disponibili e sono maggiori di 0

    Dim temp(cliente.Available - 1) As Byte 'Dichiaro un array con dimensioni ugualial numero di dati ricevuti da cliente meno 1

    flusso.Read(temp, 0, temp.Length) 'Leggo il flusso di dati Dim testo As String = UTF8.GetString(temp) 'Decodifica temp in stringa UTF8 e

    mettila in testo

    TextBox3.Text = TextBox3.Text & vbCrLf & "AI:" + testo 'Scrivo nella TextBox3

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    10/3110

    End If End Sub

    Private Sub Button2_Click( ByVal sender As System. Object , ByVal e As System. EventArgs )Handles Button2.Click

    TextBox3.Text = "USER:" + TextBox2.TextDim temp() As Byte = UTF8.GetBytes(TextBox2.Text) 'Decodifica la stringa trama in

    bytes e metti ogni byte nell'array temp flusso.Write(temp, 0, temp.Length) 'Scrivi il flusso di dati TextBox2.Text = "" 'Cancello testo TextBox2.Focus() 'Attivo TextBox2

    End Sub

    Lato server

    Schema di funzionamento del programma

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    11/31

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    12/3112

    End If 'Fine se End Sub

    Private Sub Timer2_Tick( ByVal sender As System. Object , ByVal e As System. EventArgs )Handles Timer2.Tick

    If cliente.Available > 0 Then 'Se i dati che ricevi dal cliente che staicontrollando (cliente(r)) sono maggiori di 0 e sono disponibili per la lettura allora...

    Dim temp(cliente.Available - 1) As Byte 'Dichiaro un array con dimensioniuguali al numero di dati ricevuti da cliente meno 1

    flusso.Read(temp, 0, temp.Length) 'Leggo il flusso di dati (flusso) che è ilflusso di dati inviato da cliente, e metto questi dati dentro all'array temp (byte perbyte) per tutta la loro dimensione

    Dim testo As String = UTF8.GetString(temp) 'Decodifica temp in stringa UTF8 emettila in testo

    Dim domanda As New Request (testo, MyUser, MyBot) 'Dichiaro un oggetto requestche mi servirà per inoltrare la domanda al bot

    Dim risposta = MyBot.Chat(domanda) 'con il metodo .chat ottengo la risposta allamia domanda

    temp2 = risposta.ToString 'converto la risposta in stringDim temp3(temp2.Length) As Byte 'dichiaro un array di byte dove inseriro la

    risposta convertita in byte temp3 = UTF8.GetBytes(temp2) 'converto in byteflusso.Write(temp3, 0, temp2.Length) 'invio la stringa di byte al client

    End IfEnd Sub

    Private Sub Form1_Load( ByVal sender As System. Object , ByVal e As System. EventArgs )Handles MyBase .Load

    MyBot = New Bot 'creo un nuovo oggetto botMyUser = New User ( "user" , MyBot) 'creo un nuovo oggetto utente

    MyBot.loadSettings() 'carico le impostazioni del bot Dim Loader As New AIMLbot.Utils. AIMLLoader (MyBot) ' creo l'oggetto loader che mipermettera di importare il file aiml contenente le risposte alle domande

    Loader.loadAIML( "cartella aiml" ) 'importo la cartella contenente i file con lerisposte alle domande

    End Sub End Class

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    13/3113

    Artificial Inteligence

    What is AIArtificial intelligence is one of the promising inventions that some of the people areexcited about. Many people think that artificial intelligence will change the face ofhow we live our life. The artificial intelligence or AI is the ability of a computer orother machine to perform actions that require intelligence. Among these actions arelogical deduction, creativity, the ability to make decisions based on past experienceand the ability to understand spoken language.

    History of AIThinking machines and artificial beings appear in Greek myths, suchas Talos of Crete, the bronze robot of Hephaestus, Bythe 19th and 20th centuries, artificial beings hadbecome a common feature in fiction, as in MaryShelley's Frankenstein or Karel Čapek's R.U.R . Storiesof these creatures are usually about hopes, fearsand ethical concerns that are presented by artificialintelligence.

    Mechanical or "formal" reasoning has been developedby philosophers and mathematicians sinceantiquity.The father of Artificial Intelligence is AlanTuring In 1950 he made an experiment known asTuring Test witch allowed to define a standard for amachine to be called "intelligent". This, along with discoveriesin neurology,information theory and cybernetics, inspired a small group ofresearchers to begin to seriously consider the possibility of building an electronicbrain.

    The field of AI research was founded at a conference in 1956. The attendeesbecame the leaders of AI research for many decades. They wrote programs thatwere, to most people, simply astonishing: Computers were solving word problems inalgebra, proving logical theorems and speaking.

    Talos Of Crete

    http://en.wikipedia.org/wiki/Greek_mythhttp://en.wikipedia.org/wiki/Taloshttp://en.wikipedia.org/wiki/Cretehttp://en.wikipedia.org/wiki/Hephaestushttp://en.wikipedia.org/wiki/Mary_Shelleyhttp://en.wikipedia.org/wiki/Mary_Shelleyhttp://en.wikipedia.org/wiki/Frankensteinhttp://en.wikipedia.org/wiki/Karel_%C4%8Capekhttp://en.wikipedia.org/wiki/Karel_%C4%8Capekhttp://en.wikipedia.org/wiki/Karel_%C4%8Capekhttp://en.wikipedia.org/wiki/Ethics_of_artificial_intelligencehttp://en.wikipedia.org/wiki/Formal_reasoninghttp://en.wikipedia.org/wiki/Neurologyhttp://en.wikipedia.org/wiki/Information_theoryhttp://en.wikipedia.org/wiki/Cybernetichttp://en.wikipedia.org/wiki/Dartmouth_Conferenceshttp://en.wikipedia.org/wiki/Dartmouth_Conferenceshttp://en.wikipedia.org/wiki/Cybernetichttp://en.wikipedia.org/wiki/Information_theoryhttp://en.wikipedia.org/wiki/Neurologyhttp://en.wikipedia.org/wiki/Formal_reasoninghttp://en.wikipedia.org/wiki/Ethics_of_artificial_intelligencehttp://en.wikipedia.org/wiki/Karel_%C4%8Capekhttp://en.wikipedia.org/wiki/Frankensteinhttp://en.wikipedia.org/wiki/Mary_Shelleyhttp://en.wikipedia.org/wiki/Mary_Shelleyhttp://en.wikipedia.org/wiki/Hephaestushttp://en.wikipedia.org/wiki/Cretehttp://en.wikipedia.org/wiki/Taloshttp://en.wikipedia.org/wiki/Greek_myth

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    14/3114

    In the early 1980s, AI research was revived by the commercial success of expertsystems, a form of AI program that simulated the knowledge and analytical skills ofhumans.

    In the 1990s and early 21st century, AI achieved its greatest successes. Artificialintelligence is used for logistics, medical diagnosis and many other areas throughoutthe technology industry. The success was due to several factors: the increasingcomputational power of computers , a greater emphasis on solving specificsubproblems, the creation of new links between AI and other fields working onsimilar problems.

    On 11 May 1997, Deep Bluebecame the first computer chess-playing system to beat

    a reigning world chess champion, Garry Kasparov. In2005, a Stanford robot won a race by drivingautonomously for 131 miles along an unrehearseddesert trail.

    In February 2011, during a quiz show , IBM's questionanswering system, Watson, defeated the two greatestquiz show championsn. Today the AI has some

    recreational uses like the Kinect, which provides a 3Dbody –motion interface for the Xbox 360, usingalgorithms that emerged from lengthy AI research or

    other useful application that helps our life like Apple’s Siri or Samsung S Voice.

    Positve Effects of AISome people think that artificial intelligence has a lot of advantages. Artificialintelligence can make work faster and therefore it makes life easier. There are jobsthat are dangerous for humans such as disarming bombs but with artificialintelligence we can just send a robot to the field and disarm the bomb. We canspare lives and make the situation a lot safer. Artificial Intelligence, can also help uswith our passion with innovation. It can help us achieve greatness when it comes to

    inventing things like producing massive buildings and many more.

    Garry Kasparov

    http://en.wikipedia.org/wiki/Expert_systemshttp://en.wikipedia.org/wiki/Expert_systemshttp://en.wikipedia.org/wiki/Medical_diagnosishttp://en.wikipedia.org/wiki/IBM_Deep_Bluehttp://en.wikipedia.org/wiki/Garry_Kasparovhttp://en.wikipedia.org/wiki/IBMhttp://en.wikipedia.org/wiki/Question_answering_systemhttp://en.wikipedia.org/wiki/Question_answering_systemhttp://en.wikipedia.org/wiki/Watson_(artificial_intelligence_software)http://en.wikipedia.org/wiki/Kinecthttp://en.wikipedia.org/wiki/Xbox_360http://en.wikipedia.org/wiki/Xbox_360http://en.wikipedia.org/wiki/Kinecthttp://en.wikipedia.org/wiki/Watson_(artificial_intelligence_software)http://en.wikipedia.org/wiki/Question_answering_systemhttp://en.wikipedia.org/wiki/Question_answering_systemhttp://en.wikipedia.org/wiki/IBMhttp://en.wikipedia.org/wiki/Garry_Kasparovhttp://en.wikipedia.org/wiki/IBM_Deep_Bluehttp://en.wikipedia.org/wiki/Medical_diagnosishttp://en.wikipedia.org/wiki/Expert_systemshttp://en.wikipedia.org/wiki/Expert_systems

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    15/3115

    Negative Effects of AISome people insist that artificial intelligence can bring more destruction to thepeople. For one, there are movies like I, Robot that depict our future with theadvancement of artificial intelligence and most of the movies suggest that productswith artificial intelligence may fight against us. Some people believe that in thefuture, robots with artificial intelligence can overpower us because they are smarterand possess super human powers which are very frightening. Furthermore, becausecomputer and robots are more accurate in their work, they can replace the humanworkforce and create fewer jobs for people.

    Filmography and BibliographyThe topic of artificial intelligence has inspired a lot of modern and contemporaryauthors and directors in their books . Inliterature the most influenced authors wereMary Shelley with her novel Frankestein ,"The modern Prometheus" and IsaacAsimov with his novels like I,Robot and thePositronic man.

    Mary Shelley’s novel tells the story ofVictor Frankenstein

    Victor Frankestein experiences an idyllicchildhood in Switzerland, surrounded by a

    loving family and accompanied by hisadored cousin Elizabeth. He is fascinated byancient philosophers whose grandioseambitions included looking for an Elixir ofLife. After the death of his mother, his firstunhappy experience, he attends Universityin Germany where he applies his new-foundknowledge of science to manufacture a human being of enormous size and strength.

    When his creation comes to life, Frankenstein is so horrified by his own bizarreaccomplishment that he falls into a delirious illness which last months. Meanwhile,

    Mary Shelley

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    16/3116

    the creature flees into the woods and disappears.Two years later, Frankenstein returns home upon learning that his brother has beenmysteriously murdered. Justine, a friend of Frankenstein, is falsely convicted andexecuted. Having been hated, rejected and feared by every human encountered, thecreature considers all of humanity to be his enemy. He demands that Frankensteincreate a female companion for him so that he will not be lonely, and promises thatwith his companion he will flee to a remote corner of South America and nevercome into contact with humans again.Frankenstein cannot forgive the creature for the death of his brother and Justine; herefuses to build the female companion. In desperation and rage, the creaturepromises to make his creator as miserable as himself. In his vengence, the creature

    murders Frankenstein's friends and family one by one, including his beloved cousinElizabeth .When the creator and his creature are at last equally alone and family-less, Frankenstein seeks his own revenge and pursues his enemy into the Arcticnorthern wastes where together they meet their climatic fate.

    The artificial intelligence has also affected the world of movies, there are a lot ofthem where intelligent robots or machine are the main character and other wherethose intelligent beings are seen as a menace.The father of this type of film is

    definitely " Blade Runner" witch tells the story of Rick Deckard, a retired lawenforcement officer who is coerced back into service for a special mission. A groupof enslaved replicants (genetically engineered human-like creatures) revolted onanother planet. As the replicants were designed to live for only a few years, theyreturned to Earth to find a way of extending their lifespan. Deckard must hunt themdown and kill them. He visits the Tyrell Corporation, manufacturers of the replicants,and meets Rachael, a worker there who is unaware that she is a replicant herself.Deckard discovers this fact and informs her of it, which forces her to be on the runas well. Deckard tracks down and kills all the rebel replicants but one, and in themeantime shelters Rachael and becomes her lover. The remaining replicant learnsfrom Tyrell (founder of the corporation)that his lifespan cannot be extended. Hethen expires while in combat with Deckard. Deckard and Rachael make their escapetogether.

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    17/3117

    Struttura intelligenza artificialeIl programma ottiene le sue informazioni da un file particolare ,un file scritto in AIMLche come detto prima è un “dialetto” dell’XML e quindi è un linguaggio di Hypertext.

    Le informzioni con cui il mio programma risponde sono scritte in questo linguaggiofondamentalmente utlizzando i tag e

    Con il carattere tag si identifica la domanda ad esempio CHI SEI

    Mentre con il tag si definisce la domanda o le domande in caso di piupossibili risposte che possiamo randomizzare con il tag

    Risposte random

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    18/3118

    File AIMLQuesto è un esempio di un file AIML contenente alcune un determinatoargomento.E’ in inglese perchè ho deciso di utlizzare per le conoscenze piùapprofondite come Geografia Storia o Scienze file gia pronti in Inglese. Questo filetratta di materie scientifiche.

    Science.aiml

    HOW FAR IS THE MOON The Moonis about 250,000 miles from Earth on average.HOW FAR IS THE SUN The Sun isabout 93 million miles from Earth.CHEMISTRY MY FAVORITESUBJECT IS CHEMISTRY

    DO YOU KNOW CHEMISTRY WHAT ISCHEMISTRY

    DO YOU UNDERSTAND THERMODYNAMICS

    WHAT IS THERMODYNAMICS

    TELL ME ABOUT VENUS WHAT ISVENUS

    THE SAME WAVELENGTHIt means weagree.WE ARE ON THE SAME WAVELENGTHAnd the samefrequency.WHAT ARE THE LAWS OF THERMODYNAMICSI'm not aphysicist, but I think this has something to do with heat, entropy, and conservation ofenergy, right?WHAT DISEASE DOES A CARCINOGENCAUSECancer.WHAT IS A WAVELENGTHWavelength is the inverse offrequency.WHAT IS AVOGADRO S NUMBERIt is the number ofmolecules per mole. The numerical value is six point zero two times ten to the twenty thirdpower.

    AVOGADRO S NUMBER

    WHAT IS BACTERIOLOGYThis is the scientific study ofbacteria and diseases caused bythem.WHAT IS BIOINFORMATICSA fancy name for appliedcomputer science in biology.

    BIOINFORMATICS

    WHAT IS CHEMISTRYThe science of mixingchemicals.

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    19/3119

    CHEMISTRY

    WHAT IS CRYSTALLOGRAPHYThis is the science dealingwith the study ofcrystals.WHAT IS CYTOLOGY The study of cells.Well, from what I can recall it is the study ofcells.

    WHAT IS GRAVITATION An invitation to a burial.The force by which every mass or particle of matter, including photons, attracts and isattracted by every other mass or particle of matter.

    WHAT IS H2O H is to O as O is to V.Water.

    WHAT IS ICHTHYOLOGYWe talk about this when we studyfishes.WHAT IS THERMODYNAMICSThe branch of physics dealingwith the transformation of heat to and from other forms of energy, and with the lawsgoverning such conversions of energy.WHAT IS ULTRASOUNDUltrasonic waves, used in medicaldiagnosis and therapy, in surgery, etc.WHAT IS VENUSIn Roman Mythology, the goddess of love

    and beauty; identified with the Greek Aphrodite. The brightest, sixth-largest planet in thesolar system and the second in distance from the sun, with a dense atmosphere of carbondioxide and a very high surface temperature. Its diameter is circa 12,100 km (circa 7,520miles). Its period of revolution is circa 225 earth days. Its period of rotation(retrograde), is 243.01 earth days. Also used to label a very beautifulwoman.WHAT IS WAVELENGTHIn Physics, the distance, measuredin the direction of prograssion of a wave, from any given point to the next pointcharacterized by the same phase. Or is could be looked at as a way ofthinking.WHERE IS VENUS VENUS is the second planet from the Sun.

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    20/3120

    Un’applicazione concreta: Il Sistema di acquisizione edistribuzione dei dati

    Un’intelligenza artificiale può essere utilizzata in vari ambiti : dall’ambito dellemissioni nello spazio alle rilevazioni meteorologiche.

    In questi due ambiti potrebbe essere utile avere un’intelligenza artificiale e qui entrain gioco Il sistema di acquisizione dei dati, cioè una delle tecniche con cui icalcolatori riescono ad interfacciarsi con il mondo esterno.

    Il sistema di acquisizione dei dati è cosi composto:

    1-Trasduttore:Se una grandezza non è elettrica per un sistema elettrotecnico èimpossibile acquisirne il valore, però è possibile mediante un trasduttore.

    Il trasduttore infatti trasduce la grandezza da misurare in una grandezza elettrica.

    2-Condizionamento: Il condizionamento è un processo analogico che consente diripulire il segnale.

    3-Convertitore A/D : Poichè il calcolatrore o il microcontrollore elabora solo segnali

    digitali è necessario convertire il segnale da Analogico a Digitale mediante unconvertitore A/D

    4-Sistema di elaborazione: Il segnale tradotto viene inviato ad un Pc o and un PLCche lo elaborano.Il segnale elaborato può essere utlizzato all’interno di un sistema dicontrollo ad anello chiuso

    5-Convertitore D/A: Ha la funzione opposta del Convertitore A/D converte il segnaledigitale in analogico

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    21/3121

    6-Amplificatore di potenza: Amplifica la potenza del segnale in modo da essereutilizzato per intervenire sul mondo fisico.

    7-Attuatore : Ha la funzione opposta del Trasduttore,infatti trasforma una corrente

    elettrica in un segnale non elettrico in cui prevale l’aspetto energetico: una forza,una coppia.Attuatori tipici sono i motori.

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    22/3122

    L’applicazione in rete

    Protocollo di accessoEssendo la rete su cui è basato il mio progetto a bus,una parte fondamentale èricoperta dal protocollo di accesso e più precisamente parlando di rete cablata constandard ethernet parliamo del protocollo Csma/Cd.

    Il protocollo Csma/Cd è l’evoluzione del protocollo Csma (Carrier Sense MultipleAccess - accesso multiplo con rilevamento di portante). Questo tipo di protocollo èinnovativo perchè a differenza dei precedenti, prima di iniziare la trasmissione di unpacchetto, controllano se vi è una trasmissione in corso, rilevando la presenza dieventuali portanti in linea(carrier sense): infatti, l’esistenza di una portante in linea èindice di una trasmissione in corso da parte di una qualche stazione remota. Questotipo di approccio è anche detto listening before talking (ascoltare prima di parlare).

    Il CSMA, comunque, non evita le collisioni, a causa del tempo di propagazione chenon è nullo: naturalmente la probabilità di avere collisioni diminuisce se le stazioni sitrovano a distanze sufficientemente piccole. Questo spiega il motivo per cui il CSMAnon è utilizzato su collegamenti a grandi distanza

    Il tempo di vulnerabilità è sempre legato al tempo di propagazione massimo lungo ilmezzo che si sta considerando. In realtà, anche se il tempo di propagazione fossenullo, la collisione avviene quando due stazioni iniziano la trasmissione nello stessoistante.

    Per quanto riguarda invece il protocollo di accesso Csma/Cd come detto prima è unevoluzione del protocollo Csma infatti nel protocollo Csma/Cd, Cd sta per Collision

    Detection cioè oltre che ad inviare solo quando c’e la portante libera riesce anche adidentificare le collisioni.

    In questa evoluzione, la stazione ascolta il canale durante la trasmissione, in modotale da rilevare la collisione .Con la collisione, si interrompe repentinamente latrasmissione in corso e si avviano i meccanismi di ritrasmissione. Inoltre si trasmetteuna particolare sequenza, detta sequenza di jamming , che permette a tutte lestazioni di rilevare la collisione.

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    23/3123

    Algoritmo di Funzionamento Protocollo CSMA/CD

    Osserviamo che, con il CSMA/CD, non è possibile determinare in modo esatto iltempo massimo entro cui una stazione possa trasmettere: questo perché alcunestazioni potrebbero incappare, durante le loro trasmissioni, in continue collisioni..Per poter captare, in caso di collisione, le corruzioni del segnale trasmesso, non èpossibile utilizzare la codifica binaria diretta (che in genere prevede un livello di

    tensione di 5 Volt per il bit 1 e 0 Volt per il bit 0), in quanto il bit 0 si confonderebbe

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    24/3124

    con il segnale inattivo, per cui, se collidono due bit 0, le stazioni non se neaccorgerebbero.

    Una codifica molto usata nel CSMA/CD è la codifica Manchester, che prevede ogni

    bit (0 e 1) rappresentato at traverso un fronte d’onda con due livelli di segnalidifferenti (in genere ±8.5 Volt): questo evita l’inconveniente prima detto, in cui sicodifica il bit 1 e il bit 0, con un livello disegnale costante.

    Nella codifica Manchester classica i duelivelli di segnali, con cui sono codificati il bit1 e il bit zero, occupano metà del fronte

    d’onda La codifica Manchesterdifferenziale, invece, associa due differentilivelli di segnale costante al bit 1 e 0, chevengono cambiati in ogni semiperiodo.

    La codifica Manchester, oltre a rilevare facilmente le collisioni, è robusta al rumoreelettrico,presente in qualsiasi mezzo trasmissivo.

    La Codifica Manchester

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    25/3125

    Protocollo di comunicazioneDopo aver analizzato il protocollo di accesso ora analizzaziamo un altro elementoimportante del sistema cioè,il protocollo di comunicazione.Fondamentalmente iprotocolli di comunicazione sono due UDP E TCP entrambi hanno caratteristichediverse.

    Il protocollo UDP (User Datagram Protocol) è un protocollo di trasporto nonorientato alla connessione.

    Viene utilizzato quando i dati che dobbiamo trasportare non necessitano di essereconfermati o perchè la rete che si utilizza si ritiene affidabile quindi il rischio di

    perdere i pacchetti è molto basso. Un esempio di utilizzo del protocollo UDP puòessere a ll’interno di un’applicazionedi streaming audio/video perchè si necessita diuna connessione veloce e soprattutto il fatto di perdere qualche pacchetto nondetermina il significato globale dell’informazione al contrario di una informazionesensibile come la trasmissione di una password o di un informazione importantedella quale ogni singolo pacchetto rovinerebbe l’utilità informativa. Riassumendopossiamo dire che i vantaggi del protocollo UDP sono principalmente che essendoun protocollo snello non determina un eccessivo carico sulla rete e che per inviaredati in multicast ed in broadcast non necessita di risposta di avvenuta ricezione(ACK) da parte di ogni singolo host.

    Un pacchetto UDP è cosi composto:

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    26/3126

    Il TCP a differenza del UDP è molto complesso e completamente diverso da UDP;alla base della sua progettazione infatti non stanno semplicità e velocità, ma la

    ricerca della massima affidabilità possibile nella trasmissione dei dati.Ladifferenza e che l’UDP non necessita di richiesta di connessione, mentre un’altradifferenza tra UDP è che TCP provvede sempre una connessione diretta fra un cliente un server, attraverso la quale essi possono comunicare.

    La caratteristica fondamentale del TCP è l'affidabilità; quando i dati vengono inviatiattraverso una connessione ne viene richiesto un “ricevuto” (ilcosiddetto acknowlegment), se questo non arriva essi verranno ritrasmessi per undeterminato numero di tentativi, intervallati da un periodo di tempo crescente, finoa che sarà considerata fallita o caduta la connessione e sarà generato un erroredi timeout; il periodo di tempo dipende dall'implementazione.

    Inoltre, per tenere conto delle diverse condizioni in cui può trovarsi la linea dicomunicazione, TCP comprende anche un algoritmo di calcolo dinamico del tempodi andata e ritorno dei pacchetti fra un client e un server ,il cosiddetto RTT, round-trip time, che lo rende in grado di adattarsi alle condizioni della rete per nongenerare inutili ritrasmissioni o cadere facilmente in timeout. TCP è anche in gradodi preservare l'ordine dei dati assegnando un numero di sequenza ad ogni byte chetrasmette. Ad esempio se un'applicazione scrive 3000 byte su un socket TCP, questipotranno essere spezzati dal protocollo in due segmenti (le unità di dati passate daTCP a IP vengono chiamate segment) di 1500 byte, di cui il primo conterrà il numerodi sequenza 1 - 1500 e il secondo il numero 1501 - 3000. In questo modo anche se isegmenti arrivano a destinazione in un ordine diverso, o se alcuni arrivano più volte

    a causa di ritrasmissioni dovute alla perdita degli acknowlegment, all'arrivo saràcomunque possibile riordinare i dati e scartare i duplicati.Il protocollo provvedeanche un controllo di flusso , cioè specifica sempre all'altro capo della trasmissionequanti dati può ricevere tramite una advertised window, che indica lo spaziodisponibile nel buffer di ricezione, cosicché nella trasmissione non vengano inviatipiù dati di quelli che possono essere ricevuti.Questa finestra cambia dinamicamentediminuendo con la ricezione dei dati dal socket ed aumentando con la lettura diquest'ultimo da parte dell'applicazione, se diventa nulla il buffer di ricezione è pienoe non verranno accettati altri dati. Si noti che UDP non provvede niente di tutto ciòper cui nulla impedisce che vengano trasmessi pacchetti ad un ritmo che il ricevente

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    27/3127

    non può sostenere.Infine attraverso TCP la trasmissione è sempre bidirezionale (ininglese si dice che è full-duplex). È cioè possibile sia trasmettere che ricevere allostesso tempo, il che comporta che quanto dicevamo a proposito del controllo diflusso e della gestione della sequenzialità dei dati viene effettuato per entrambe ledirezioni di comunicazione.

    Un pacchetto TCP è così strutturato:

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    28/3128

    Il modello ISO OSIParlando di protocolli di rete non si può parlare dello standard di rete pereccellenza: il modello ISO /OSI .

    Il modello ISO/OSI è uno standard per l'interconnessione di sistemi che descrive ilmodo in cui le informazioni vengono trasferite tra gli host in rete. Il modello ISO/OSIdefinisce una pila (stack) di protocolli in 7 livelli . I livelli comunicano fisicamente tradi loro attraverso una interfaccia che consiste in una serie di operazioni che ognilivello offre al livello superiore. Per capire il funzionamento dell'architettura OSI,vediamo la funzione di ciascuno strato.

    1.Strato fisico. Comprende tutte le procedure meccaniche ed elettroniche chepermettono una connessione a livello fisico.

    2. Collegamento dati (data link). Definisce le regole per inviare e ricevereinformazioni tra due sistemi in comunicazione. Le trame di dati vengono incapsulatein un pacchetto provvisto di header e coda.

    3. Rete. Mentre lo strato 2 è usato per controllare la comunicazione tra duedispositivi connessi direttamente tra loro, lo strato di rete fornisce servizi di

    connessione tra reti. Questi servizi assicurano che un pacchetto di informazioniraggiunga la destinazione dopo un percorso comprendente più collegamenti punto apunto, collegati tra loro da router che sono dispositivi d'instradamento che unisconoreti diverse. Lo strato di rete si occupa di smistare pacchetti su collegamenti multipli.Quando il collegamento è unicamente locale, come avviene in una LAN all'interno diun ufficio o di un'abitazione, la consegna dei pacchetti può utilizzare protocollicome il protocollo TCP/IP di cui abbiamo parlato prima.

    4. Trasporto. Questo strato fornisce un alto livello di controllo sullo spostamento

    delle informazioni tra i sistemi terminali di una sessione di comunicazione.5. Sessione. Lo strato di sessione ha il compito di stabilire e mantenere lacomunicazione tra due computer. In generale, si tratta di un processo a tre fasi:stabilire le regole iniziali per la connessione logica, scegliendo tra i tipi dicomunicazione simplex (flusso unico), half-duplex (doppio flusso alternato) e duplex(flusso bidirezionale), muovere i dati da un host all'altro e, infine, rilasciare laconnessione. Lo scambio d'informazioni avviene in termini di dialogo, per indicare,ad esempio, da dove ricominciare la trasmissione, se una connessione è statatemporaneamente perduta, o dove terminare un data set (insieme di dati) einiziarne un altro.

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    29/3129

    6. Presentazione. Lo scopo dei processi che operano allo strato 6 è, principalmente,di agire da traduttori per i servizi dello strato applicativo. Spesso si tratta diconvertire i dati da un formato proprietario a uno universale e viceversa, in modoche i protocolli dallo strato 5 in giù interagiscano con dati in formato standard senza

    essere coinvolti nelle conversioni.Altre funzioni di questo strato sono la compressione/decompressione e la cifraturadecifratura dei dati

    7. Applicazione. Lo strato applicativo fornisce l'interfaccia di rete per protocolliapplicativi che vengono utilizzati direttamente dall'utente finale, come HTTP peraccedere alle pagine web, POP3 per scaricare la posta elettronica, FTP per trasferirefile. Tale strato non ha a che fare con la parte di applicazione che s'interfaccia conl'utente, e che non rientra nel modello OSI. Lo strato 7 si occupa solo di determinarelo stato delle comunicazioni tra due applicazioni. L'obiettivo è stabilire se le risorsesono disponibili per poter iniziare la comunicazione tra due o più host, e scoprire se icomputer interessati sono in grado di comunicare. Lo strato 7 comprende numerosiprotocolli e applicazioni, molti dei quali sono in grado di fornire un certo servizioanche da soli, ma più spesso si integrano a vicenda per fornire all'utente una gammadi funzionalità più ricca.

    Tra i protocolli applicativi nella sfera della famiglia TCP/IP citiamo anche: SMTP (Simple Mail Transfer Protocol - per l'invio di messaggi a un server di posta

    elettronica) Telnet (per l'accesso via rete a computer remoti) NFS (Network File System - la condivisione di dischi su rete) NTP (Network Time Protocol, per sincronizzare gli orologi dei computer).

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    30/3130

    La disumanità del computer sta nel fatto che unavolta programmato e messo infunzione

    si comporta in maniera perfettamente onesta. Isaac Asimov

  • 8/20/2019 Intelligenza Artificiale: Tra Uomo e Macchina

    31/31