http://qs321.pair.com?node_id=558276


in reply to How to print/draw a network graph

Here's a partial solution. It doesn't "hook up" cross connections between streams yet, but notes the unresolved connections following the resolved connections.

use warnings; use strict; my @lines = <DATA>; my @splitLines = map {[/('....'..[-\d]*.) -> ('?....'?..[-\d]*.)/]} @l +ines; my %ends; for (@splitLines) { next if $_->[0] !~/T(?:Dif|Dig)/; $ends{$_->[1]} = $_->[0]; } for (keys %ends) { my $match = "$ends{$_}$_"; @splitLines = grep {"$_->[0]$_->[1]" ne $match} @splitLines; } while (@splitLines) { my $match; for (@splitLines) { next if ! exists $ends{$_->[0]}; $ends{$_->[1]} = "$ends{$_->[0]} -> $_->[0]"; $match = $_; delete $ends{$_->[0]}; @splitLines = grep {$_ ne $match} @splitLines; last; } last if ! $match; } print "$ends{$_} -> $_\n" for sort keys %ends; print "*** $_->[0] -> $_->[1]\n" for @splitLines; __DATA__ 'TAvi' (-37) -> 'TDMk' (-32) 'TAvi' (-38) -> 'TMrk' (-34) 'TDMk' (-32) -> xfer (-12) 'TDif' (-7) -> xfer (-11) 'TDif' (-8) -> 'TMCF' (-35) 'TDig' (-27) -> 'TSpN' (-33) 'TLCI' (-36) -> 'TAvi' (-37) 'TMCF' (-35) -> 'TLCI' (-36) 'TMrk' (-34) -> xfer (-28) 'TSpN' (-33) -> 'TAvi' (-38) 'TSpN' (-33) -> 'TDMk' (-32) 'TSpN' (-33) -> 'TMCF' (-35)

Prints:

'TDif' (-7) -> xfer (-11) 'TDif' (-8) -> 'TMCF' (-35) -> 'TLCI' (-36) -> 'TAvi' (-37) -> 'TDMk' +(-32) -> xfer (-12) 'TDig' (-27) -> 'TSpN' (-33) -> 'TAvi' (-38) -> 'TMrk' (-34) -> xfer ( +-28) *** 'TSpN' (-33) -> 'TDMk' (-32) *** 'TSpN' (-33) -> 'TMCF' (-35)

DWIM is Perl's answer to Gödel

Replies are listed 'Best First'.
Re^2: How to print/draw a network graph
by Anonymous Monk on Oct 14, 2009 at 15:53 UTC
    Hi friend, I am doing my Master's project its all about scheduling the processors using the task and network graph.The project is the extension of the previous project where they have a GUI interface to draw the task and network graph and see the scheduling processors assigned as output. But the problem is the Scheduling processors are overlapping with one another. please help me out. I am thinking to work out manually drawing the network and task graph calculating it. But i do not know how to calculate it. It would be helpful to me if u can help me. Thanks

      I suggest you put together a more coherent question and post it as a new question rather than as a reply. Replies to old threads such as this one get much less notice than new questions.

      A new question would need to provide greater detail concerning the data you have for the task and network graph and how you are using that information currently to schedule processors.


      True laziness is hard work