Stomachion

Visualizzazione post con etichetta algoritmi. Mostra tutti i post
Visualizzazione post con etichetta algoritmi. Mostra tutti i post

venerdì 10 gennaio 2025

Matematica, lezione 47: Immagini

20250110-matematica-lezione47-immagini
La prima cosa che vorrei sottolineare è il titolo del 47.mo volumetto della collana Matematica: Algoritmi e immagini. Nel corso del testo, però, non c'è un solo codice, ed è fondamentale chiarire quindi il concetto che il titolo non è "sbagliato". Iniziamo dalla parola, che deriva dalla latinizzazione del nome di al-Khwarizmi, matematico persiano del IX secolo, che è accreditato per essere uno dei primi (se non il primo) ad aver codificato il metodo dell'algoritmo. E veniamo alla sua definizione: un algoritmo è, di fatto, una sequenza di operazioni, o di istruzioni, che vengono eseguite per risolvere un problema. E quindi prescindono dalla presenza di un qualsiasi codice di programmazione così come lo intendiamo oggi.
L'associazione con le immagini, però, fa immediatamente pensare ai software, e quindi ai linguaggi di programmazione, ma come ben spiega Marta Lazzaretti, le tecniche di digitalizzazione delle immagini risalgono addirittura agli anni Venti del XX secolo, per cui il problema della compressione e della riconversione delle immagini attraverso opportune operazioni matematiche è sostanzialmente precedente all'introduzione dei linguaggi di programmazione propriamente detti.

venerdì 17 maggio 2024

Una lettera d'amore algoritmica

20240517-christopher-strachey
Prima dei text-to-image generator e dei text-to-music generator (di questi ultimi ne parleremo presto) c'erano i semplici text generator. Cose tipo i "semplici" generatori di frasi di questo o quel politico o dei raffinati generatori di articoli scientifici (non ricordo se quello deputato alla matematica o quello alla fisica fu usato per generare un articolo poi sottomesso a una rivista scientifica). Molti di questi progetti mettevano a disposizione i loro algoritmi e, soprattutto, i loro dizionari.
Il loro funzionamento era abbastanza semplice: la logica del software implementava la grammatica, che poi assemblava le parole presenti nel dizionario secondo quelle regole. Più era raffinata la logica, più ricco era il dizionario e più credibili i risultati prodotti.
Ciò che forse è ancora meno noto rispetto a questo genere di programmi è chi programmò il capostipite di tutto: Christopher Strachey, il giovane studente diventato presto assistente e amico di Alan Turing che abbiamo incontrato un po' di tempo fa quando ho raccontato dei primi suoni mai prodotti da un computer.
E quel primo algoritmo da cui possiamo dire che tutto iniziò era un love letter generator!

venerdì 29 marzo 2024

Breve storia del pi greco / Edizione algoritmica

Arriva la nuova puntata della Breve storia del pi greco, una serie di articoli che "ristampano" i box delle notizie pi greche che tediano allegramente i Carnevali della matematica del pi day che ho l'onore di ospitare, inclusa l'ultima edizione, la #176. Per la puntata di quest'anno, la 12.ma, ho voluto aggiungere un piccolo backstage relativo all'astrografica pi greca uscita su EduINAF proprio nel pi day.
Vi segnalo poi la versione in pdf della Breve storia che spero di riuscire ad aggiornare nei prossimi giorni. In alternativa ecco l'elenco dei link alle puntate precedenti: L'era dei computer nel calcolo delle cifre decimali del \(\pi\) iniziò a metà del XX secolo. Nel 1949, infatti, utilizzando una semplice calcolatrice, John Wrench e Levi Smith calcolarono 1120 cifre decimali.
L'anno dopo George Reitwiesner e John von Neumann raggiunsero le 2037 cifre. Utilizzarono una serie infinita di arcotangenti sul computer ENIAC, che impiegò 70 ore per ottenere questo risultato. Proprio grazie alle serie delle arcotangenti il record venne battuto sempre più spesso negli anni successivi: 3089 cifre nel 1955, 5480 cifre nel 1957, 10000 cifre nel 1958, 100000 nel 1961, 1 milione di cifre nel 1973.
Negli anni Ottanta del XX secolo arrivò un nuovo strumento che permise di calcolare le cifre decimali del pi greco in maniera più veloce ed efficiente: gli algoritmi iterativi.

mercoledì 10 maggio 2023

La dittatura del calcolo

20230510-dittatura-calcolo-cover
Nonostante il titolo faccia pensare al contrario, La dittatura del calcolo di Paolo Zellini propone al lettore innanzitutto un punto di vista storico differente del calcolo, dell'algoritmica e, più in generale, della matematica, e solo dopo un punto di vista filosofico. D'altra parte, per poter giustificare la critica insita nel titolo stesso, raccontare lo sviluppo storico di queste discipline è, probabilmente, il modo migliore in assoluto.
Questo, in pratica, rende il testo di Zellini innanzitutto un ottimo testo di divulgazione matematica, sicuramente snello, visto che si concentra su una porzione della sua storia e su come questa abbia influenzato non solo la vita moderna, ma anche lo sviluppo stesso della ricerca in matematica.
Argomenti come l'infinito, la logica, la ricerca dei fondamenti, si ritrovano intrecciati con qualcosa che apparentemente sembra distante da essi come la ricerca della miglior procedura per portare a termine un calcolo, eppure, nonostante sia poco evidente, i primi sono stati fondamentali per lo sviluppo degli algoritmi, modificando il modo stesso di pensare dei matematici ben prima che gli algoritmi propriamente detti entrassero nel nostro linguaggio.
La critica insita nel testo, ad ogni modo, non è tanto centrata sugli strumenti dell'algoritmica e del calcolo digitale, ma sull'importanza che viene data a essi, ritenuta in qualche modo eccessiva nonostante la loro grande efficacia.

venerdì 6 maggio 2022

Solo tu puoi decidere

20220318-electric-castle-cover
Riprendiamo il nostro percorso attraverso Into the electric castle, terzo album degli Ayreon, il progetto musicale di Arjen Anthony Lucassen. Con questo concept album Lucassen passa a un livello di scrittura molto più complesso e raffinato, non solo musicalmente, come abbiamo già visto nelle due puntate precedenti, ma anche narrativo. Con la quinta traccia, The decision tree (we're alive), i personaggi debbono decidere del loro destino
Ah, my friends! So light of foot. So swift. You have come this far. And now - here beneath the
ancient, omniscient boughs of the Decision Tree - one of you must depart this world of flesh.
Only seven may continue. Only you can decide...
Il titolo viene preso in "prestito", non so quanto consapevolmente, dal così detto albero delle decisioni, un particolare diagramma di flusso che viene utilizzato come supporto per prendere decisioni. E' uno strumento utilizzato per valutare le possibili conseguenze di determinate scelte. In altri termini è un modo per visualizzare un algoritmo costituito esclusivamente da istruzioni di tipo condizionale (cose del tipo se... allora...).

mercoledì 24 giugno 2020

La macchina dei sogni

Mi seccava, un po', non scrivere nulla su Alan Turing, visto che ieri sono uscito con la biografia di Charles Messier e non ho usato nessuno degli altri miei blog allo scopo. Così oggi vi metto qui sotto un'immagine (via Alan Turing Scrapbol) del codice realizzato da Turing in base 32 per portare a termine una simulazione sulla sua teoria sulla morfogenesi. Chiamò il programma Ibsen5, dopo essere stato, nel 1952, in vacanza in Norvegia, terra dello scrittore Henrik Ibsen:

mercoledì 4 marzo 2015

Schema per affrontare il calcolo di un esponenziale

Erano un po' di giorni che ci pensavo. E' che, semplicemente, mi sembrava incredibile che la maggior parte delle funzioni per il calcolo dell'esponenziale dei principali linguaggi di programmazione (inclusi gli algoritmi di Google e Wolfram Alpha) fallavano nel calcolo di $-2^{7/5}$, mentre una calcolatrice scientifica installata su uno smartphone propone il risultato giusto, nello specifico -2.639015822. Sicuramente gli algoritmi fallaci di cui sopra non hanno al loro interno una non sono in grado di gestire tutte le varie possibilità che un calcolo del genere propone agli studenti dei corsi di matematica sin dalle scuole superiori. E non è così stupefacente che un programmatore non abbia pensato a tutte le possibilità, per il semplice fatto che un buon programmatore non è necessariamente un buon matematico (e generalmente non lo è: non solo, la matematica non è nemmeno essenziale per assumere qualcuno come programmatore!). Ad ogni modo quali potrebbero essere tutte le possibilità che si dovrebbero prendere in considerazione nell'affrontare un problema del genere? Ho provato a fare uno schema:
Come vedete nello schema mi sono concentrato nell'operazione $a^{b/c}$ (con almeno $b$, $c$ interi), questo perché se vogliamo programmare un generico $a^b$, dobbiamo in qualche modo saper trattare con $b$ decimali, quindi saper calcolare $a^{b/c}$ è essenziale tanto quanto saper razionalizzare un numero decimale (e quindi anche questo algoritmo andrebbe richiamato all'interno del nostro programma).
Ovviamente, se ho scordato qualche possibilità, o se avete da proporre strade per la razionalizzazione o altre strade ancora, ci sono i commenti per discuterne.

venerdì 13 gennaio 2012

insertcoin: archeologia informatica

Il primo giorno dell'anno, insieme a un po' di gente, sono andato alla Galleria Nazionale di Palazzo Arnone a Cosenza a visitare una mostra stupefacente (lo stupore era dovuto al fatto di essere a Cosenza), insertcoin, una mostra dedicata all'informatica del tempo che fu e ai giochi.
L'esordio della mostra è in puro stile geek con questo vero e proprio pezzo da museo
e con una telescrivente collegata alla rete per inviare un po' di tweet in giro per il mondo!
C'erano poi altre robine interessanti, come ad esempio il Pong
o il Pac-Man, dove mia sorella è riuscita a vincere il primo livello:
Vincere il primo livello non è semplice come si crede, in particolare a causa del joystick, che innanzitutto non è certo sensibile come quello moderno, e poi bisogna esserci abituati, e finora a Pac-Man abbiamo giocato solo con le freccette (la forza del progresso tecnologico nel campo). E poi c'è la questione degli algoritmi di comportamento dei quattro fantasmini. Ma partiamo dall'inizio:
Pac-Man è un gioco ideato da Tohru Iwatani della Namco e uscito come arcade nel 1980. Le motivazioni per creare un gioco di questo tipo vengono spiegate dallo stesso Iwatani:
All the computer games available at the time were of the violent type - war games and space invader types. There were no games that everyone could enjoy, and especially none for women. I wanted to come up with a “comical” game women could enjoy.(1)
Il gioco si svolge all'interno di un labirinto disseminato da piccoli semi gialli e da quattro super semi che devono essere mangiati da Pac-Man per vincere ciascun livello. Suoi avversari sono quattro fantasmini di quattro colori diversi. All'inizio del gioco questi fantasmi si trovano tre all'interno di una scatola centrale, la casa, e uno a presidiare la porta esterna. Subito dopo l'inizio i quattro iniziano la caccia a Pac-Man, che ha come ulteriore compito quello di sfuggire ai suoi inseguitori. Unica eccezione durante la quale i ruoli si invertono è quando il nostro personaggio mangia uno dei super semi: in quel caso i fantasmini cambiano colore e possono essere mangiati da Pac-Man fino a quando non ritornano nella condizione originale. Il passaggio da preda a cacciatore avviene attraverso una fase oscillante, durante la quale il colore del fantasma cambia velocemente da quello di preda a quello di cacciatore e viceversa: i fantasmi possono ancora essere mangiati, durante la vibrazione, ma Pac-Man corre il rischio di addentarlo proprio nell'istante in cui ritornano cacciatori. Di un fantasma mangiato, invece, restano solo gli occhi, che oscillano verticalmente e si muovono verso la casa, dove restano in attesa di rigenerarsi.