Algoritmo

I sottotitoli italiano, inglese, francese, spagnolo, portoghese, tedesco, giapponese, coreano, cinese e indiano sono tradotti in automatico (seleziona impostazioni video)

Il termine sta ad indicare un insieme ben definito di regole per giungere alla soluzione di un problema o di un compito seguendo un finito numero di passi [2.1].

E’ un termine precedente di secoli l’epoca moderna, ma la sua diffusione è aumentata negli ultimi anni essendo un concetto alla base dell’informatica (informazione automatica) ed un elemento essenziale dell’IA. Gli algoritmi originariamente deterministici, sono divenuti non-deterministici, quindi affetti da certi gradi di probabilità.

Può evocare attività [2.2] compiute da un utente per eseguire elaborazioni di dati che producono specifici risultati in uscita a partire da specifici dati in ingresso, così come attività di un computer o di un robot.

Un algoritmo può combinare due o più misure di base e in tale caso costituire una funzione di misurazione [2.3].

L’implementazione di un algoritmo con un linguaggio software, cioè una funzione software [2.4], consente all’utente umano o al software stesso di eseguire una parte o tutto il lavoro necessario ad eseguire un compito.

Il fatto che una funzione software non richieda sempre una esplicita “chiamata” da parte dell’utente finale (ad esempio  memorizzazioni automatiche dei dati) può generare un dubbio di “eccessiva” autonomia non dichiarata del software e degli algoritmi in esso contenuti. E’ oggetto di discussione la capacità di auto-modifica dell’algoritmo sulla base di dati e risultati raccolti.

L’algoritmo, quindi un insieme di calcoli che combinano una o più basi di dati con associati criteri decisionali, può far parte di un sistema più largo di postulati, dichiarazioni e regole di inferenza presentate nell’ambito di un discorso compiuto.  

Da queste premesse, nell’era attuale della Intelligenza Artificiale, può derivare il vantaggio di usufruire di un’utile intelligenza “aumentata” nelle decisioni, ma anche il timore che gli algoritmi possano determinare azioni arbitrarie non rispondenti ad una particolare etica esplicita e condivisa.

Glossario a cura di Domenico NATALE e Videoglossario a cura di Maria Chiara LORENZELLI

__________
Riferimenti bibliografici

[2.1] (1) Algorithm: finite set of well-defined rules for the solution of a problem in a finite number of steps (ISO/IEC/IEEE 24765:2017 Systems and software engineering-Vocabulary) (2) sequence of operations for performing a specific task (ISO/IEC/IEEE 24765:2017 Systems and software engineering-Vocabulary) (3) finite ordered set of well-defined rules for the solution of a problem (ISO/IEC 2382:2015 Information technology — Vocabulary) Example: a complete specification of a sequence of arithmetic operations for evaluating sine x to a given precision. 

[2.2] Activity: (1) set of cohesive tasks of a process (ISO/IEC/IEEE 12207:2017 Systems and software engineering–Software life cycle processes) (ISO/IEC/IEEE 15288:2015 Systems and software engineering–System life cycle processes, 4.1.3) (ISO/IEC/IEEE 24748-1:2018 Systems and software engineering–Life cycle management–Part 1: Guidelines for life cycle management, 2.3) (2) a distinct, scheduled portion of work performed during the course of a project (A Guide to the Project Management Body of Knowledge (PMBOK(R) Guide) — Sixth Edition) (3) order submitted to the system under test (SUT) by a user or an emulated user demanding the execution of a data processing operation according to a defined algorithm to produce specific output data from specific input data and (if requested) stored data (ISO/IEC 14756:1999 Information technology — Measurement and rating of performance of computer-based software systems, 4.1) (4) defined body of work to be performed, including its required input information and output information (ISO/IEC/IEEE 24765:2017 Systems and software engineering–Vocabulary) (5) set of cohesive tasks of a process, which transforms inputs into outputs(IEEE 730-2014 IEEE Standard for Software Quality Assurance Processes, 3.2) (6) element of work performed during the implementation of a process (ISO/IEC/IEEE 24765:2017 Systems and software engineering–Vocabulary) (7) set of actions that consume time and resources and whose performance is necessary to achieve, or contribute to, the realization of one or more outcomes (ISO/IEC TR 24766:2009 Information technology–Systems and software engineering–Guide for requirements engineering tool capabilities, 3.1) (8) single-headed directed acyclic graph of actions, where occurrence of each action in the graph is made possible by the occurrence of all immediately preceding actions (i.e., by all adjacent actions which are closer to the head) (ISO/IEC 10746-2:2009 Information technology — Open Distributed Processing — Reference Model: Foundations, 8.6) Note: An activity normally has an expected duration, cost, and resource requirements. Activities are often subdivided into tasks. 

[2.3] Measurement function: (1) algorithm or calculation performed to combine two or more base measures (ISO/IEC/IEEE 15939:2017 Systems and software engineering–Measurement process, 3.20) (2) algorithm or calculation performed to combine two or more quality measure elements (ISO/IEC 25021:2012 Software engineering–Software product Quality Requirements and Evaluation (SQuaRE)–Quality measure elements, 4.7) 

[2.4] Software function: (1) implementation of an algorithm in the software with which the end user or the software can perform part or all of a work task (ISO/IEC 25051:2014 Software engineering — Software product Quality Requirements and Evaluation (SQuaRE) — Requirements for quality of Ready to Use Software Product (RUSP) and instructions for testing, 4.1.14) Note: a function does not need to be callable by the end user (e.g., automatic backup or data saving).