Group Theory vs Graph Theory I would like to know that,


*

*For a given graph can we associate a finite group functorially?


*If there are more than one such groups, what are the differences and similarities between them?

Here by a graph I mean a finite, simple, connected one. It may de directed or undirected.
 A: There are many ways to associate a group to a graph, some interesting, some artificial. I'm not sure what the motivation is behind the question. 
Given a graph $G$, the automorphisms of $G$ form a group called $\mbox{Aut}(G)$. 
Given a connected graph $G$, think of it as a topological space, pick a base point, and consider the fundamental group $\pi_1(G,x_0)$. This is a free group generated by the cycles in $G$ which start and end at $x_0$. 
Given a graph $G$, the set of maps from the vertices of $G$ to any group $H$ is a group. Same for maps from the edges. 
And so on. 
A: Other ways to associate a group (but typically infinite ones) are the following:
Graph of Groups: See e.g. Serre, "Trees" or the corresponding wiki-article. These are groups arising from actions on graphs (trees). See also its generalization, called Complexes of groups (see e.g. Bridson, Haefliger, "Metric spaces of non-positive curvature"
RAAGs: Right angled Artin Groups. Groups given by presentations depending on the structure of the given graph.
or more generally
Graph groups: Generalizing RAAGs and Coxeter groups. 
A: I did my thesis on something similar:
Basically, I mapped an edge-colored graph to a subgroup of a permutation group. Suppose $|G|=n$ and label its vertices from $1$ to $n$. Then, each color used for the coloration of the edges of the graph is mapped to a transposition in $S_n$:
For a color $\alpha$ used on the edges $v_{k_1}v_{k_2}, v_{k_3}v_{k_4}, \cdots, v_{k_{l-1}}v_{k_l} $, the corresponding transposition in $S_n$ is $(k_1k_2)(k_3k_4)\cdots(k_{l-1}k_l)$. Then, the corresponding subgroup of $S_n$ is the group generated by all the transpositions given by the different colors.
More intuitively, it can be seen as putting a number next to each vertex of the graph. Then, calling a color (let's say blue) will switch the labels on all pairs of vertices that are adjacent by a blue edge. Since the edge-coloration requires that no two adjacent vertices have the same color, this manipulation is well-defined. Then, it's possible to call other colors and so on. The resulting group is the set of all the different permutations of numbers that can be found in the graph using this manipulation.
For example, $P_n$ together with its minimal coloration is mapped to $D_{2n}$
