Reading the wikipedia article reminds me of why graph coloring was entirely
*unsuccessful* in solving cellular networks channel assignment problem. Even
though it is an allocation of resources problem, which sounds like it should
suite graph coloring, there are two key differences:

   - The number of resources are fixed (ie. k is constant). Most of the
   theory in graph coloring is about finding the minimum k for a fixed graph,
   which is definitely the wrong problem to solve for fixed resource
   allocation.
   - Edge weights are not considered. I did not fing a single reference to
   edge weighting for vertex coloring problems. Without that consideration, the
   application of graph coloring seems entirely impractical. Even for map
   coloring, two countries could share a large or small border, and that should
   affect the color choices made, but is not considered (as far as I can tell).
   Neither is the difference of the colors. If you have a large color set
   (large k), some colors will be very similar (visually), and this must be
   taken into account.

So much theory, and so impractical :-(

>From what I know, existing cellular channel allocation algorithms use
different approaches. Despite this, I have been thinking of a new algorithm
for this that will use graph theory in two ways, one for identifying loosely
connected cliques (similar to a database partitioning problem), and one for
solving subsets of the resource allocation problem.

It would be nice to have a few graph coloring algorithms in Neo4j to play
with. Are you planning on coding the Sudoku one? :-)

On Wed, Mar 2, 2011 at 10:51 PM, Rick Otten <[email protected]> wrote:

> The proof for the number of colors needed to fill in regions on a planar
> map was solved using graph coloring, so yes, that is what I'm referring
> to.
>
> I was more just thinking about the classic coloring problem of scheduling
> a finite number of resources with minimal conflicts.  A year and a half or
> so ago I got the idea of using Neo4j as project management database.  I
> still think it has a lot of potential even if the market doesn't need any
> more project management tools.  Some project management-type problems
> involve scheduling resources and managing dependencies between activities.
>  Some of those problems might be easily solved using coloring algorithms.
>
> I recall an example from my Graph Theory class (some <cough> 20 years ago
> or so), a problem about aligning Ally flight crews, languages, and
> aircrafts they were qualified to work on during WWII operations over
> Europe.  I'm sure these sorts of matching issues come up in practical
> applications often.
>
> I really didn't have anything specific in mind though.
>
>
> FWIW, I saw on Wikipedia just a couple of minutes ago that there is an
> algorithm for solving Sudoku puzzles that uses coloring.  That could make
> a nifty little Neo4j small-graph demo program actually...
>
> https://secure.wikimedia.org/wikipedia/en/wiki/Graph_coloring
>
>
> Thanks for the reply and offer for more help if I need it some day!
>
>
> > Hi Rick,
> >
> > As you say, color is just an integer, so all you need is to index the
> > integer (use lucene, or connect all nodes to a node of the right color).
> >
> > However, since you use the term 'color' I wonder if you are referring to
> > the
> > problem of finding minimal color similarities between related nodes? I
> > mean
> > similar to the problem of coloring adjacent countries on a map with
> > sufficiently different colors to make them visually distinctive. This is
> a
> > well know graph problem, but in some scenarios a 'plain graph' solution
> is
> > not ideal. For example, I deal with mobile network frequency planning,
> > where
> > towers (modeled as nodes) need sufficiently different frequencies as to
> > not
> > interfere with nearby towers (with 'nearby' modeled as weighted
> > relationships). There is no perfect solution, but by modeling a cost
> > weight
> > on the relationships, you can apply an iterative optimization algorithm
> to
> > the graph to find near optimal solutions.
> >
> > If your problem is more like this one, we can discuss it further,
> probably
> > off-list since this is now rather domain specific :-)
> >
> > Regards, Craig
> >
> > On Wed, Mar 2, 2011 at 10:06 PM, Rick Otten <[email protected]> wrote:
> >
> >> There are a number of possible applications for coloring a graph.  I was
> >> poking around in the neo4j documentation, but did not turn up any
> >> examples
> >> or canned routines for this.
> >>
> >> I was imagining finding something like "ColorGraphNodes([color property
> >> name])" which puts a property on each node identifying its color (some
> >> sort of integer) and thus would allow you to then get all nodes of a
> >> similar color.
> >>
> >> Do computer scientists have a different name for a coloring than
> >> mathematicians (ie, am I just looking for the wrong keyword), or is that
> >> something that hasn't really been packaged yet, or maybe it is something
> >> with no good scalable algorithms, and thus is not relevant in the large
> >> graph world, or maybe folks who need it, implement it themselves on a
> >> case-by-case basis?
> >>
> >> I do not have a specific use case in mind at the moment, just a lot of
> >> half baked ideas.
> >>
> >>
> >> --
> >> Rick Otten
> >> [email protected]
> >> O=='=+
> >>
> >>
> >> _______________________________________________
> >> Neo4j mailing list
> >> [email protected]
> >> https://lists.neo4j.org/mailman/listinfo/user
> >>
> > _______________________________________________
> > Neo4j mailing list
> > [email protected]
> > https://lists.neo4j.org/mailman/listinfo/user
> >
>
>
> --
> Rick Otten
> [email protected]
> O=='=+
>
>
> _______________________________________________
> Neo4j mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to