Che cosa sono i grafici in parole povere

14

Che cosa sono i grafici, in informatica e per cosa sono usati? Preferibilmente nei termini dei laici.

Ho letto la definizione su Wikipedia :

In computer science, a graph is an abstract data type that is meant to implement the graph and hypergraph concepts from mathematics.

A graph data structure consists of a finite (and possibly mutable) set of ordered pairs, called edges or arcs, of certain entities called nodes or vertices. As in mathematics, an edge (x,y) is said to point or go from x to y. The nodes may be part of the graph structure, or may be external entities represented by integer indices or references.

ma sto cercando una definizione meno formale e più facile da capire.

    
posta ConditionRacer 09.10.2012 - 02:25
fonte

4 risposte

24

Un esempio perfetto per un laico potrebbe essere Facebook . La rete di te, dei tuoi amici e dei loro amici, ecc., Viene indicata collettivamente come il grafico sociale .

In questo "grafico" le persone sono considerate nodi del grafico e i bordi sono collegamenti di amicizia .

In Facebook amico è una relazione bidirezionale (A is B's Friend = > B è un amico di A) quindi il grafico è un Grafico indiretto . Una rete come Google+ o Twitter sarebbe considerata un grafico diretto poiché la direzione della relazione ha un significato qui.

Tutti questi grafici sono indicati come grafici ciclici , in quanto le relazioni tra i nodi possono formare cicli. Un Albero genealogico , d'altra parte, è un tipo speciale di grafico che, tra le altre cose, è Aciclico poiché non ci possono essere cicli nella relazione tra albero genealogico. (È tecnicamente chiamato Diretto Grafico Aciclico (DAG) dal momento che è sia diretto che aciclico)

Questo dovrebbe coprire tutto il gergo di base che coinvolge i grafici, quindi ora dovresti essere in grado di seguire il resto del materiale sul campo.

    
risposta data 09.10.2012 - 03:18
fonte
15

I grafici sono uno dei più importanti concetti matematici usati nell'informatica.

Hai visto i grafici molte volte. Immagina di prendere un aereo da una città all'altra. Troverai inevitabilmente una bella rivista patinata della compagnia aerea nella tasca del sedile di fronte a te. Vicino alla parte posteriore di quella rivista è quasi sempre possibile trovare una mappa che raffigura le città servite da quella compagnia aerea rappresentata come cerchi, con i voli che collegano quelle città rappresentate come linee curve. Questo è un grafico! Le città, rappresentate come cerchi, sono i nodi di questo grafico e i voli, rappresentati come linee curve, sono i bordi. I grafici sono solo cose con nodi e spigoli che connettono i nodi.

Puoi abbellire quei semplici grafici in vari modi. Non vuoi vedere solo un gruppo di cerchi e linee quando stai guardando quella mappa. Quelle città hanno nomi. Etichettare quelle città si traduce in un grafico etichettato. (Puoi anche etichettare i bordi, ad es. Volo 1234.) L'informatica spesso associa i dati ai nodi, a volte con i bordi, ma questa è solo un'estensione dell'etichetta. È ancora un grafico etichettato. Un altro risultato dell'abbellimento è se puoi volare direttamente dalla città A alla città B, ma non dalla città B alla città A. Un modo ovvio per ritrarlo è di mettere una freccia sulla linea che connette le città per rappresentare questa relazione a senso unico. Ora hai un grafico diretto.

Gli elenchi collegati, gli alberi, i diagrammi di transizione dello stato e molte altre strutture di dati informatici sono tutti esempi di grafici. È un concetto molto potente.

    
risposta data 09.10.2012 - 03:00
fonte
13

Una domanda migliore sarebbe "A cosa servono i grafici?". L'informatica è, per molti aspetti, lo studio dei grafici.

Un grafico, nei termini di un laico, è una raccolta di oggetti astratti arbitrari chiamati "nodi" o "vertici" che rappresentano punti di connessione. Sono quindi collegati tramite "percorsi" o "spigoli". Il tipo di dati astratto "Graph" è un'implementazione del "Graph" matematico. Quindi in pratica hai nodi e spigoli come i tuoi campi e le varie operazioni che puoi eseguire su di essi. Ad esempio, puoi aggiungere un nuovo nodo alla raccolta del grafico (questo potrebbe essere un elenco o un array o qualche altra struttura a seconda della lingua). È quindi possibile collegare tale nodo ai nodi esistenti. Le operazioni includeranno anche il passaggio del grafico, controllando se due nodi condividono un fronte (sono connessi), recuperando i valori da nodi o bordi e eliminando nodi o spigoli dal grafico.

Per quanto riguarda l'utilizzo, i Grafici sono usati dappertutto. Il networking ne fa un uso particolarmente pesante, ma si trova in Intelligenza Artificiale, Data Mining, Sviluppo del Gioco, Geoinformatica e una miriade di altre discipline. Nella Computer Science formale, vedono ancora più uso, vale a dire come un modo di rappresentare lo stato.

In pratica qualsiasi cosa che puoi rappresentare come un insieme di connessioni può essere rappresentata come un grafico e implementata tramite tale ADT in qualche modo.

Ecco un esempio grafico che ho realizzato:

    
risposta data 09.10.2012 - 02:38
fonte
3

Un grafico è solo una raccolta di oggetti collegati tra loro da linee chiamate vertici.

Il termine "grafico" è un'astrazione e generalizzazione di molte strutture di dati utilizzate nello sviluppo del software. Gli elenchi collegati, gli alberi binari e AST sono tutti grafici.

In sostanza, qualsiasi raccolta di oggetti che ha puntatori che associano gli oggetti tra loro è un grafico. Una volta che hai un grafico, puoi applicare i principi della teoria dei grafi ad esso, a risolvere alcuni problemi .

    
risposta data 09.10.2012 - 02:38
fonte

Leggi altre domande sui tag