Graph datastructure using skill

Discussion in 'Cadence' started by tattvamasi, May 7, 2006.

  1. tattvamasi

    tattvamasi Guest

    All,
    I am looking for the best data structure to implement graph algorithms
    in skill.
    What is your recommendation?
    Does someone have an implementation that they would be kind enough to
    share?
    I am expecting to do graph operations on the resulting datastructure
    including graph traversal, finding Eulerier trails etc.

    Should this probably be done in C++ and called in through skill?
    Thoughts?
    On a general note how do we tackle graph theory problems using skill?

    Thankyou,
    Partha
     
    tattvamasi, May 7, 2006
    #1
  2. tattvamasi

    tattvamasi Guest

    I am thinking that if I follow traditional approaches of representing
    Graphs - Adj. List & Adj. Matrix in skill(lists and arrays
    respectively), I will be forced to worry about the implementation
    details on the graph data structure and thus lose the intent of solving
    the problem at hand.

    Thus, hoping to find out if any other implementation approaches are
    available..

    DAG in skill is an application for implementing Browsers, and might not
    relate to this?

    Partha
     
    tattvamasi, May 7, 2006
    #2
  3. If you have less than millions of nodes, use the table (makeTable).
    It is fast and easy to use...
    For huge graphs you should probably prefere a C++ implementation:)
    Regards,
    Sylvio

    e.g.
    graph = makeTable("" nil)
    graph[0] = list(1 3) ;node 0 has edges to node 1 and node 3
    graph[1] = list(2) ;node 1 has one edge to node 2
    graph[2] = list(0)

    ....
    node = 0
    foreach( neigbor graph[node]
    do something...
    )
     
    Sylvio Triebel, May 8, 2006
    #3
  4. tattvamasi

    tattvamasi Guest

    Thanks much Sylvio, I am sure the problem size is less than a million
    nodes:)

    Andrew your thoughts?

    Partha
     
    tattvamasi, May 8, 2006
    #4
  5. I don't really have any (recent) experience of using graph algorithms, so I
    can't make any recommendations as to how you'd do it. I'm sure it's quite
    feasible in SKILL using either tables or structures (or quite probably classes
    using SKILL++).

    Andrew.
    Andrew Beckett
    Principal European Technology Leader
    Cadence Design Systems, UK.
     
    Andrew Beckett, May 9, 2006
    #5
  6. tattvamasi

    DReynolds Guest

    Patha, can you elaborate on what kind of graph problems you are working
    on? Are you working on factor graphs? How were you planning on
    displaying your outputs in the cadence environment? Why are you
    choosing skill as your implementation language... obviously it is list
    oriented so it can do what you need (within the size limits)



    David
     
    DReynolds, May 10, 2006
    #6
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.