> Thanks a lot for your time and in advance for any responses. :)

I'd go with prototype in Ruby, probably.

You could jump in to c++, and I think you may find useful Boost
libraries for the work you're going (there is a graph librarby in there,
I'm sure), but I honestly think you'll suffer if you're not a c++ Guru,
particularly if you're using template based libraries (others will
probably differ, but my feeling is using c++ well is very hard, and I'm
paid to do it ;-).

After prototyping, a fourth way that I would strongly suggest in this
case, is to considder a functional language if you need speed. That may
sound crazy, but ocaml [1] (specifically) performs comparably (half as
fast?) as hand tuned c on benchmarks [2] (lies, damned lies and
statistics?). It's almost certainly very well suited to the kind of work
you're talking about (symbolic manipulation), and your brain may enjoy
molding to the mind set if it's already got Ruby nestled in there.

If the prototype is going to be a large lump of work, you might even
want to considder starting out with the functional language
(particularly if you can find example code for a similar looking
problem).

:) All the best!

Cheers,
  Benjohn

[1] http://caml.inria.fr/ocaml/index.en.html
[2] http://www.cs.ubc.ca/~murphyk/Software/Ocaml/why_ocaml.html