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 ...
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
- Page 2 and 3: Overview Tradition versus Software-
- Page 4 and 5: Software-Generated Schedules Lucko
- Page 6 and 7: Fenced Bar Chart Mob. A B C D E F G
- Page 8 and 9: Font and Color Serif-type fonts mor
- Page 10 and 11: Schedule Graphics Details
- Page 12 and 13: Breakdown of Approach Consider good
- Page 14 and 15: Arranging Algorithm Step 0: Layout
- Page 16 and 17: Example: Initial Configuration 24 c
- Page 18 and 19: Conclusions Goal to automatically g
<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?