Come configurare smartphone e PC. Portale informativo

Il concetto di algoritmo. Proprietà dell'algoritmo

Quasi tutto nel nostro mondo è soggetto ad alcune leggi e regole. La scienza moderna non si ferma, grazie alla quale l'umanità conosce molte formule e algoritmi, a seguito dei quali puoi calcolare e ricreare molte azioni e strutture create dalla natura e dare vita alle idee inventate dall'uomo.

In questo articolo analizzeremo i concetti di base dell'algoritmo.

La storia dell'emergere degli algoritmi

Algoritmo - un concetto apparso nel XII secolo. La stessa parola "algoritmo" deriva dall'interpretazione latina del nome del famoso matematico mediorientale Muhammad al-Khwarizmi, che scrisse il libro "On Indian Counting". Questo libro descrive come scrivere correttamente i numeri naturali usando i numeri arabi e una descrizione dell'algoritmo delle azioni con una colonna su tali numeri.

Nel XII secolo fu tradotto in latino il libro "On the Indian Account" e poi apparve questa definizione.

Algoritmo Interazione con uomo e macchina

La creazione di un algoritmo richiede un approccio creativo, quindi solo un essere vivente può creare un nuovo elenco di azioni sequenziali. Ma per eseguire le istruzioni esistenti, non è necessario avere una fantasia, anche una tecnica senz'anima può gestirlo.

Un ottimo esempio dell'esatta esecuzione di una determinata istruzione è un forno a microonde vuoto che continua a funzionare nonostante l'assenza di cibo al suo interno.

Il soggetto o l'oggetto, che non deve approfondire l'essenza dell'algoritmo, è chiamato esecutore formale. Una persona può anche diventare un esecutore testamentario formale, ma nel caso in cui l'una o l'altra azione non sia redditizia, un esecutore testamentario pensante può fare tutto a modo suo. Pertanto, i principali interpreti sono computer, forni a microonde, telefoni e altre apparecchiature. Il concetto di algoritmo in informatica è della massima importanza. Ogni algoritmo è compilato con l'aspettativa di un argomento specifico, tenendo conto delle azioni consentite. Quegli oggetti a cui il soggetto può applicare istruzioni costituiscono l'ambiente dell'esecutore.

Quasi tutto nel nostro mondo è soggetto ad alcune leggi e regole. La scienza moderna non si ferma, grazie alla quale l'umanità conosce molte formule e algoritmi, in base ai quali puoi calcolare e ricreare molte azioni e creazioni della natura e dare vita alle idee inventate dall'uomo. In questo articolo analizzeremo i concetti di base dell'algoritmo.

Che cos'è un algoritmo?

La maggior parte delle attività che svolgiamo durante la nostra vita richiedono l'osservanza di una serie di regole. La qualità e il risultato dell'adempimento dei compiti assegnatigli dipendono da quanto sia accurata l'idea di una persona su cosa, come e in quale sequenza dovrebbe fare. Fin dall'infanzia, i genitori hanno cercato di sviluppare un algoritmo per le azioni principali nel loro bambino, ad esempio: svegliarsi, rifare il letto, lavarsi e lavarsi i denti, fare esercizi, fare colazione, ecc., L'elenco che fa una persona tutta la sua vita al mattino può anche essere considerata una sorta di algoritmo.

Algoritmo: indica un insieme di istruzioni che una persona deve seguire per risolvere un problema specifico.

In generale, l'algoritmo ha molte definizioni, diversi scienziati lo caratterizzano in modi diversi.

Se l'algoritmo utilizzato da una persona ogni giorno è diverso per ognuno, e può cambiare a seconda dell'età e delle situazioni in cui si trova l'esecutore, allora l'insieme delle azioni che devono essere eseguite per risolvere un problema matematico o per utilizzare la tecnologia è uguale per tutti e rimane sempre invariato.

C'è anche un concetto diverso, differiscono, ad esempio per una persona che persegue un obiettivo e per la tecnologia.

Nella nostra era dell'informatica, le persone seguono quotidianamente una serie di istruzioni create prima di loro da altre persone, perché la tecnologia richiede l'esecuzione precisa di una serie di azioni quando viene utilizzata. Pertanto, il compito principale degli insegnanti nelle scuole è insegnare ai bambini come utilizzare algoritmi, afferrare e modificare rapidamente le regole esistenti in base alla situazione attuale. La struttura dell'algoritmo è uno di quei concetti che si studia nella lezione di matematica e informatica in ogni scuola.

Proprietà di base dell'algoritmo

1. Discretezza (sequenza delle singole azioni): qualsiasi algoritmo dovrebbe essere rappresentato come una serie di azioni semplici, ognuna delle quali dovrebbe iniziare dopo il completamento della precedente.

2. Certezza: ogni azione dell'algoritmo dovrebbe essere così semplice e comprensibile che l'esecutore non abbia domande e non abbia libertà d'azione.

3. Efficienza: la descrizione dell'algoritmo dovrebbe essere chiara e completa, in modo che dopo l'esecuzione di tutte le istruzioni, l'attività raggiunga la sua fine logica.

4. Carattere di massa: l'algoritmo dovrebbe essere applicabile a un'intera classe di problemi, che possono essere risolti solo modificando i numeri nell'algoritmo. Sebbene ci sia un'opinione secondo cui l'ultimo punto non si applica agli algoritmi, ma a tutti i metodi matematici in generale.

Spesso nelle scuole, per dare ai bambini una descrizione più comprensibile degli algoritmi, gli insegnanti usano l'esempio di cucinare da un libro di cucina, fare medicine da una ricetta o fare un processo di produzione di sapone basato su una master class. Tuttavia, tenendo conto della seconda proprietà dell'algoritmo, che dice che ogni elemento dell'algoritmo deve essere così chiaro da poter essere eseguito da qualsiasi persona e persino da una macchina, possiamo concludere che qualsiasi processo che richieda almeno un tipo dell'immaginazione, l'algoritmo non può essere nominato. E la cucina e il ricamo richiedono determinate abilità e un'immaginazione ben sviluppata.

Esistono diversi tipi di algoritmi, ma ce ne sono tre principali.

Algoritmo ciclico

In questo tipo, alcuni elementi vengono ripetuti più volte. L'elenco delle azioni che devono essere ripetute per raggiungere l'obiettivo è chiamato corpo dell'algoritmo.

L'iterazione del ciclo è l'esecuzione di tutti gli elementi inclusi nel corpo del ciclo.
Le parti di un ciclo che vengono eseguite costantemente un certo numero di volte sono chiamate ciclo con un numero fisso di iterazioni.

Quelle parti del ciclo, la cui frequenza di ripetizione dipende da un certo numero di condizioni, sono dette indefinite.

Il tipo più semplice di ciclo è quello fisso.

Esistono due tipi di algoritmi ciclici:

    Ciclo con presupposto. In questo caso, il corpo del ciclo ne verifica le condizioni prima che venga eseguito.

    Ciclo con postcondizione. Il controllo delle condizioni si verifica dopo la fine dell'esecuzione del ciclo.

Tipi lineari di algoritmi

Le istruzioni di tali circuiti vengono eseguite una volta nell'ordine in cui sono presentate. Ad esempio, puoi considerare il processo di rifacimento del letto o di lavarsi i denti. Questo tipo include anche esempi matematici, dove ci sono solo operazioni di addizione e sottrazione.

Algoritmo di ramificazione

Esistono diverse opzioni in un tipo di ramificazione, quale verrà applicata dipende dalla condizione.

Esempio. Domanda: "Piove?" Opzioni di risposta: "Sì" o "No". Se "sì" - apri l'ombrello, se "no" - metti l'ombrello nella borsa.

Algoritmo di aiuto

Un algoritmo ausiliario può essere utilizzato in altri algoritmi specificandone solo il nome.

Termini usati negli algoritmi

Condizione situato tra le parole "se" e "allora".

Ad esempio: se conosci l'inglese, premi uno. In questa frase, la condizione sarà la parte della frase "sai l'inglese".

Dati- informazioni che trasportano un certo carico semantico e sono presentate in modo tale da poter essere trasmesse e utilizzate per questo algoritmo.

Processo algoritmico- risolvere il problema secondo l'algoritmo utilizzando determinati dati.

Struttura dell'algoritmo

L'algoritmo potrebbe avere una struttura diversa. Per descrivere un algoritmo, il cui concetto dipende anche dalla sua struttura, si possono utilizzare diversi metodi, ad esempio: verbale, grafico, utilizzando un linguaggio algoritmico appositamente sviluppato.

Quale dei metodi verrà utilizzato dipende da diversi fattori: dalla complessità del compito, da quanto deve essere dettagliato il processo di risoluzione del problema, ecc.

Versione grafica della costruzione dell'algoritmo

Un algoritmo grafico è un concetto che implica una scomposizione delle azioni che devono essere eseguite per risolvere un problema specifico, secondo determinate forme geometriche.

Non sono raffigurati in modo casuale. Affinché chiunque li capisca, vengono spesso utilizzati diagrammi di flusso e structogrammi di Nassi-Schneiderman.

Inoltre, i diagrammi a blocchi sono mostrati in conformità con GOST-19701-90 e GOST-19.003-80.
Le figure grafiche utilizzate nell'algoritmo sono suddivise in:

    Di base. Le immagini principali sono utilizzate per indicare le operazioni necessarie per elaborare i dati durante la risoluzione di un problema.

    Ausiliario. Le immagini ausiliarie sono necessarie per indicare gli elementi individuali, non i più importanti, per risolvere il problema.

In un algoritmo grafico, quelli usati per rappresentare i dati sono chiamati blocchi.

Tutti i blocchi vanno in sequenza "dall'alto verso il basso" e "da sinistra a destra": questa è la corretta direzione del flusso. Con la sequenza corretta, le linee che collegano i blocchi tra loro non mostrano la direzione. Negli altri casi, la direzione delle linee è indicata dalle frecce.

Lo schema corretto dell'algoritmo non dovrebbe avere più di un'uscita dai blocchi di elaborazione e meno di due uscite dai blocchi responsabili e di verifica delle condizioni.

Come costruire un algoritmo?

La struttura dell'algoritmo, come accennato in precedenza, deve essere costruita secondo GOST, altrimenti non sarà comprensibile e accessibile agli altri.

La metodologia generale di registrazione comprende i seguenti punti:

Il nome con cui sarà chiaro quale problema può essere risolto utilizzando questo schema.

Ogni algoritmo deve avere un inizio e una fine chiaramente contrassegnati.

Gli algoritmi dovrebbero descrivere in modo chiaro e chiaro tutti i dati, sia di input che di output.

Durante la compilazione dell'algoritmo, è necessario annotare le azioni che ti permetteranno di eseguire le azioni necessarie per risolvere il problema sui dati selezionati. Vista approssimativa dell'algoritmo:

  • Nome dello schema.
  • Dati.
  • Inizio.
  • Squadre.
  • Fine.

La corretta costruzione del circuito faciliterà notevolmente il calcolo degli algoritmi.

Forme geometriche responsabili di diverse azioni nell'algoritmo

Ovale posizionato orizzontalmente: l'inizio e la fine (un segno di completamento).

Rettangolo posizionato orizzontalmente: calcolo o altre azioni (segno di processo).

Parallelogramma posizionato orizzontalmente - input o output (segno dati).

Un rombo posizionato orizzontalmente è un test di una condizione (un segno di una soluzione).

Un esagono allungato posizionato orizzontalmente è una modifica (un segno di preparazione).

I modelli di algoritmi sono mostrati di seguito nella figura.

Versione formula-verbale della costruzione dell'algoritmo.

Gli algoritmi formula-word sono scritti in forma arbitraria, nel linguaggio professionale dell'area a cui appartiene il compito. La descrizione delle azioni in questo modo viene eseguita utilizzando parole e formule.

Il concetto di algoritmo in informatica

Tutto nel mondo dei computer è basato su algoritmi. Senza istruzioni chiare inserite sotto forma di un codice speciale, non una singola tecnica o programma funzionerà. Durante le lezioni di informatica, gli studenti cercano di fornire i concetti di base degli algoritmi, insegnare loro come usarli e crearli da soli.

La creazione e l'uso di algoritmi nell'informatica è un processo più creativo rispetto, ad esempio, al seguire le istruzioni per risolvere un problema in matematica.

C'è anche un programma speciale "Algoritmo", che aiuta le persone che sono ignoranti nel campo della programmazione a creare i propri programmi. Tale risorsa può diventare un assistente indispensabile per coloro che stanno muovendo i primi passi nell'informatica e vogliono creare i propri giochi o qualsiasi altro programma.

D'altra parte, qualsiasi programma è un algoritmo. Ma se l'algoritmo esegue solo le azioni che devono essere eseguite inserendo i suoi dati, il programma trasporta già i dati finiti. Un'altra differenza è che il programma può essere brevettato e di proprietà privata, ma l'algoritmo no. Un algoritmo è un concetto più ampio di un programma.

Conclusione

In questo articolo abbiamo analizzato il concetto di algoritmo e i suoi tipi, abbiamo imparato a scrivere correttamente i diagrammi grafici.

Algoritmo

Spesso, alcuni meccanismi agiscono come esecutori (computer, tornio, macchina da cucire), ma il concetto di algoritmo non si applica necessariamente ai programmi per computer, ad esempio, una ricetta chiaramente descritta per preparare un piatto è anche un algoritmo, nel qual caso l'esecutore testamentario è una persona.

Il concetto di algoritmo si riferisce ai concetti originali, di base, di base della matematica. I processi computazionali di natura algoritmica (operazioni aritmetiche su interi, ricerca del massimo comun divisore di due numeri, ecc.) sono noti all'umanità fin dall'antichità. Tuttavia, in forma esplicita, il concetto di algoritmo si è formato solo all'inizio del XX secolo.

La formalizzazione parziale del concetto di algoritmo è iniziata con i tentativi di risolvere il problema di risoluzione (Germ. Entscheidungsproblem), formulata da David Hilbert nel 1928. I seguenti passaggi di formalizzazione sono stati necessari per definire un calcolo efficiente o "metodo efficiente"; tra queste formalizzazione ci sono le funzioni ricorsive di Gödel-Herbran-Kleene e gg., il calcolo λ di Alonzo Church, la "Formulazione 1" di Emil Post del 1936 e la macchina di Turing. Nella metodologia, l'algoritmo è un concetto di base e riceve un concetto qualitativamente nuovo come ottimalità man mano che si avvicina all'assoluto previsto. Nel mondo moderno, l'algoritmo in un'espressione formalizzata costituisce la base dell'educazione mediante esempi, a somiglianza. Sulla base della somiglianza di algoritmi in vari campi di attività, si è formato il concetto (teoria) di sistemi esperti.

Storia del termine

La moderna definizione formale dell'algoritmo è stata data negli anni 30-50 del XX secolo nelle opere di Turing, Post, Church (tesi di Church-Turing), N. Wiener, A. A. Markov.

La stessa parola "algoritmo" deriva dal nome dello scienziato Khorezm Abu Abdullah Muhammad ibn Musa al-Khwarizmi (algoritmo - al-Khwarizmi). Intorno all'825 scrisse un saggio in cui forniva per la prima volta una descrizione del sistema di numerazione decimale posizionale inventato in India. Sfortunatamente, l'originale persiano del libro non è stato conservato. Al-Khwarizmi formulò le regole per il calcolo nel nuovo sistema e probabilmente per la prima volta utilizzò il numero 0 per indicare la posizione mancante nella notazione del numero (il suo nome indiano fu tradotto dagli arabi come as-sifr o semplicemente sifr, quindi parole come "numero" e "cifra"). Più o meno nello stesso periodo, altri studiosi arabi iniziarono a usare i numeri indiani. Nella prima metà del XII secolo, il libro di al-Khwarizmi in traduzione latina penetrò in Europa. Il traduttore, il cui nome non è pervenuto a noi, le ha dato il nome Algoritmo di numero Indorum("Algoritmi sul conteggio indiano"). In arabo si chiamava il libro Kitab al-jabr wal-muqabala("Il libro dell'addizione e della sottrazione"). Dal titolo originale del libro deriva la parola Algebra (algebra - al-jabr - completamento).

Quindi, vediamo che il nome latinizzato dello scienziato dell'Asia centrale è stato inserito nel titolo del libro, e oggi si ritiene che la parola "algoritmo" sia entrata nelle lingue europee proprio grazie a questo lavoro. Tuttavia, la questione del suo significato per molto tempo ha suscitato un acceso dibattito. Nel corso dei secoli, all'origine della parola sono state date svariate spiegazioni.

Alcuni sono usciti algoritmo dal greco algiro(malato) e aritmo(numero). Da tale spiegazione non è molto chiaro perché i numeri siano “malati”. O i linguisti pensavano che le persone che hanno avuto la sfortuna di fare calcoli sembravano malate? Anche il Dizionario Enciclopedico di Brockhaus ed Efron ha offerto la sua spiegazione. In lui algoritmo(a proposito, prima della rivoluzione si usava l'ortografia algoritmo, attraverso fita) è prodotto "dalla parola araba Al-Goretm, cioè la radice". Naturalmente, queste spiegazioni difficilmente possono essere considerate convincenti.

La traduzione dell'opera di al-Khwarizmi sopra menzionata divenne il primo segno e nei secoli successivi apparvero molte altre opere dedicate alla stessa questione: insegnando l'arte di contare con l'aiuto dei numeri. E tutti avevano la parola nel titolo algoritmi o algoritmi.

Gli autori successivi non sapevano nulla di al-Khwarizmi, ma poiché la prima traduzione del libro inizia con le parole: "Dixit algorizmi: ..." ("Al-Khwarizmi ha detto: ..."), associavano ancora questa parola con il nome di una determinata persona. La versione sull'origine greca del libro era molto comune. In un manoscritto anglo-normanno del XIII secolo, scritto in versi, leggiamo:

L'algoritmo è l'arte di contare con i numeri, ma all'inizio la parola "numero" si riferiva solo a zero. Il famoso truver francese Gautier de Coincy (Gautier de Coincy, 1177-1236) in una delle sue poesie usò le parole algoritmo-cifra(che significava il numero 0) come metafora per caratterizzare una persona assolutamente senza valore. Ovviamente, la comprensione di un'immagine del genere richiedeva un'adeguata preparazione degli ascoltatori, il che significa che il nuovo sistema numerico era già abbastanza noto da loro.

Per molti secoli, l'abaco è stato in realtà l'unico mezzo di calcolo pratico, utilizzato da mercanti, cambiavalute e scienziati. I meriti dei calcoli su una tavola di conteggio furono spiegati nei suoi scritti da un pensatore così eccezionale come Herbert di Avrilaksky (938-1003), che divenne papa nel 999 sotto il nome di Silvestro II. Il nuovo si fece strada con grande difficoltà e la storia della matematica includeva un'ostinata opposizione tra i campi degli algoristi e degli abacisti (a volte chiamati erborististi), che sostenevano l'uso di un abaco al posto dei numeri arabi per i calcoli. È interessante notare che il famoso matematico francese Nicolas Chuquet (1445-1488) è stato iscritto nel registro dei contribuenti della città di Lione come algorista. Ma passò più di un secolo prima che il nuovo metodo di conteggio fosse finalmente stabilito, ci volle così tanto tempo per sviluppare notazioni generalmente riconosciute, migliorare e adattare i metodi di calcolo per la scrittura su carta. Nell'Europa occidentale i maestri di aritmetica continuarono ad essere chiamati "maestri dell'abaco" fino al XVII secolo, come il matematico Niccolò Tartaglia (1500-1557).

Così furono chiamati saggi sull'arte di contare Algoritmi. Delle molte centinaia, se ne possono individuare di così insolite come un trattato scritto in versi Carmen de Algorismo(Latino carmen e significa poesia) di Alexander de Villa Dei (m. 1240) o il libro di testo dell'astronomo e matematico viennese Georg Purbach (Georg Peurbach, 1423-1461) Opus algoritmi jocundissimi("Il saggio più divertente sull'algoritmo").

A poco a poco, il significato della parola si allargò. Gli scienziati iniziarono ad applicarlo non solo a procedure puramente computazionali, ma anche ad altre procedure matematiche. Ad esempio, intorno al 1360, il filosofo francese Nicolaus Oresme (25/1323-1382) scrisse un trattato di matematica Algorismo proporzionale("Calcolo delle proporzioni"), in cui usava per la prima volta gradi con esponenti frazionari e in realtà si avvicinava all'idea dei logaritmi. Quando l'abaco fu sostituito dal cosiddetto conteggio sulle linee, iniziarono a chiamarsi numerosi manuali su di esso Algoritmo lineare, ovvero le regole per il conteggio delle righe.

Si può notare che la forma originale algoritmi dopo qualche tempo perse l'ultima lettera e la parola acquisì una forma più conveniente per la pronuncia europea algoritmo. Successivamente, a sua volta, è stata soggetta a distorsione, molto probabilmente associata alla parola aritmetica.

Macchina di Turing

L'idea alla base della macchina di Turing è molto semplice. Una macchina di Turing è una macchina astratta (automa) che funziona con un nastro di singole celle in cui sono scritti dei simboli. La macchina ha anche una testina per la scrittura e la lettura dei caratteri dalle celle, che può muoversi lungo il nastro. Ad ogni passaggio, la macchina legge un carattere dalla cella puntata dalla testina e, in base al carattere letto e allo stato interno, effettua il passaggio successivo. In questo caso, la macchina può cambiare il suo stato, scrivere un altro carattere nella cella o spostare la testa di una cella a destra oa sinistra.

Sulla base dello studio di queste macchine è stata avanzata la tesi di Turing (l'ipotesi principale degli algoritmi):

Questa tesi è un assioma, un postulato, e non può essere dimostrato con metodi matematici, poiché l'algoritmo non è un concetto matematico esatto.

Funzioni ricorsive

Ogni algoritmo può essere associato a una funzione che calcola. Tuttavia, sorge la domanda se sia possibile associare una macchina di Turing a una funzione arbitraria e, in caso negativo, per quali funzioni esiste un algoritmo? La ricerca su queste domande ha portato alla creazione della teoria delle funzioni ricorsive negli anni '30.

La classe delle funzioni calcolabili è stata scritta in un'immagine simile alla costruzione di una teoria assiomatica basata su un sistema di assiomi. Innanzitutto, sono state scelte le funzioni più semplici, il cui calcolo è ovvio. Successivamente sono state formulate le regole (operatori) per la costruzione di nuove funzioni basate su quelle esistenti. La classe di funzioni necessaria è costituita da tutte le funzioni ottenibili dalla più semplice applicazione di operatori.

Simile alla tesi di Turing nella teoria delle funzioni computazionali, è stata avanzata una congettura, chiamata La tesi di Chiesa:

La dimostrazione che la classe delle funzioni calcolabili coincide con le funzioni calcolabili di Turing avviene in due passaggi: prima si dimostra il calcolo delle funzioni più semplici su una macchina di Turing, e poi il calcolo delle funzioni ottenute applicando gli operatori.

Quindi, informalmente, un algoritmo può essere definito come un chiaro sistema di istruzioni che definisce un processo deterministico discreto che porta dai dati iniziali (input) al risultato desiderato (output), se esiste, in un numero finito di passaggi; se il risultato desiderato non esiste, l'algoritmo non termina mai o raggiunge un vicolo cieco.

Algoritmo di Markov normale

Il normale algoritmo di Markov è un sistema di successive applicazioni di sostituzioni che implementano determinate procedure per ottenere nuove parole da quelle di base, costruite dai caratteri di qualche alfabeto. Come una macchina di Turing algoritmi normali non eseguono i calcoli da soli: eseguono solo la trasformazione delle parole sostituendo le lettere secondo determinate regole.

normalmente calcolabileè una funzione che può essere implementata da un normale algoritmo. Cioè, un algoritmo che trasforma ogni parola dall'insieme di dati validi della funzione nei suoi valori iniziali..

Il creatore della teoria degli algoritmi normali A. A. Markov ha avanzato un'ipotesi, chiamata principio di normalizzazione di Markov:

Come le tesi di Turing e Church, il principio di normalizzazione di Markov non può essere dimostrato con mezzi matematici.

Algoritmi stocastici

Tuttavia, la definizione formale dell'algoritmo di cui sopra potrebbe essere troppo rigida in alcuni casi. A volte è necessario utilizzare variabili casuali. Viene chiamato un algoritmo il cui funzionamento è determinato non solo dai dati iniziali, ma anche dai valori ottenuti dal generatore di numeri casuali Stocastico(o randomizzato, dall'inglese. algoritmo randomizzato). Formalmente, tali algoritmi non possono essere chiamati algoritmi, poiché esiste una probabilità (vicina allo zero) che non si fermino. Tuttavia, gli algoritmi stocastici sono spesso più efficienti di quelli deterministici e, in alcuni casi, l'unico modo per risolvere il problema.

In pratica, invece di un generatore di numeri casuali, viene utilizzato un generatore di numeri pseudo-casuali.

Tuttavia, si dovrebbe distinguere tra algoritmi stocastici e metodi che danno un risultato corretto con un'alta probabilità. A differenza del metodo, l'algoritmo fornisce risultati corretti anche dopo un lungo periodo.

Alcuni ricercatori ammettono la possibilità che l'algoritmo stocastico dia un risultato errato con una probabilità predeterminata. Quindi gli algoritmi stocastici possono essere suddivisi in due tipi:

  • algoritmi come Las Vegas danno sempre il risultato corretto, ma il loro tempo di esecuzione non è definito.
  • algoritmi tipo Montecarlo, a differenza dei precedenti, può dare risultati errati con una probabilità nota (sono spesso chiamati Metodi Montecarlo).

Altre formalizzazione

Per alcuni compiti, le formalizzazione di cui sopra possono rendere difficile trovare soluzioni e svolgere ricerche. Per superare gli ostacoli, sono state sviluppate entrambe le modifiche degli schemi "classici" e sono stati creati nuovi modelli dell'algoritmo. In particolare si possono nominare:

  • macchine di Turing multinastro e non deterministiche;
  • registro e macchina RAM: un prototipo di moderni computer e macchine virtuali;

e altri.

Proprietà formali degli algoritmi

Diverse definizioni dell'algoritmo, in modo esplicito o implicito, contengono il seguente insieme di requisiti generali:

Tipi di algoritmi

Un ruolo speciale è svolto dagli algoritmi applicati progettati per risolvere determinati problemi applicati. Un algoritmo è considerato corretto se soddisfa i requisiti del problema (ad esempio, fornisce un risultato fisicamente plausibile). Un algoritmo (programma) contiene errori se per alcuni dati iniziali fornisce risultati errati, fallimenti, fallimenti o non fornisce alcun risultato. L'ultima tesi viene utilizzata nei concorsi di programmazione algoritmica per valutare i programmi compilati dai partecipanti.

Il caso in cui il risultato della valutazione di una funzione sia l'espressione logica "vero" o "falso" (o l'insieme (0, 1)) è chiamato problema che può essere risolto o irrisolvibile a seconda della computabilità della funzione.

È importante specificare con precisione l'insieme valido di dati di input, poiché un problema può essere risolvibile per un insieme e irrisolvibile per un altro.

Uno dei primi problemi per i quali è stata dimostrata l'irrisolvibilità è il problema dell'arresto. È formulato come segue:

La prova dell'irrisolvibilità del problema dell'arresto è importante perché ad esso possono essere ridotti altri problemi. Ad esempio, un semplice problema di arresto può essere ridotto a un problema di arresto su una riga vuota (quando è necessario determinare per una data macchina di Turing se si fermerà quando viene avviata su una riga vuota), dimostrando così l'indecidibilità di quest'ultima. .

Analisi dell'algoritmo

Insieme alla diffusione delle tecnologie dell'informazione, è aumentato il rischio di guasti del software. Uno dei modi per evitare errori negli algoritmi e nelle loro implementazioni è dimostrare la correttezza dei sistemi con mezzi matematici.

L'uso di apparati matematici per l'analisi degli algoritmi e delle loro implementazioni è chiamato metodi formali. I metodi formali implicano l'uso di specifiche formali e di solito un insieme di strumenti per analizzare e dimostrare le proprietà delle specifiche. L'astrazione dai dettagli di implementazione consente di impostare le proprietà del sistema indipendentemente dalla sua implementazione. Inoltre, la precisione e la non ambiguità delle affermazioni matematiche evita l'ambiguità e l'inesattezza dei linguaggi naturali.

Secondo l'ipotesi di Richard Mace, "evitare gli errori è meglio che eliminare gli errori". Secondo la congettura di Hoare, "la prova dei programmi risolve il problema della correttezza, della documentazione e della compatibilità". La prova della correttezza dei programmi ci permette di rivelare le loro proprietà in relazione all'intera gamma di dati di input. Per fare ciò, il concetto di correttezza è stato diviso in due tipi:

  • Correttezza parziale- il programma dà il risultato corretto per quei casi quando termina.
  • Piena correttezza- il programma termina e produce il risultato corretto per tutti gli elementi dell'intervallo di input.

Durante la prova di correttezza, il testo del programma viene confrontato con la specificazione del rapporto desiderato di dati di input-output. Per le dimostrazioni di tipo Hoare, questa specificazione assume la forma di affermazioni, che sono chiamate precondizioni e postcondizioni. Insieme al programma stesso, sono anche chiamati terzina Hoare. Queste affermazioni sono scritte

P{Q} R

dove Pè una condizione preliminare che deve essere soddisfatta prima di eseguire il programma Q, un Rè una postcondizione che è vera al termine del programma.

I metodi formali sono stati applicati con successo a un'ampia gamma di problemi, in particolare: lo sviluppo di circuiti elettronici, l'intelligenza artificiale, i sistemi automatici sulla ferrovia, la verifica dei microprocessori, la specificazione di standard e la specificazione e verifica dei programmi.

Ore lavorative

Un criterio comune per la valutazione degli algoritmi è il tempo di esecuzione e l'ordine in cui il tempo di esecuzione cresce a seconda della quantità di dati di input.

Per ogni compito specifico, costituiscono un certo numero, chiamato dimensione. Ad esempio, la dimensione dell'attività di calcolo del prodotto delle matrici può essere la dimensione più grande dei fattori di matrice, per le attività sui grafici, la dimensione può essere il numero di bordi del grafico.

Il tempo impiegato da un algoritmo in funzione della dimensione dell'attività è chiamato complessità temporale di tale algoritmo. T(n). Il comportamento asintotico di questa funzione all'aumentare della dimensione del problema è chiamato complessità temporale asintotica e viene utilizzata una notazione speciale per denotarlo.

È la complessità asintotica che determina la dimensione dei problemi che l'algoritmo è in grado di gestire. Ad esempio, se l'algoritmo elabora i dati di input di dimensione nel tempo cn², dove c- alcune costanti, poi dicono che la complessità temporale di un tale algoritmo o(n²).

Spesso, durante lo sviluppo di un algoritmo, si cerca di ridurre la complessità del tempo asintotico nei casi peggiori. In pratica, ci sono casi in cui è sufficiente un algoritmo che "di solito" gira velocemente.

In parole povere, l'analisi della complessità temporale media asintotica può essere suddivisa in due tipi: analitica e statistica. Il metodo analitico fornisce risultati più accurati, ma è difficile da usare nella pratica. Ma il metodo statistico consente di analizzare rapidamente problemi complessi.

La tabella seguente elenca le complessità asintotiche commentate comuni.


Complessità Commento Esempi
o(1) Il tempo di esecuzione sostenibile non dipende dalle dimensioni dell'attività Tempo di ricerca previsto nella tabella hash
o(log log n) Crescita molto lenta del tempo richiesto Tempo di esecuzione previsto per la ricerca interpolante n elementi
o(tronco d'albero n) Crescita logaritmica: il raddoppio della dimensione dell'attività aumenta il tempo di esecuzione di un importo costante calcolo X n; Ricerca binaria in un array di n elementi
o(n) Crescita lineare: raddoppiare la dimensione dell'attività raddoppierà anche il tempo richiesto Aggiungi/sottrai numeri da n numeri; Ricerca lineare in un array di n elementi
o(n tronco d'albero n) Crescita lineare: raddoppiare la dimensione dell'attività raddoppierà leggermente il tempo richiesto Unisci l'ordinamento o l'ordinamento dell'heap n elementi; ordinamento corrispondente limite inferiore n elementi
o(n²) Crescita quadratica - Raddoppiando la dimensione dell'attività quadruplica il tempo richiesto Algoritmi di ordinamento elementari
o(n³) Crescita cubica - Il raddoppio della dimensione dell'attività aumenta il tempo richiesto di otto volte Moltiplicazione di matrici ordinarie
o(c n) Crescita esponenziale: aumentando la dimensione dell'attività di 1 si ottiene c- un aumento multiplo del tempo richiesto; il raddoppio della dimensione dell'attività corrisponde al tempo richiesto Alcuni problemi di commesso viaggiatore, algoritmi di ricerca a forza bruta

La presenza di dati iniziali e qualche risultato

Un algoritmo è un'istruzione definita con precisione, applicandola in sequenza ai dati iniziali, puoi ottenere una soluzione al problema. Per ogni algoritmo esiste un determinato insieme di oggetti che possono essere utilizzati come dati di input. Ad esempio, nell'algoritmo per la divisione dei numeri reali, il dividendo può essere qualsiasi cosa e il divisore non può essere uguale a zero.

L'algoritmo serve, di regola, a risolvere non un problema specifico, ma una certa classe di problemi. Quindi, l'algoritmo di addizione è applicabile a qualsiasi coppia di numeri naturali. Questo esprime la sua proprietà di massa, ovvero la capacità di applicare ripetutamente lo stesso algoritmo per qualsiasi attività della stessa classe.

Per lo sviluppo di algoritmi e programmi viene utilizzato algoritmizzazione- il processo di compilazione sistematica di algoritmi per la risoluzione di problemi applicati. L'algoritmo è considerato una fase obbligatoria nel processo di sviluppo di programmi e risoluzione di problemi su un computer. È per algoritmi e programmi applicati che determinismo, efficienza e carattere di massa, nonché la correttezza dei risultati della risoluzione dei compiti impostati, sono di fondamentale importanza.

Un algoritmo è un'istruzione chiara e precisa per eseguire una sequenza di azioni volte al raggiungimento di un obiettivo.

Presentazione di algoritmi

Forme di notazione dell'algoritmo:

  • verbale o verbale (lingua, formula-verbale);
  • pseudocodice (linguaggi algoritmici formali);
  • schematico:
    • structurogrammi (schemi Nassi-Schneiderman);
    • grafica (schemi a blocchi).

Di solito, all'inizio (a livello di idea), l'algoritmo è descritto a parole, ma man mano che si avvicina all'implementazione, acquisisce contorni e formulazione sempre più formali in un linguaggio comprensibile all'esecutore (ad esempio il codice macchina).

Efficienza dell'algoritmo

Sebbene la definizione dell'algoritmo richieda solo un numero finito di passaggi necessari per ottenere un risultato, in pratica anche un miliardo di passaggi è troppo lento. Inoltre, di solito ci sono altre restrizioni (sulla dimensione del programma, sulle azioni consentite). A questo proposito, vengono introdotti concetti come la complessità dell'algoritmo (tempo, dimensione del programma, computazionale, ecc.).

Per ogni attività, possono esserci molti algoritmi che portano all'obiettivo. Aumentare l'efficienza degli algoritmi è uno dei compiti dell'informatica moderna. Negli anni '50. Nel 20 ° secolo è apparsa anche la sua area separata: algoritmi veloci. In particolare, nel problema della moltiplicazione dei numeri decimali, noto a tutti fin dall'infanzia, sono stati scoperti una serie di algoritmi che possono significativamente (in senso asintotico) velocizzare la ricerca del prodotto. Vedi moltiplicazione rapida

L'algoritmo di Euclide è un metodo efficiente per calcolare il massimo comun divisore (gcd). Prende il nome dal matematico greco Euclide; uno dei più antichi algoritmi ancora in uso oggi.

Descritto negli "Inizi" di Euclide (circa 300 aC), in particolare nei libri VII e X. Nel settimo libro viene descritto un algoritmo per gli interi e nel decimo - per le lunghezze dei segmenti.

Esistono diverse varianti dell'algoritmo, di seguito è riportata una versione ricorsiva scritta in pseudocodice:

funzione nodo(a, b) Se b = 0 Restituzione un altrimenti Restituzione nodo(b, a mod b)

GCD dei numeri 1599 e 650:

Passo 1 1599 = 650*2 + 299
Passo 2 650 = 299*2 + 52
Passaggio 3 299 = 52*5 + 39
Passaggio 4 52 = 39*1 + 13
Passaggio 5 39 = 13*3 + 0


Guarda anche

Appunti

  1. Kleine 1943 in Davis 1965:274
  2. Rosser 1939 in Davis 1965:225
  3. (Igoshin, p. 317)
  4. Nozioni di base: La macchina di Turing (con un interprete! . Buona matematica, cattiva matematica(9 febbraio 2007). Archiviato dall'originale il 2 febbraio 2012.
  5. (Igoshin, sezione 33)
  6. Enciclopedia della cibernetica, vol. 2 , c. 90-91.
  7. (Igoshin, sezione 34)
  8. “Gli algoritmi probabilistici non devono essere confusi con i metodi (che mi rifiuto di chiamare algoritmi), che producono un risultato che ha un'alta probabilità di essere corretto. È essenziale che un algoritmo produca risultati corretti (scontando gli errori umani o informatici), anche se ciò accade dopo molto tempo”. Henri Cohen Un corso di teoria algebrica computazionale dei numeri. - Springer-Verlag, 1996. - P. 2. - ISBN 3-540-55640-0
  9. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rives "t, Clifford Stein. - ISBN 0-262-03293-7

Secondo l'autore, la somiglianza individuata tra i concetti di "algoritmo" e "processo tecnologico" è fondamentale e ha conseguenze di vasta portata. Purtroppo questa somiglianza non ha ancora attirato l'attenzione degli scienziati, che ha portato a risultati negativi e in larga misura ha contribuito alla divisione della scienza in “cellule isolate”, creando ostacoli ingiustificati ai contatti interdisciplinari e interdisciplinari. Oggi, programmatori e tecnologi (nel senso ampio del termine, inclusi agronomi, medici, insegnanti, dirigenti, ecc.) sono diverse “caste” che ricevono un'istruzione diversa e parlano lingue professionali diverse. Tali barriere complicano notevolmente la comprensione reciproca tra specialisti quando risolvono problemi di automazione e lavorano su progetti interdisciplinari.

In questo modo, tecnolinguaggioè un nuovo tipo di linguaggio che unisce il rigore matematico di un linguaggio algoritmico con la comodità di un linguaggio di comunicazione intersettoriale e interdisciplinare, adatto alla descrizione visiva delle tecnologie e alla comprensione reciproca tra specialisti.

Ai nostri fini, sarebbe conveniente definire tecnologia come attività (sequenza di azioni) che porta all'obiettivo. Concordando con questo approccio, abbiamo l'opportunità di considerare l'algoritmo e il processo tecnico come casi speciali della tecnologia, che acquisisce lo status di concetto generico.

È noto che il termine “algoritmo” è usato anche in senso più ampio per rappresentare l'attività umana sotto forma di una rigorosa sequenza di singole azioni o procedure elementari, e un processo tecnologico può essere definito come “una sequenza di azioni (operazioni tecnologiche ) finalizzato alla creazione di un determinato oggetto, ognuno dei quali è basato su eventuali processi naturali (fisici, chimici, biologici, ecc.) e sull'attività umana”. Un'attenta analisi di queste e di molte altre definizioni mostra che i concetti in esame coincidono in larga misura e le differenze esistenti sono in un certo senso insignificanti. In altre parole, il processo tecnologico e l'algoritmo sono concetti gemelli, o almeno “parenti stretti”. Per rendere questa idea più convincente, cercheremo di allontanarci dal punto di vista tradizionale e proporre nuove definizioni.

L'inconveniente menzionato (difficoltà di comprensione reciproca) può essere attenuato o eliminato creando un unico linguaggio ugualmente conveniente per tecnologi, programmatori e altri specialisti. Il termine per questa lingua è linguaggio tecnologico(linguaggio tecnico). Il primo candidato per il ruolo di linguaggio tecnologico è DRAKON.

Va sottolineato che gli obiettivi dell'utilizzo di un linguaggio tecnologico nello sviluppo di programmi per computer e processi tecnici sono diversi. Nel primo caso (creazione di programmi), il linguaggio consente la traduzione in codici macchina. Nel secondo caso (descrizione delle tecnologie) sono possibili due situazioni. Se esiste un sistema di controllo automatizzato e la descrizione della tecnologia è destinata a un computer che controlla il processo, la descrizione si trasforma automaticamente in un programma per computer e la questione si riduce al caso precedente. Se un sistema di controllo automatizzato e un computer di controllo non sono disponibili o non sono necessari, e quindi non è necessaria la traduzione, la lingua viene utilizzata come mezzo per risolvere inequivocabilmente problemi e garantire la comprensione reciproca tra le persone, che di per sé è una proprietà estremamente preziosa della lingua.

Differenza tra algoritmo e programma

Programma(computer, prima di tutto) - un record di una sequenza di istruzioni eseguite da un computer.

Algoritmo- un'istruzione che includa una certa sequenza chiara di azioni eseguite per completare l'attività. Il numero di azioni è sempre finito.

La comprensione dei programmi da parte dell'utente medio è molto limitata e si basa sull'esperienza di avvio e utilizzo delle applicazioni. Sappiamo che ci sono programmatori che scrivono programmi e il nostro compito è sfruttare i risultati del loro lavoro. Gli algoritmi sono ricordati da persone che si sono diplomate a scuola un certo tempo fa nell'ambito della teoria dell'algebra, immaginando vagamente che questa conoscenza non sarà certo utile. E se devi affrontare l'intersezione di questi concetti, la maggior parte di noi si perde, non trova connessioni tra algoritmi e programmi e, quindi, non comprende il compito. A volte questi concetti sono combinati, considerando che "algoritmo" è una designazione più professionale e accurata di "programma". Per colmare le lacune nelle visualizzazioni, vediamo cosa c'è dietro la terminologia.

Un'altra differenza tra un programma e un algoritmo è il funzionamento di dati specifici durante l'esecuzione. Se l'algoritmo è solo una descrizione delle azioni richieste per raggiungere l'obiettivo, il programma contiene anche una descrizione dei dati. Un algoritmo può essere enorme, cioè può essere progettato per risolvere non un problema, ma una classe di problemi. Tuttavia, le sue proprietà includono anche discrezione e certezza. L'algoritmo implica l'esecuzione di azioni elementari su oggetti elementari, tuttavia, l'elementarità sarà diversa per i diversi esecutori.

Qual è la differenza tra un algoritmo e un programma è chiara dalla terminologia. Sembrerebbe che in entrambi i casi si vedano azioni ordinate che portano al risultato finale. Come risulta dalle definizioni, un programma può essere costituito da più algoritmi, ma qui non viene tracciata la gerarchia “generale - particolare”. Un algoritmo è generalmente qualsiasi istruzione che elenca chiaramente le azioni. Ad esempio, per assemblare un armadio. Ovviamente non sarà un programma. Un algoritmo può esistere in qualsiasi forma: può essere memorizzato, trascritto su un taccuino, abbozzato sotto forma di diagramma, dettato, poiché si basa su una componente logica, non formale. Il programma è un concetto formale. Si tratta appunto di un record di un insieme di algoritmi, inoltre, un record in uno dei linguaggi di programmazione comprensibili a un computer. Può essere non solo il nostro solito computer, ma anche l'unità di controllo di qualsiasi dispositivo. Pertanto, un algoritmo può essere definito come un metodo o uno schema per implementare un'idea, un programma come la sua attuazione con mezzi specifici.

Il concetto di algoritmo è molto più ampio dei programmi: il concetto base della matematica. Un programma per computer è un oggetto di diritti di proprietà intellettuale, ma un algoritmo non è uno di questi.

Le principali differenze tra protezione del lavoro e sicurezza sul lavoro

  • valutare il rischio di una situazione pericolosa nel flusso di lavoro, sviluppare misure per prevenirla;
  • redigere istruzioni di sicurezza;
  • insegnare metodi e tecniche di lavoro sicuri;
  • fornire formazione ai dipendenti.

La questione di come la protezione del lavoro del personale differisca dalla sicurezza sul lavoro era di interesse per molte persone che sono state istruite per la prima volta in un nuovo posto di lavoro. Questi due termini sono spesso usati insieme, ma hanno significati diversi. Per capire quali sono le loro somiglianze e differenze, è necessario scoprire i compiti di protezione e sicurezza del lavoro, per determinare i metodi per risolverli.

  • norme di sicurezza sul lavoro;
  • regolamenti edilizi;
  • norme e regole sanitarie;
  • standard di progettazione tecnologica;
  • altre regole e istruzioni sviluppate dalle autorità di vigilanza.

La protezione del lavoro ha lo scopo di preservare le risorse più importanti dello stato - umane. È considerato uno degli elementi della protezione sociale, consentendo ai cittadini di esercitare i propri diritti. Allo stesso tempo, è necessario rispettare le garanzie stabilite dallo Stato.

Il compito della sicurezza sul lavoro è la protezione dagli effetti fisici dannosi sul posto di lavoro.

  1. Il diritto di lavorare in condizioni che soddisfano gli standard stabiliti. Fissare questi requisiti nel contratto di lavoro.
  2. Sospensione del lavoro per il periodo di eliminazione delle violazioni della protezione del lavoro che sono apparse per colpa dell'impresa. Durante questo periodo, il salario deve essere pagato al dipendente, salva il posto di lavoro.
  3. Se ci sono fattori pericolosi per la salute, fornendo al cittadino un altro posto di lavoro o pagando il tempo di inattività.
  4. Divieto di impegnarsi nel lavoro senza la fornitura di dispositivi di protezione.
  5. Risarcimento dei danni alla salute causati sul lavoro per colpa del datore di lavoro.

Futsal e futsal sono due giochi sportivi simili, ma allo stesso tempo diversi. Prima di capire cosa sono, è estremamente importante prestare maggiore attenzione alle numerose sfumature.

Il proiettile di gioco è uno degli attributi più importanti nello sport. Per il futsal si assumono i seguenti parametri della palla utilizzata:

Il futsal è giocato da due squadre di quattro giocatori. Il partecipante aggiuntivo è il portiere. Le squadre devono giocare 2 tempi e la durata, come nel futsal, è di 20 minuti.

Come le preposizioni differiscono dai prefissi (differenze principali)

Esempi di parole con il prefisso sotto-: boletus, boletus, portabicchieri, mento, sottobosco, sotterraneo, davanzale, sospensione, biancheria da letto, stand, fit, supporto, ingresso, avvicinamento, consegna, limato, sottosquadro, sospensione, ecc.

  • Un prefisso è la parte di una parola che precede la radice e serve a formare una nuova parola.
  • Una preposizione è una parte ufficiale del discorso che collega le parole tra loro.

5) Trasforma le frasi con una preposizione in parole con un prefisso:

  • Il giorno dopo arrivarono tutti puntuali(sei venuto in tempo quando?) - il significato dell'avverbio.
  • L'incontro è previsto per domani(nominato per che ora?) - il significato di un sostantivo.
  • genere. n.- affrontato (senza cosa?) senza errori;
  • vini n.- pagata (per cosa?) l'energia elettrica;
  • date n.- è andato (per cosa?) per il pane;
  • tv. n.- incontrato (con chi?) con un amico;
  • pr. p. - Ho pensato (a cosa?) al caso.

Essendo unità della lingua completamente diverse, i prefissi e le preposizioni sono definiti come segue:

Qual è la differenza tra futsal e futsal

  1. La lunghezza del campo dovrebbe essere compresa tra ventotto e quaranta metri.
  2. La larghezza può variare da sedici a venti metri.
  3. L'area di rigore è un'area semicircolare. Va ricordato che non è possibile entrare in questo territorio, altrimenti vengono violate le regole del gioco del futsal.
  4. Dalla linea di porta deve essere esteso di sei metri.
  5. Su tutti i bordi dell'area di rigore ha arrotondamenti speciali.
  6. Le dimensioni del cancello possono essere le seguenti: altezza - 2 metri, lunghezza - 3 metri.

In ogni caso, il futsal implica una certa strategia di gioco. Solo se tutte le regole vengono prese in considerazione, puoi aspettarti di ottenere i migliori risultati.

Si presume la possibilità di utilizzare una pallina più piccola. Inoltre, le caratteristiche di un'attrezzatura sportiva possono essere molto inferiori, per cui il rimbalzo diventa più debole.

Un piccolo campo detta subito un certo ritmo del gameplay. Non c'è tempo per nessuna riflessione. Il gameplay dovrebbe essere veloce e tecnico. Si presume un basso livello di contatto, a seguito del quale il mini-calcio può avvicinarsi agli sport indoor. La distanza dal calcio classico è in gran parte dovuta alla necessità di giocare su un campo piccolo, al movimento costante di tutti i giocatori. Si presume che il giocatore debba sentirsi sicuro nell'attacco e nella difesa del territorio personale. Per questo motivo, i rappresentanti del calcio classico, che si svolge sempre su una vasta area, notano un pronunciato disagio in sala.

  • La circonferenza non deve superare i 58 - 60 centimetri.
  • Il peso può essere di 430 - 460 grammi. Se donne o bambini partecipano al futsal, il peso può essere ridotto a 380 grammi.
  • La pressione dovrebbe essere 0,6 - 0,7 atmosfere, in modo che il primo rimbalzo della palla utilizzata contribuisca al corretto processo di gioco.

Futsal è un gioco di squadra, che rende il gameplay immediatamente emozionante. Il numero di partecipanti per parte raggiunge 5. Ogni giocatore deve svolgere solo i propri compiti specifici.

Tecnica di iniezione di insulina: algoritmo e calcolo, dose impostata in terapia insulinica

È stato stabilito che, in generale, il fabbisogno giornaliero per i pazienti con diabete mellito non supera un'unità di ormone per chilogrammo di peso corporeo. Se questa soglia viene superata, aumenta la probabilità di complicanze.

Ma poiché la sua funzionalità è compromessa, l'organo interno non può più funzionare nella modalità precedente a tutti gli effetti, la produzione dell'ormone è lenta, mentre viene prodotta in piccole quantità. Le condizioni di una persona peggiorano e, nel tempo, il contenuto della propria insulina si avvicina allo zero.

Oggi, la tecnologia informatica è diventata parte integrante della nostra vita. Hanno introdotto molti termini nel dizionario di una persona comune, i cui significati non gli sono sempre chiari. Ma tutti li usano. Ad esempio, cos'è un algoritmo? Un utente ordinario non sarà in grado di darti una risposta chiara, ma è necessario saperlo, visto che ogni giorno ci troviamo di fronte a questo.

Storia dell'origine del termine

Il concetto di algoritmo è stato formato per la prima volta da un matematico di nome Mohammed Al-Khwarizmi. Visse in Oriente nell'VIII e IX secolo e scrisse due grandi opere. Il primo ha dato origine alla parola "algebra" e il secondo al concetto di "algoritmo". Indicava le operazioni aritmetiche che conosciamo come addizione, sottrazione, moltiplicazione e divisione. Nel 1957, in una delle edizioni del dizionario inglese, gli autori consideravano l'algoritmo un concetto obsoleto. Ancora una volta, è entrato attivamente in uso solo con l'avvento dei computer. Indicavano le azioni che facevano parte di un certo processo. Ma non deve essere solo matematico. Ciò implica un algoritmo di azioni di qualsiasi natura, ad esempio la preparazione di un piatto. Da quel momento, questo concetto non ha lasciato la bocca di quasi tutte le persone.

Tentativi di definire il termine

Per molto tempo, questo termine è stato considerato esclusivamente come un algoritmo per numeri e azioni con essi. Dopotutto, la matematica stessa era per la maggior parte una scienza applicata. Le formule utilizzate per i calcoli erano considerate algoritmi in quel momento. I passaggi che sono stati compiuti nella soluzione erano elementari e i calcoli stessi erano molto macchinosi e richiedevano molto tempo e fatica. I matematici non hanno nemmeno pensato di definire questo concetto. Ma nel tempo la scienza si sviluppò sempre di più e apparvero oggetti mai visti prima (matrici, vettori, insiemi, ecc.). Tutti dovevano essere operati. Ciò ha dato impulso alla comprensione che l'algoritmo non è un concetto facile e deve essere definito con precisione per un ulteriore utilizzo. Gli studiosi sono divisi su questo tema. Alcuni credevano che l'algoritmo si applicasse a tutto, mentre altri dubitano che ogni problema potesse essere risolto con il suo aiuto. Quest'ultimo punto di vista si è rivelato corretto, ma si è potuto sostanziare solo dando una definizione precisa del concetto di "algoritmo".

Cosa significa il termine "algoritmo"?

Ogni giorno una persona deve risolvere problemi di diversa complessità. Siamo così abituati a quelli semplici che eseguiamo azioni per risolverli automaticamente. Quelli complessi richiedono molta riflessione. Quando si presenta un problema, lo risolviamo per gradi, agendo per gradi. Quindi in matematica, ad esempio, per trovare l'incognita nell'equazione, è necessario agire passo dopo passo. Queste operazioni, che portano gradualmente alla soluzione del problema, sono chiamate algoritmo. Un algoritmo è una sequenza di azioni, che individualmente sono i suoi passaggi. Hanno un posto preciso e devono rigorosamente seguirsi. Esistono classi di algoritmi, si chiamano classi di complessità. Ciascuno di essi include un determinato insieme di attività che hanno approssimativamente la stessa complessità di soluzione.

Proprietà comuni a tutti gli algoritmi

Oltre agli algoritmi, ci sono molte altre istruzioni nel nostro mondo. Ma grazie ad alcune proprietà, possiamo distinguerlo dal resto. Questi includono:

  • Discretezza: lo schema dell'algoritmo prevede la soluzione del problema attraverso azioni sequenziali eseguite in ordine rigoroso.
  • Certezza: tutte le condizioni poste sono chiare e non presentano ambiguità. L'algoritmo delle azioni, quindi, non lascia spazio ad alcuna improvvisazione. Questo ti permette di fare tutto meccanicamente, senza bisogno di ulteriori richieste.
  • Efficienza: per un certo numero di passaggi, l'algoritmo fornisce sempre la soluzione corretta al problema.
  • Carattere di massa: un algoritmo è una soluzione a un problema che ha una forma generale. Cioè, è applicabile a tutte le attività di una determinata classe, indipendentemente dai dati di origine. Sono selezionati da un determinato campo chiamato "area di applicabilità dell'algoritmo".

Tipi di algoritmi

A seconda delle diverse condizioni, come l'obiettivo, il percorso della soluzione, i dati iniziali, gli algoritmi sono suddivisi in:

  • Meccanico - duro, l'unica vera sequenza per ottenere il risultato desiderato (funzionamento del motore, ecc.).
  • Flessibile: 1) probabilistico - dispone di diversi modi per prendere la decisione giusta; 2) euristica: uno schema di algoritmo che non ha un programma inequivocabile di azioni (prescrizioni, ecc.), Perché si basa sulle qualità personali di una persona, sulla sua esperienza.
  • Ausiliario: sviluppato in precedenza e completamente progettato per risolvere un problema specifico.

Algoritmi in informatica

Per l'informatica, gli algoritmi sono di particolare importanza. In questa scienza, sono suddivisi nei seguenti tipi:

  1. Lineare: tutte le azioni vengono eseguite in sequenza, una dopo l'altra.
  2. Un algoritmo di ramificazione è quello in cui il soddisfacimento di una determinata condizione porta alla scelta di una delle due possibili opzioni per ulteriori azioni.
  3. Ciclico: le stesse azioni vengono ripetute su dati di origine diversi, quindi vengono selezionati quelli più adatti.

Struttura degli algoritmi

Gli algoritmi hanno una propria struttura, che di solito viene visualizzata in un diagramma. Uno schema di algoritmo è la sua rappresentazione grafica sotto forma di blocchi interconnessi. Ciascuno di essi visualizza uno dei passaggi dell'algoritmo. All'interno di ogni blocco è contenuta una descrizione di un'azione specifica. Tali diagrammi sono solitamente disegnati per facilitare la programmazione, in quanto sono illustrativi e forniscono una percezione visiva della quantità di lavoro da svolgere. Una persona può comprendere il processo, correggerlo anche prima che si verifichino errori.

Regole per la compilazione di algoritmi

  • La prima regola è che è necessario definire un gran numero di oggetti che possono soccombere all'algoritmo costruito. Il programmatore li converte in dati usando la codifica. Sono input e output. I primi servono per iniziare il lavoro, i secondi ne diventano il risultato. Questo si chiama trasformazione dei dati.
  • La seconda regola dice che lavorare con l'algoritmo richiede memoria libera. Dopotutto, senza di esso, non sarà possibile posizionare i dati di input, lavorare con essi e ottenere l'output. La memoria è fatta di cellule. Se a uno di essi viene assegnato un nome, diventa una variabile.
  • La terza regola è già stata descritta sopra come una delle caratteristiche dell'algoritmo, ovvero la discrezione. Cioè, l'algoritmo consiste in operazioni o passaggi separati.
  • La quarta regola richiama il determinismo dell'algoritmo. Cioè, dopo ogni azione, devi specificare quale sarà la prossima o interrompere il processo.
  • L'ultima regola dice che dopo un certo numero di passaggi, l'algoritmo termina il suo lavoro con un risultato o un altro. E quale, indica lo stesso programmatore.

Pertanto, un algoritmo è un concetto complesso che, prima dell'avvento dei computer, era utilizzato solo in matematica ed era considerato obsoleto. Oggi è utilizzato in tutti gli ambiti della vita, uno dei più importanti è l'informatica.

Oggi daremo una risposta alla domanda su cosa sia un algoritmo.

È spesso consuetudine chiamare un algoritmo un insieme di istruzioni che descrivono le azioni necessarie (nonché l'ordine in cui vengono eseguite) per risolvere un determinato problema. Al giorno d'oggi, gli algoritmi sono utilizzati non solo nell'ingegneria e nella scienza, ma anche in altri settori della vita.

Che cos'è un algoritmo

Il concetto di algoritmo è piuttosto antico e appartiene a uno dei concetti principali e anche di base della matematica. Il termine deriva dall'ortografia latina del nome del famoso matematico orientale del 787-850, Muhammad al-Khwarizmi - Algorithmi. Questo scienziato è stato il primo a formulare regole esatte per scrivere numeri naturali, nonché regole per riassumere le letture in una colonna. Un fatto piuttosto interessante è che, nonostante le radici antiche, il concetto stesso è stato formulato con precisione solo all'inizio del XX secolo. Ora l'algoritmo è il componente principale del business moderno, di qualsiasi processo educativo o ricerca. Ecco perché ogni persona moderna deve semplicemente sapere esattamente cosa significa l'algoritmo.

Algoritmo - istruzioni spesso formulate con precisione, l'ordine di determinate azioni che dovrebbero garantire il raggiungimento dell'obiettivo.

Quali sono le proprietà degli algoritmi

Ma vale la pena ricordare che non tutte le sequenze di azioni possono essere chiamate algoritmi. Una sequenza è un algoritmo solo se ha determinate proprietà. Elenchiamoli:

  1. Una delle proprietà più importanti è la discrezione. Daremo un'occhiata di seguito.
  2. Altrettanto importante è la certezza. Secondo questa proprietà, ogni comando deve essere univoco e indirizzare l'esecutore a un'azione specifica.
  3. Vale la pena ricordare la chiarezza dell'algoritmo. L'algoritmo dovrebbe utilizzare solo i comandi necessari che sono rilevanti per l'attività.
  4. Una proprietà importante è l'efficacia (spesso chiamata anche finitezza) dell'algoritmo. La proprietà "efficienza" indica che l'algoritmo ha un certo numero di passaggi precedentemente indicato, la cui esecuzione porterà al completamento dell'attività.
  5. Inoltre, qualsiasi algoritmo deve necessariamente avere una proprietà come il carattere di massa. Se l'algoritmo garantisce l'esecuzione di tutte le attività di un certo tipo, ha la proprietà del carattere di massa.

Che cos'è un algoritmo in informatica

Tutti gli scienziati concordano sul fatto che il concetto di algoritmo è fondamentale nell'informatica moderna. Quando si crea un software, il primo passo è sempre creare un algoritmo.

Un algoritmo scritto in un linguaggio formale è chiamato programma. Molto spesso, il concetto di algoritmo è strettamente associato al processo di scrittura in un programma. Ecco perché i termini algoritmo e programma sono spesso considerati sinonimi.

Come creare un algoritmo

Per creare un algoritmo efficace e di alta qualità, è necessario osservare diverse regole:

  1. L'algoritmo deve essere scritto in un linguaggio formale e chiaro. L'ambiguità o l'ambiguità delle istruzioni è inaccettabile.
  2. Quando si compila un algoritmo, è necessario tenere conto di chi è stato compilato. L'esecutore deve comprendere tutti i punti dell'algoritmo ed essere in grado di implementarli.
  3. È auspicabile rendere l'algoritmo breve, preciso e chiaro.

Che cos'è un algoritmo lineare

Tra tutti gli algoritmi si distinguono lineare e non lineare. Un algoritmo si dice lineare se segue un ordine coerente di operazioni durante tutto il processo di esecuzione.

In informatica, il linguaggio di programmazione con cui viene descritto un algoritmo è solitamente chiamato operatore. Ci sono operatori semplici e strutturati. Semplici affermazioni descrivono solo un'azione.

Sono gli operatori semplici che vengono utilizzati più spesso negli algoritmi lineari.

Proprietà della discrezionalità dell'algoritmo e suo significato

In precedenza abbiamo menzionato che qualsiasi algoritmo ha una proprietà come la discrezione. Consideriamo ora il concetto di discrezione in modo più dettagliato.

Spesso, la discrezione è sostituita da termini come discontinuità e separazione dell'algoritmo. In effetti, tutti e tre i termini significano la stessa cosa, ovvero l'esecuzione sequenziale (alternativa) di tutti i comandi dell'algoritmo. Quando si osserva la discrezione, ogni azione viene eseguita solo dopo il completamento della precedente e il rispetto di tutti i set point porta al risultato finale precedentemente indicato (alla completa soluzione del problema).

Ora abbiamo considerato i principali termini e concetti che si riferiscono all'argomento di oggi. Sicuramente per te ora non è un problema rispondere alla domanda su cosa sia un algoritmo. Le conoscenze acquisite ti saranno utili più di una volta sia nel tuo campo professionale che nella vita di tutti i giorni. Come sempre, puoi chiarire i dettagli o trovare la risposta alla tua domanda utilizzando il comodo sistema di commenti qui sotto.

Articoli correlati in alto