
Dan Piponi wrote:
Andrew said:
True enough - but that's a rather specific task. I'm still not seeing vast numbers of other uses for this...
Graphs are one of the most ubiquitous structures in the whole of computer science. Whether you're representing dataflows, or decoding error-correcting codes, or decomposing an almost block matrix into independent parts for multiprocessing, or figuring out which registers to spill in a compiler, or programming neural networks, or finding the shortest path between two cities, or trying to find dependencies in a sequence of tasks, or constructing experimental designs, or using an expert system to diagnose disease symptoms, or trying to find optimal arrangements of marriage partners, or a million other tasks, graphs appear everywhere!
I see *trees* around the place a lot, but not general graphs. Maybe it's just the type of problems I attempt to solve?

Andrew said:
I see *trees* around the place a lot, but not general graphs.
A link discussing the application of graph theory for each of the examples I gave. In each case the structure used is not a tree. http://citeseer.ist.psu.edu/wiberg96codes.html http://citeseer.ist.psu.edu/context/22137/0 http://en.wikipedia.org/wiki/Bayesian_network http://www.scl.ameslab.gov/ctpsm07/ http://en.wikipedia.org/wiki/Neural_network http://en.wikipedia.org/wiki/Dijkstra's_algorithm http://links.jstor.org/sici?sici=0025-5572(198612)2%3A70%3A454%3C273%3ASBGPA... http://links.jstor.org/sici?sici=0025-570X(200106)74%3A3%3C234%3AAAOTML%3E2.... http://bears.ece.ucsb.edu/research-info/DP/dfg.html -- Dan

If you don't run into graphs you are either solving very peculiar problems,
or you don't recognize them when you see them. They are everywhere.
On 6/22/07, Andrew Coppin
Dan Piponi wrote:
Andrew said:
True enough - but that's a rather specific task. I'm still not seeing vast numbers of other uses for this...
Graphs are one of the most ubiquitous structures in the whole of computer science. Whether you're representing dataflows, or decoding error-correcting codes, or decomposing an almost block matrix into independent parts for multiprocessing, or figuring out which registers to spill in a compiler, or programming neural networks, or finding the shortest path between two cities, or trying to find dependencies in a sequence of tasks, or constructing experimental designs, or using an expert system to diagnose disease symptoms, or trying to find optimal arrangements of marriage partners, or a million other tasks, graphs appear everywhere!
I see *trees* around the place a lot, but not general graphs.
Maybe it's just the type of problems I attempt to solve?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Lennart Augustsson wrote:
If you don't run into graphs you are either solving very peculiar problems, or you don't recognize them when you see them. They are everywhere.
I see lots of *trees*, but no general graphs. (As in, *data* structures having cycles in them. My *code* is often cyclic...)

Andrew Coppin wrote:
Lennart Augustsson wrote:
If you don't run into graphs you are either solving very peculiar problems, or you don't recognize them when you see them. They are everywhere.
I see lots of *trees*, but no general graphs. (As in, *data* structures having cycles in them. My *code* is often cyclic...)
So what does a compiler do to typecheck it? It represents your code as a graph and calculates strongly connected components. Regards, apfelmus

apfelmus wrote:
Andrew Coppin wrote:
I see lots of *trees*, but no general graphs. (As in, *data* structures having cycles in them. My *code* is often cyclic...)
So what does a compiler do to typecheck it? It represents your code as a graph and calculates strongly connected components.
That's quite true - but *I* am not writing a compiler, am I? ;-)

Andrew Coppin wrote:
apfelmus wrote:
Andrew Coppin wrote:
I see lots of *trees*, but no general graphs. (As in, *data* structures having cycles in them. My *code* is often cyclic...)
So what does a compiler do to typecheck it? It represents your code as a graph and calculates strongly connected components.
That's quite true - but *I* am not writing a compiler, am I? ;-)
Oh well. You may insist that you won't encounter graphs in your problems and I recommend to delete all symbolic links (aka "aliases") from your file system to that end. Regards, apfelmus

If you are going to ban graphs you also need to ban web pages (the links for
a graph, both between pages and interanlly), computer networks, maps,
dictionaries, you name it, it has a graph structure.
On 6/26/07, apfelmus
Andrew Coppin wrote:
apfelmus wrote:
Andrew Coppin wrote:
I see lots of *trees*, but no general graphs. (As in, *data* structures having cycles in them. My *code* is often cyclic...)
So what does a compiler do to typecheck it? It represents your code as a graph and calculates strongly connected components.
That's quite true - but *I* am not writing a compiler, am I? ;-)
Oh well. You may insist that you won't encounter graphs in your problems and I recommend to delete all symbolic links (aka "aliases") from your file system to that end.
Regards, apfelmus
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Tuesday 26 June 2007 23:20:32 Lennart Augustsson wrote:
If you are going to ban graphs you also need to ban web pages (the links for a graph, both between pages and interanlly), computer networks, maps, dictionaries, you name it, it has a graph structure.
Layout and rendering of web pages is typically done using a scene graph. :-) -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. The OCaml Journal http://www.ffconsultancy.com/products/ocaml_journal/?e

On 25 jun 2007, at 20.38, Andrew Coppin wrote:
Lennart Augustsson wrote:
If you don't run into graphs you are either solving very peculiar problems, or you don't recognize them when you see them. They are everywhere.
I see lots of *trees*, but no general graphs. (As in, *data* structures having cycles in them. My *code* is often cyclic...)
Graphs may appear as infinity trees, you know. data Tree = L Int | B Tree Tree deriving Show t1 = B (L 42) (B (L 23) t1) => B (L 42) (B (L 23) (B (L 42) (B (L 23) (B (L 42) (B (L 23) (B (L 42) ...
participants (6)
-
Andrew Coppin
-
apfelmus
-
Dan Piponi
-
Jon Harrop
-
Lennart Augustsson
-
Thomas Schilling