Nanointelligenza artificiale

import datetime

nascita = datetime.datetime(2000, 5, 17)
c=1
while c!=2:
   print()
   print("------------")
   print("1-la mia età")
   print("2-end")

   c = int(input("Scegli 1 o 2 : "))


   if c==1 :
      d = datetime.datetime.now()
      d = d - nascita
      print()
      print("La mia età è di : {:.2f} anni".format(d.days/365.0))

print()
print(":-) A presto!")

Questo è un semplicissimo programma dotato di intelligenza artificiale (nano e debole…). Se gli chiedete quanti anni ha, lui ve lo sa dire!

Esempio:

------------
1-la mia età
2-end
Scegli 1 o 2 : 1

La mia età è di : 21.32 anni

------------
1-la mia età
2-end
Scegli 1 o 2 : 2

:-) A presto!
>>> 

Calcolo rata finanziamento

import math

def calcolaRataFinanziamento(importo, anni, tasso):
    tasso = tasso/100.0
    mesi = 12 #rate per anno
    numeroRate= mesi* anni #numero delle rate da pagare
    temp = math.pow(1 + (tasso/mesi),(numeroRate))

    return importo*(temp)*(tasso/mesi)/(temp-1)


imp = int(input("Importo finanziamento (euro): "))
an = int(input("Durata finanziamento (anni): "))
tas = float(input("Tasso di interesse (punti %): "))

r=calcolaRataFinanziamento(imp,an,tas)

print()
print("Importo rata mensile : {:.2f} euro".format(r))
print("Importo complessivo pagato : {:.2f} euro".format(an*12*r))
print("Costo del finanziamento : {:.2f} euro".format(an*12*r-imp))

Semplice funzione Python per calcolare l’importo della rata di un finanziamento una volta noti importo prestato, durata ammortamento in anni e tasso di interesse applicato.

Esempio:

Importo finanziamento (euro): 10000
Durata finanziamento (anni): 5
Tasso di ammortamento (punti %): 9

Importo rata mensile : 207.58 euro
Importo complessivo pagato : 12455.01 euro
Costo del finanziamento : 2455.01 euro
>>> 

Punteggio del secondo

    n = int(input())
    arr = map(int, input().split())

    arr.sort()

    k = arr[n-1]
    i = n-1
    while arr[i]==k :
        i-=1
    
    print(arr[i])

Viene fornito in input il numero di atleti sulla prima riga e sulla seconda riga la lista dei punteggi, esempio:

10
44 76 46 45 32 42 16 46 51 37

Il codice python fornito trova il punteggio del secondo atleta e lo stampa. (Attenzione! Potrebbero esserci più primi!)

Comprensione delle liste

    x = int(input())
    y = int(input())
    z = int(input())
    n = int(input())


    l1 = [i for i in range(x+1)]
    l2 = [i for i in range(y+1)]
    l3 = [i for i in range(z+1)]

    cubi = [[x,y,z] for x in l1 for y in l2 for z in l3]
    sol = [a for a in cubi if a[0]+a[1]+a[2]!=n]

    print(sol)

In questo esercizio mostro le list comprehensions.

Risolviamo un problema utilizzando solo le liste e senza loop.

Viene fornito un cubo di dimensioni x,y,z ed un intero n

si tratta di trovare tra tutti i cubi contenuti in x,y,z, tutti quelli la cui somma dei lati sia diversa da n.

Media dei voti degli studenti di una classe

    n = int(input())
    student_marks = {}
    for _ in range(n):
        line = input().split()
        name, scores = line[0], line[1:]
        scores = map(float, scores)
        student_marks[name] = scores
    query_name = input()

    votes = student_marks[query_name]
    
    n=0.0
    for v in votes:
        n=n+v;
    
    n=n/len(votes)

    print("{:.2f}".format(n))

L’input è come segue :

3
andrea 27 21 30
marco 30 28 26
matteo  30 29 28
marco

La prima riga (3) è i numero di studenti;

segue una riga per ciascun studente contenente nome e lista dei voti;

infine il nome dello studente di cui si vuole conoscere la media dei voti.

Rete Neuronale

import numpy as np

class NeuralNetwork():
    
    def __init__(self):
        # seeding for random number generation
        np.random.seed(1)
        
        #converting weights to a 3 by 1 matrix with values from -1 to 1 and mean of 0
        self.synaptic_weights = 2 * np.random.random((3, 1)) - 1

    def sigmoid(self, x):
        #applying the sigmoid function
        return 1 / (1 + np.exp(-x))

    def sigmoid_derivative(self, x):
        #computing derivative to the Sigmoid function
        return x * (1 - x)

    def train(self, training_inputs, training_outputs, training_iterations):
        
        #training the model to make accurate predictions while adjusting weights continually
        for iteration in range(training_iterations):
            #siphon the training data via  the neuron
            output = self.think(training_inputs)

            #computing error rate for back-propagation
            error = training_outputs - output
            
            #performing weight adjustments
            adjustments = np.dot(training_inputs.T, error * self.sigmoid_derivative(output))

            self.synaptic_weights += adjustments

    def think(self, inputs):
        #passing the inputs via the neuron to get output   
        #converting values to floats
        
        inputs = inputs.astype(float)
        output = self.sigmoid(np.dot(inputs, self.synaptic_weights))
        return output


if __name__ == "__main__":

    #initializing the neuron class
    neural_network = NeuralNetwork()

    print("Beginning Randomly Generated Weights: ")
    print(neural_network.synaptic_weights)

    #training data consisting of 4 examples--3 input values and 1 output
    training_inputs = np.array([[0,0,1],
                                [1,1,1],
                                [1,0,1],
                                [0,1,1]])

    training_outputs = np.array([[0,1,1,0]]).T

    #training taking place
    neural_network.train(training_inputs, training_outputs, 15000)

    print("Ending Weights After Training: ")
    print(neural_network.synaptic_weights)

    user_input_one = str(input("User Input One: "))
    user_input_two = str(input("User Input Two: "))
    user_input_three = str(input("User Input Three: "))
    
    print("Considering New Situation: ", user_input_one, user_input_two, user_input_three)
    print("New Output data: ")
    print(neural_network.think(np.array([user_input_one, user_input_two, user_input_three])))
    print("Wow, we did it!")

by  Dr. Michael J. Garbade

https://www.kdnuggets.com/2018/10/simple-neural-network-python.html

Funzioni

def is_leap(year):
    leap = False
    
    if (year%4==0 and year%100!=0) or year%400==0:
        leap = True
  
    return leap

anno = 1964
anno = int(input("Scrivi un anno nel formato <aaaa> e premi invio"))
res = is_leap(anno)
if res:
    print("L'anno è bisestile")
else:
    print("L'anno non è bisestile")

Esempio di come scrivere una funzione (is_leap) in Python.

In questo caso la funzione calcola se l’anno passato come argomento sia bisestile o no.

Cultura, paranormale e Fake News.

…………………..

Questo articolo che ho deciso di scrivere oggi,
sarà sicuramente, a parte i contenuti, gradito
al relatore della mia tesi per il Master in
Managent Innovativo delle Organizzazioni Sanitarie,
Prof. Fabio Giglietto.
A questo punto in molti ci saremo accorti che per
esprimere un parere o decidere sulla veridicità
di una notizia, sia necessaria una cultura specifica
sull’argomento, oppure chiedere un parere ad un esperto,
ma che sia certificato come tale, infine, rivolgersi alla
fonte, (il soggetto della notizia), e farsi spiegare la questione.
E’ chiaro che se un ingegnere aeronautico leggesse la
notizia di un elefante che vola, non avrebbe alcun dubbio
che si tratterebbe di una fake news… fenomeni paranormali esclusi, ovviamente…
Ma noi vogliamo essere concreti, e sino a prova contraria,
a tutt’oggi l’unica arma di difesa contro il falso, è stata la cultura.
Il nostro caro Angela Piero ha detto che nelle scuole si insegnano
materie scientifiche ma non la scienza, (tantomento l’epistemologia, aggiungo io…), in questa frase di Piero Angela sta la chiave del problema.
Infatti la scienza ci insegna come riconoscere la validità di una scoperta, sempre fenomeni paranormali permettendo…
La tecnologia dei media ha raggiunto dei livelli altissimi,
stiamo solo attenti che tra l’emittente ed il ricevente non si sia intromesso qualcuno ad alterare il flusso informativo.
Devo commentare l’argomento dei libri di carta non presenti in magazzino ma stampati on demand ?
Il mio consiglio? Leggete, leggete, leggete. E, che la verità sia con voi…

Testo by Andrea Bianchini (1 giugno 2021)

Intelligenza Artificiale

Secondo molti pareri l’intelligenza artificiale (IA) costituisce il settore tecnologico più avanzato del momento, sia da un punto di vista tecnico che da un punto di vista sociale e commerciale. L’IA è presente nella vita di tutti noi più di quanto ragionevolmente siamo portati a pensare. I traguardi raggiunti da questa disciplina al giorno d’oggi sono veramente degni di merito. La domanda oggi non è più; riusciremo a realizzare l’IA ? Ma; come gestiremo l’IA?

Come avvenuto per la clonazione, l’IA pone delle serie questioni etiche, ed in tal senso si stanno muovendo diverse organizzazioni.

Ma che cosa è l’IA ? Un noto scienziato, Alan Turing, ha definito nel 1950 un test, riconosciuto universalmente valido, per stabilire se una macchina possa essere considerata dotata di una intelligenza paragonabile a quella dell’uomo.

Consideriamo due stanze non comunicanti tra loro, in una c’è un uomo e nell’altra c’è la macchina da testare. All’esterno una persona ha facoltà di comunicare con entrambe le stanze verbalmente, senza sapere in quale stanza sia collocata la macchina IA ed in quale l’uomo. La persona all’esterno dovrà cercare di riuscire a capire tramite colloquio, domande o problemi, in quale stanza sia collocata la macchina IA ed in quale l’uomo. Se nel far questo la persona all’esterno non riuscirà a distinguere in quale stanza si trovi l’uomo e in quale la macchina, potremmo dire che quella macchia IA è dotata di una intelligenza artificiale paragonabile a quella umana.

Non sarà mai abbastanza quello che una macchina AI potrà riuscire a fare, sarà sempre presente una resistenza ideologica da parte dell’uomo per ammettere che non si trova più ad essere l’unico essere pensante sulla faccia della terra. Ed allora si apre tutto un discorso sul cosa sia realmente l’intelligenza, se veramente animali e piante ne siano privi come sempre l’uomo ha pensato, o se l’intelligenza non sia invece qualsiasi forma di adattamento, sopravvivenza, tramite la riproduzione, alla vita. Questo ci riporta anche ad un discorso di vite extraterrestri, intelligenze aliene, perché non ne abbiamo ancora mai trovate nonostante le altissime probabilità di una loro esistenza ? Probabilmente perché il nostro concetto di intelligenza è ancora primitivo, potranno mai le formiche essere consapevoli della esistenza delle balene presenti nell’oceano ?

Attualmente esistono due correnti filosofiche, due modalità concettualmente diverse di concepire come la IA possa essere realizzata; IA debole ed IA forte.

Secondo l’IA debole un elaboratore può essere programmato per svolgere perfettamente i compiti che svolgerebbe un uomo, ma rimarrebbe sempre una macchina.

Secondo l’IA forte il fatto che un elaboratore si comporti in maniera intelligente implicherebbe anche che ne debba essere consapevole (coscienza).

L’IA ha diversi campi di applicazione, ed il test di Turing potrebbe essere generalizzato al di là dell’aspetto linguistico. Così abbiamo visione artificiale, IA affettiva, IA cognitiva, IA artistica, IA meccanica, IA medicale, IA tecnica, IA scientifica, per terminare con un settore che vorrebbe comprendere contemporaneamente tutti questi aspetti dell’IA; la robotica.

testo by Andrea Bianchini (IT: Anno 2018, 2018)