2009-05-18 28 views
18

Come si fa a distinguere tra un algoritmo e un metodo? Perché non chiamiamo Algoritmi del Metodo di Ford-Faulkerson o Metodo di Newton? Quali sono le proprietà di un buon algoritmo e cosa qualifica un metodo come un algoritmo?Qual è la differenza tra un algoritmo e un metodo

+0

Stai chiedendo nel contesto dei brevetti (software)? – zvrba

+0

No, solo una domanda generale. Tuttavia, per favore, potresti rispondere nel contesto dei brevetti? – unj2

risposta

-1

Per quanto riguarda il metodo di Ford-Faulkerson, CLRS lo chiama metodo piuttosto che un algoritmo perché "comprende diverse implementazione con il tempo di esecuzione diverso" [pp 651. 2 ° Editon]

7

Non vi è alcuna differenza tecnica tra il termine "metodo" come in "metodo Newton" e "algoritmo".

EDIT: Riflettendoci, forse Pete è corretto che gli algoritmi terminano e metodi non possono, tuttavia, non credo che sia una distinzione che la maggior parte delle persone si fanno solo sulla base all'utilizzo, (chi sono io per discutere con Knuth?) di una parola o l'altra.

+0

Stai suggerendo che possiamo usare i termini in modo intercambiabile. Potrei fare riferimento a qualsiasi metodo come un algoritmo? – unj2

+0

Credo che si possa fare riferimento a qualsiasi tipo di metodi matematici come "algoritmi" ed essere entrambi tecnicamente corretti e comprensibili dai matematici. – mquander

+2

I termini possono essere intercambiabili con alcune persone - utilizzare * l'algoritmo * per fare riferimento a una sequenza di passaggi non finita, e non si accorgono né si preoccupano. Gli altri * si prenderanno cura, però, quindi raccomando * non * di usare i termini in modo intercambiabile. È più sicuro trattare gli algoritmi come un sottoinsieme di metodi.In questo modo, puoi comunicare efficacemente con tutti invece che solo con le persone che non fanno alcuna distinzione. –

1

Penso che sia solo perché il dominio di origine dell'algoritmo. Se l'inventore è in informatica, potrebbe preferire un algoritmo chiamato. Nel dominio della matematica e delle altre scienze, possono preferire il metodo chiamato.

1

Nel contesto in cui si indica (metodo di Newton, ecc.) Non esiste alcuna differenza essenziale tra un algoritmo e un metodo. Entrambi sono istruzioni passo-passo per risolvere un problema. Nell'articolo di Wikipedia sul metodo di Newton, afferma "L'algoritmo è il primo nella classe dei metodi di Householder, seguito dal metodo di Halley". Il confine è sfocato al meglio.

In informatica, un algoritmo è ancora una procedura dettagliata per la risoluzione di un problema, una serie di passaggi indipendenti dall'implementazione. Un metodo si riferisce comunemente a un blocco di codice associato a una classe o a un oggetto che svolge alcune attività: è in grado di implementare potenzialmente molti algoritmi.

3

A mio parere, un metodo è un concetto più generale dell'algoritmo e può essere più o meno qualsiasi cosa, ad es. scrivere i dati su un file. Quasi tutto ciò che dovrebbe accadere a causa di un evento o di qualche espressione logica. Inoltre, il significato delle parole "metodo" e "algoritmo" può variare a seconda del contesto in cui vengono utilizzati. Potrebbero essere usati per descrivere la stessa cosa.

+2

+1: gli algoritmi devono essere "finiti", "definiti" ed "efficaci". Il metodo di Newton soddisfa tutti questi aspetti; quindi i termini sono intercambiabili. Calcolare la mia imposta sul reddito degli Stati Uniti, tuttavia, non sembra essere definito - alcuni termini non sembrano essere ben definiti - quindi non riesce ad essere un algoritmo corretto. –

+0

Non sono d'accordo sul fatto che un algoritmo debba essere efficace. Potrei costruire un mio algoritmo che ha prestazioni davvero pessime. A meno che non stiate dicendo che in questo caso si trasforma in un metodo :) – ralphtheninja

+1

Efficace non significa efficiente. Significa che i passaggi fanno progressi verso lo stato o l'obiettivo finale. Significa che l'algoritmo non è dotato di passaggi senza senso che non raggiungono effettivamente l'obiettivo. –

3

Nella programmazione generale, gli algoritmi sono i passaggi in base ai quali viene eseguita un'attività. Secondo Wikipedia,

un algoritmo è una sequenza finita di istruzioni, un, passo-passo procedura esplicita per risolvere un problema, spesso utilizzato per il calcolo ed elaborazione dati. È formalmente un tipo di metodo efficace in cui un elenco di istruzioni ben definite per il completamento di un compito, quando viene fornito uno stato iniziale, procede attraverso una serie ben definita di stati successivi, terminando infine in uno stato finale. Il passaggio da uno stato all'altro non è necessariamente deterministico; alcuni algoritmi, noti come algoritmi probabilistici, incorporano casualità. <

In informatica, un metodo o una funzione fa parte della filosofia orientata agli oggetti per la programmazione in cui i programmi sono fatti di classi che contiene i metodi/funzioni per svolgere compiti specifici. Ancora una volta, citando Wikipedia

Nella programmazione orientata agli oggetti, un metodo è una subroutine che è associato esclusivamente o con una classe (metodi denominata classe o metodi statici) o con un oggetto (chiamati metodi di istanza). Come una procedura nei linguaggi di programmazione procedurale, un metodo di solito consiste in una sequenza di istruzioni per eseguire un'azione, un insieme di parametri di input per personalizzare tali azioni e possibilmente un valore di output (chiamato valore di ritorno) di qualche tipo. I metodi possono fornire un meccanismo per accedere (sia per la lettura che per scrivere) ai dati incapsulati memorizzati in un oggetto o in una classe.<

In breve, l'algoritmo sono le fasi che facciamo qualcosa quali tornitura una lampadina on:

1) a piedi per commutare 2) vibrazione Interruttore 3) il flusso di elettroni 4) Luce generata

I metodi sono i casi in cui vengono effettivamente codificate le azioni all'interno di una classe.

+2

Sto parlando di un metodo diverso. Si prega di leggere la domanda. – unj2

+0

In CS, l'algoritmo è i passaggi e il metodo è il mezzo con cui facciamo un'azione. Tutte le formule matematiche sono algoritmi in quanto ci danno istruzioni su come trovare o fare qualcosa, anche se sono chiamati metodi matematici. Dovremmo codificare i metodi in un programma per implementarli effettivamente implementarli. – FloppyDisk

22

Algoritmi terminare in un numero finito di passi.

Una procedura che ha tutte le caratteristiche di un algoritmo tranne che è possibile che manchi di finitezza può essere chiamata un metodo di calcolo. Originariamente Euclid presentava non solo un algoritmo per il massimo comun divisore di numeri, ma anche una costruzione geometrica molto simile per la "più grande misura comune" delle lunghezze di due segmenti di linea; questo è un metodo computazionale che non termina se le lunghezze date sono incommensurabili. - D.Knuth, TAOCP vol 1, Concetti di base: Algoritmi

Il metodo Newton Raphson non è garantito convergere, non rileva errore di convergenza. Se si avvolge il metodo con il rilevamento e la terminazione della convergenza con un epsilon finito o dopo un numero finito di passaggi, si ottiene un algoritmo.

1

algoritmo è proprio come una formula per risolvere un particolare problema passo dopo passo, senza ambiguità a qualsiasi passaggio, e deve avere qualche punto finale. la metodologia è la forma più generale di qualsiasi soluzione. ha fornito un modo per risolvere qualsiasi problema ma in algoritmo il modo è più precisamente formulato verso la soluzione.

0

Una procedura può continuare all'infinito. Dove, come Algoritmo, finirà per terminare e ogni fase sarà definita con precisione.

1

Il metodo è analogo a una strategia, l'algoritmo è analogo alla tattica. Un esempio: in guerra, si sviluppa una strategia (metodo) per conquistare un paese: prendere prima i porti, avanzare verso ovest sulla terra, quindi circondare il capitale, ecc. Questa strategia è divisa in diverse fasi tattiche (algoritmi): prima, quella che dice ai soldati passo dopo passo esattamente come stanno andando a prendere le porte; poi, uno che dice ai soldati come devono avanzare verso ovest; quindi, uno con i passaggi esatti per i soldati che circondano la città, ecc.

Problemi correlati