An Activity and Arrow Arranging Algorithm for Clarity in Schedule ...

An Activity and Arrow Arranging Algorithm for Clarity in Schedule ... An Activity and Arrow Arranging Algorithm for Clarity in Schedule ...

faculty.cua.edu
from faculty.cua.edu More from this publisher
25.12.2013 Views

An Activity and Arrow Arranging Algorithm for Clarity in Schedule Network Diagrams by Gunnar Lucko Catholic University of America ICCCBE-XI Conference June 14, 2006

<strong>An</strong> <strong>Activity</strong> <strong>and</strong> <strong>Arrow</strong><br />

<strong>Arrang<strong>in</strong>g</strong> <strong>Algorithm</strong> <strong>for</strong><br />

<strong>Clarity</strong> <strong>in</strong> <strong>Schedule</strong> Network<br />

Diagrams<br />

by<br />

Gunnar Lucko<br />

Catholic University of America<br />

ICCCBE-XI Conference<br />

June 14, 2006


Overview<br />

Tradition versus Software-Generated <strong>Schedule</strong>s<br />

Fonts <strong>and</strong> Colors, Space <strong>and</strong> Symbols<br />

<strong>Arrang<strong>in</strong>g</strong> <strong>Algorithm</strong><br />

Application Example<br />

Conclusion <strong>and</strong><br />

Recommendations


Introduction<br />

“Traditional” Schedul<strong>in</strong>g<br />

developed with paper <strong>and</strong> pencil<br />

activities <strong>and</strong> arrows (time <strong>and</strong> logic <strong>in</strong><strong>for</strong>mation<br />

of schedule) arranged <strong>in</strong>tuitively<br />

schedulers had manual draft<strong>in</strong>g skills<br />

“Modern” Schedul<strong>in</strong>g<br />

ubiquitous software packages require only<br />

enter<strong>in</strong>g tabular time <strong>and</strong> logic <strong>in</strong><strong>for</strong>mation or by<br />

click<strong>in</strong>g <strong>in</strong>to a bar chart<br />

poor default sett<strong>in</strong>gs <strong>for</strong> diagrams (Lucko 2005)


Software-Generated <strong>Schedule</strong>s<br />

Lucko (2005)<br />

def<strong>in</strong>ition <strong>for</strong> schedule: conta<strong>in</strong>s time <strong>and</strong> logic<br />

Bar (Gantt) charts s<strong>in</strong>ce 1917<br />

no layout guidance; ; by default do not conta<strong>in</strong><br />

logic; imply “sequence” by stepp<strong>in</strong>g down;<br />

fenced bar chart (Mel<strong>in</strong> <strong>and</strong> Whiteaker 1981)<br />

<strong>Activity</strong>-on<br />

on-node node diagram<br />

no layout guidance; ; focus on logic; default<br />

grid cells squeezes activities <strong>and</strong> arrows;<br />

poor 10:1 space distribution (Lucko 2005)


Software-Generated Sample


Fenced Bar Chart<br />

Mob.<br />

A<br />

B<br />

C<br />

D<br />

E<br />

F<br />

G<br />

H<br />

I<br />

J<br />

K<br />

L<br />

M<br />

T/O<br />

J<br />

J<br />

I<br />

K<br />

K<br />

M<br />

L<br />

L<br />

L<br />

10 20 30 40 50 60 70 Days


Software<br />

Software-Generated AON<br />

Generated AON<br />

1010<br />

02/15/05<br />

A<br />

02/04/05<br />

03/14/05<br />

03/03/05<br />

1000<br />

01/26/05<br />

Mob<br />

01/26/05<br />

02/04/05<br />

02/04/05<br />

5<br />

1020<br />

02/04/05<br />

B<br />

02/04/05<br />

02/18/05<br />

02/18/05<br />

1050<br />

02/07/05<br />

E<br />

02/04/05<br />

02/28/05<br />

02/25/05<br />

1030<br />

02/18/05<br />

C<br />

02/18/05<br />

02/28/05<br />

02/28/05<br />

1070<br />

03/02/05<br />

G<br />

02/25/05<br />

03/24/05<br />

03/21/05<br />

1100<br />

03/14/05<br />

J<br />

03/03/05<br />

04/08/05<br />

03/30/05<br />

1060<br />

02/28/05<br />

F<br />

02/28/05<br />

03/24/05<br />

03/24/05<br />

1040<br />

03/15/05<br />

D<br />

03/03/05<br />

04/08/05<br />

03/29/05<br />

1080<br />

04/12/05<br />

H<br />

03/24/05<br />

04/20/05<br />

04/01/05<br />

1090<br />

03/24/05<br />

I<br />

03/24/05<br />

04/08/05<br />

04/08/05<br />

1110<br />

04/13/05<br />

K<br />

03/24/05<br />

05/04/05<br />

04/14/05<br />

1130<br />

04/20/05<br />

M<br />

04/01/05<br />

05/04/05<br />

04/15/05<br />

1120<br />

04/08/05<br />

L<br />

04/08/05<br />

05/04/05<br />

05/04/05<br />

1140<br />

05/04/05<br />

T/O<br />

05/04/05<br />

05/09/05<br />

05/09/05


Font <strong>and</strong> Color<br />

Serif-type fonts more legible<br />

than sans-serif serif type fonts<br />

Mixed Capitalization more legible<br />

THAN ALL CAPITAL LETTERS<br />

Font size matters<br />

font size matters<br />

Color can highlight critical path, add to<br />

richness of <strong>in</strong><strong>for</strong>mation: : hue (color), value<br />

(darkness), saturation (<strong>in</strong>tensity)<br />

Contrast can help, but may distract


Space <strong>and</strong> Symbols<br />

Allocations of activities <strong>and</strong> arrows relative to<br />

each other<br />

division of space between graphical elements,<br />

currently 10:1 imbalance as per Tufte’s s data<br />

density (2001)<br />

reduction of “chart fluff” <strong>in</strong> exchange <strong>for</strong> clarity<br />

through rich <strong>in</strong><strong>for</strong>mation<br />

activities should be arranged on regular grid<br />

arrows should be funneled along a clearly<br />

visible path along their entire length


<strong>Schedule</strong> Graphics Details


<strong>Arrang<strong>in</strong>g</strong> <strong>Schedule</strong> Elements<br />

Activities<br />

possible arrangements from left to right (semi-<br />

time-scaled):<br />

horizontal or diagonal “sp<strong>in</strong>e”<br />

full (both sides of sp<strong>in</strong>e) or half (one side only)<br />

<strong>Arrow</strong>s<br />

<strong>for</strong> display<strong>in</strong>g start-start, start, start-f<strong>in</strong>ish, f<strong>in</strong>ish-<br />

f<strong>in</strong>ish, f<strong>in</strong>ish-start, start, <strong>in</strong>termediate (% complete),<br />

software used several ways


Breakdown of Approach<br />

Consider good practices <strong>for</strong> graphics design<br />

Assign activities to grid columns<br />

is easy - solved analogous to resource level<strong>in</strong>g<br />

(Callahan et al. 1992)<br />

Assign activities to grid rows<br />

is difficult - triple objective function <strong>for</strong> arrows,<br />

research underway at CUA<br />

shortest + fewest bends + fewest cross<strong>in</strong>gs<br />

Assign funnel<strong>in</strong>g of arrows through grid<br />

f<strong>in</strong>e-tune path to reduce cross<strong>in</strong>gs


<strong>Arrang<strong>in</strong>g</strong> <strong>Algorithm</strong><br />

Columns<br />

C j = C i + max P 1 to i count predecessor cha<strong>in</strong><br />

Cross<strong>in</strong>gs<br />

X = ½ · k · (k - 1) Purchase (2002)<br />

k arrows <strong>in</strong>tersect<strong>in</strong>g<br />

1 ? 3


<strong>Arrang<strong>in</strong>g</strong> <strong>Algorithm</strong><br />

Step 0: Layout<br />

Step 1: CPM calculations<br />

Step 2: Column allocation<br />

Step 3: Sort activities by ES; If activities have same ES then sort s<br />

by number of<br />

successors; Else if activities have same number of successors then sort by duration;<br />

Else if activities have same duration then sort by name<br />

Step 4: Draw activities <strong>in</strong>to first columns from top to bottom <strong>and</strong> d connect with<br />

predecessors<br />

Step 5: Repeat <strong>for</strong> next column<br />

Step 6: Move column vertically up or down activities on critical path align horizontally<br />

(“sp<strong>in</strong>e”)) [Cross<strong>in</strong>gs[<br />

unchanged]<br />

Step 7: Count total number of cross<strong>in</strong>gs<br />

Step 8: For non-critical activities generate [non-overlapp<strong>in</strong>g overlapp<strong>in</strong>g ] partial successor paths,<br />

ignor<strong>in</strong>g critical activities. For partial successor path, check if mov<strong>in</strong>g it to other side<br />

reduces cross<strong>in</strong>gs; If cross<strong>in</strong>gs are reduced then keep move; Else do not keep move<br />

Step 9: Counts direct predecessors <strong>and</strong> direct successors on same side of sp<strong>in</strong>e (DPSS<br />

<strong>and</strong> DSSS) <strong>and</strong> direct predecessors <strong>and</strong> direct successors on different side of sp<strong>in</strong>e<br />

(DPDS <strong>and</strong> DSDS) to achieve a balanced distribution, ignor<strong>in</strong>g critical activities<br />

If balance B = (DPDS+DSDS) - (DPSS+DSSS) ≥ 0 then check if mov<strong>in</strong>g activity to other<br />

side reduces cross<strong>in</strong>gs; If cross<strong>in</strong>gs are reduced then keep move; Else do not keep move;<br />

Else go to next activity


Example: <strong>Activity</strong> List<br />

<strong>Activity</strong><br />

Dur.<br />

Successors<br />

ES<br />

LS<br />

EF<br />

LF<br />

TF<br />

FF<br />

Mob. 7 A, B, E 0 0 7 7 0 0<br />

A 19 D, I, J 7 13 26 32 6 0<br />

B 10 C 7 7 17 17 0 0<br />

C 6 D, F, J 17 17 23 23 0 0<br />

D 18 L 26 33 44 51 7 7<br />

E 15 F, G 7 8 22 23 1 0<br />

F 17 H, I, K 23 23 40 40 0 0<br />

G 16 H, I, K 22 24 38 40 2 2<br />

H 6 M 40 53 46 59 13 0<br />

I 11 L 40 40 51 51 0 0<br />

J 19 L 26 32 45 51 6 6<br />

K 15 T/O 40 54 55 69 14 14<br />

L 18 T/O 51 51 69 69 0 0<br />

M 10 T/O 46 59 56 69 13 13<br />

T/O 3 N/A 69 69 72 72 0 0<br />

Boldface<br />

<strong>in</strong>dicates<br />

critical path


Example: Initial Configuration<br />

24 cross<strong>in</strong>gs,<br />

entanglement<br />

40 13 46<br />

46 13 56<br />

H<br />

6<br />

M<br />

10<br />

53 0 59<br />

59 13 69<br />

0 0 7<br />

7 0 17<br />

17<br />

0 23<br />

23 0 40<br />

40 0 51<br />

51 0 69<br />

69 0 72<br />

MOB<br />

7<br />

B<br />

10<br />

C<br />

6<br />

F<br />

17<br />

I<br />

11<br />

L<br />

18<br />

T/O<br />

3<br />

0 0 7<br />

7 0 17<br />

17 0 23<br />

23 0 40<br />

40 0 51<br />

51 0 69<br />

69 0 72<br />

7 1 22<br />

E<br />

15<br />

22 2 38<br />

G<br />

16<br />

26 7 44<br />

D<br />

18<br />

40 14 55<br />

K<br />

15<br />

8 0 23<br />

24 2 40<br />

33 7 51<br />

54 14 69<br />

ES<br />

TF<br />

EF<br />

7 6 26<br />

26 6 45<br />

Name<br />

Dur.<br />

A<br />

19<br />

J<br />

19<br />

LS<br />

FF<br />

LF<br />

13 0 32<br />

32 6 51


Example: Improved Configuration<br />

Reduced to 9<br />

cross<strong>in</strong>gs,<br />

6 possible with<br />

better path E-F<br />

<strong>and</strong> swap of K-H<br />

7 6 26<br />

A<br />

19<br />

26 7 44<br />

D<br />

18<br />

33 7 51<br />

26 6 45<br />

J<br />

19<br />

13 0 32<br />

32 6 51<br />

0 0 7<br />

MOB<br />

7<br />

7 0 17<br />

B<br />

10<br />

17<br />

0 23<br />

C<br />

6<br />

23 0 40<br />

F<br />

17<br />

40 0 51<br />

I<br />

11<br />

51 0 69<br />

L<br />

18<br />

69 0 72<br />

T/O<br />

3<br />

0 0 7<br />

7 0 17<br />

17 0 23<br />

23 0 40<br />

40 0 51<br />

51 0 69<br />

69 0 72<br />

7<br />

1<br />

22<br />

22 2 38<br />

40 13 46<br />

46 13 56<br />

E<br />

15<br />

G<br />

16<br />

H<br />

6<br />

M<br />

10<br />

8 0 23<br />

24 2 40<br />

53 0 59<br />

59 13 69<br />

ES<br />

TF<br />

EF<br />

40 14 55<br />

Name<br />

Dur.<br />

K<br />

15<br />

LS<br />

FF<br />

LF<br />

54 14 69


Conclusions<br />

Goal<br />

to automatically generate clear schedules<br />

Recent research<br />

<strong>in</strong>vestigates build<strong>in</strong>g up rather than permutation<br />

replicates more human <strong>in</strong>tuition <strong>in</strong> arrang<strong>in</strong>g<br />

develops a comprehensive list of parameters<br />

<strong>for</strong> 3D network structure, no cross<strong>in</strong>gs<br />

exam<strong>in</strong>es mathematics literature to create proof<br />

proposes to arrange activities close to “sp<strong>in</strong>e”<br />

by criticality (<strong>in</strong>verse to float)


Thank you!<br />

Do you have<br />

any questions?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!