65
!"#$ !&’’ (&)*+* ,-&. /0"1 2#&3"4$ 54"3*0$"6) 78 9&$-"4:674 ,*&+#*; 9<

01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

!"#$%!&''%

(&)*+*%,-&.%

/0"1%2#&3"4$%

54"3*0$"6)%78%9&$-"4:674%

,*&+#*;%9<%

Page 2: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

=>#?@A*-"1#*%B74607#%,)$6*C$%

/D&C'#*%

E>*$?74$F%

%@%G7.%"$%D"%17CC>4"1&6*HI%

%@%<0*%&:*46$%$)41-074"J*HI%

%@%9-&6%&K7>6%$."61-"4:%67%76-*0%6&$L$I%

%@%,671-&$?1"6)I%

%@%(&>#6$I%

Page 3: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

!*6.70L*H%/CK*HH*H%,)$6*C$%

<$)41-0747>$%

!76%4*1*$$&0"#)%M8&"0N%

B7C'#*D%$7O.&0*%P%C7H*%

$."61-"4:%P%$6&6*%

B74607#%"$%&%$C&##%'&06%78%6-*%73*0%

*4:"4**0*H%$)$6*C%

Page 4: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

Q>&0H*H%B7CC&4H%R&4:>&:*$%

•!B7CC&4H$%*D*1>6*H%"4%&4)%

70H*0S%

•!T0778$%C>$6%$-7.%6-&6%&##%

U8&"0V%"46*0#*&3"4:$%#*&H%67%

6-*%1700*16%0*$>#6%%

•!9-"1-%"$%6-*%$&C*%&$%

$-7."4:%:#7K&#%$6&K"#"6)S%

•!U$**%&#$7%M$*#8@$6&K"#"J"4:%

&#:70"6-C$NV%

WXYZ%

Page 5: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

BBRF%[-*%B7C'>6&?74%&4H%B74607#%R&4:>&:*%

\*8*4$"3*%]74*%0

a b

c

<4%<K$60&16%BBR%T07:0&C%

!!"#$^%BBR%_46*0'0*6*0%

%@%Q>&0H*H%17CC&4H$%

%@%T07:0&C%17C'7$"?74%%

%@%,6074:%6)'*%1-*1L*0%

%@%/D6*4$"K#*%

2#&3"4$;%`aabS%

2#&3"4$%&4H%=>00&);%`aacS%

Page 6: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

d>6#"4*%

•! (&)%

–!BBR"%U[-*%BBR%_46*0'0*6*0V%

–!/D&C'#*F%B74$*4$>$%."6-%C*$$&:*%'&$$"4:%

•! !"#$%

–!BBR"%."6-%6-*%M(&1670)%(#770%[*$6K*HN%

–!B7C'7$"?74%

–!,671-&$?1%,1-*H>#*%

Page 7: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

_4607H>1?74%67%BBR%

,)46&D%&4H%,*C&4?1$%

(&)*+*%,-&.%

We%,*'6*CK*0%`aaX%

Y%

Page 8: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

\"$60"K>6*H%,)$6*C$%

f%

Page 9: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

d>6#"4*%

•! \"$60"K>6*H%,)$6*C$%

•! d3*03"*.%78%6-*%#&4:>&:*%

–!Q>&0H*H%17CC&4H$%

–!/D6*4$"K"#"6)%&4H%#"K0&0"*$%

–!T07:0&C$%&4H%B7C'7$"?74%

•! /D&C'#*$%

–!B74$*4$>$%

X%

Page 10: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

Q>&0H*H%17CC&4H$%

•! R71&#%0>#*$%%

•! Q>&0H;%&1?74%%

Wa%

Q#7K&#%K*-&3"70%

boolean expression :{

command_1, command_2,

… command_k

};

Page 11: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

Q>&0H*H%17CC&4H$%

•! R71&#%0>#*$%%

•! Q>&0H;%&1?74%%

WW%

Q#7K&#%K*-&3"70%

boolean expression :{

command_1, command_2,

… command_k

};

true : {

print ( “Hello my number

is ”, n ,”\n”)

};

G*##7%C)%

4>CK*0%"$%

bS%G*##7%C)%

4>CK*0%

"$%`S%%

G*##7%C)%

4>CK*0%

"$%`S%%

G*##7%C)%

4>CK*0%

"$%WS%%

G*##7%C)%

4>CK*0%"$%

cS%

Page 12: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

T07:0&C$%

program p ( param_1, ..., param_n ) :={

statement_1

statement_2

statement_m

};

<%$6&6*C*46%"$%&4%"4"?&#"J&?74 %x := 10 70%&%:>&0H*H%17CC&4HS

program agent ( n ) := {

done := false;

true : {

print ( “Hello my number is ”, n ,”\n”),

done := true

};

done : { exit () };

}; W`%

Page 13: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

B7C'7$"?74%78%'07:0&C$%

Wb%

program agent ( n ) := { true : { print ( “Hello my number is ”, n ,”\n”) };

};

program main := agent (1) + agent (2) + agent (3) + agent (4);

G*##7%C)%

4>CK*0%"$%

bS%

G*##7%C)%

4>CK*0%

"$%`S%%

G*##7%C)%

4>CK*0%

"$%WS%%

G*##7%C)%

4>CK*0%"$%

cS%

"4%.-&6%70H*0I%

Page 14: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

/D*1>?74%70H*0%

ccli system.ccl

Hello my number is 1

Hello my number is 2

Hello my number is 3

Hello my number is 4

Hello my number is 1

Hello my number is 2

Hello my number is 3

Hello my number is 4

Hello my number is 1

Hello my number is 2

Hello my number is 3

ccli system.ccl -r

Hello my number is 2

Hello my number is 3

Hello my number is 1

Hello my number is 4

Hello my number is 2

Hello my number is 4

Hello my number is 1

Hello my number is 3

Hello my number is 3

Hello my number is 2

Hello my number is 1

Wc%

program agent ( n ) := { true : { print ( “Hello my number is ”, n ,”\n”) };

};

program main := agent (1) + agent (2) + agent (3) + agent (4);

Page 15: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

[)'*$%&4H%/D'0*$$"74$%

•! [)'*$%–! g77#*&4% % %true & false%

–! _46*:*0Ph*&#%%( 1 + 1 ) ^ 5 + 7 % 3 %%

–! ,60"4: % %( "abc" <> "def” ) %

–! R"$6 % %% %1 @ { 2, 3 }%

–! h*170H %% %[to:= 1, from:= 7, msg:= “hi there!”] •! T0*%0>4?C*%6)'*%1-*1L*0%i%47%6)'*%*0070$j%

•! _46*0*$?4:%/D'0*$$"74$%–! B74H"?74&#%%%%if 1 > 0 then 1 else 0 end;%

–! R*6 % % %let x := 10, y := x/2 in x+y end;%

–! R&CKH& %% %f := lambda x . –x;%

–! (>41?74$ %fun fact n if n <= 0 then 1 else n* fact (n-1)

end; WZ%

Page 16: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

R"K0&0"*$%

•! ,6&4H&0H%

•! =&6-%

•! R"$6%

•! _46*0'071*$$%B7CC>4"1&?74%

–!=&"#K7D*$%870%*&$)%1741>00*46%'07:0&CC"4:%

•! 5\T%\&6&:0&C$%

–!=>#?'#*%BBR%'07:0&C$%6&#L"4:%73*0%&%4*6.70L%

•! Q0&'-"1$%

–!A"$>&#"J*%H)4&C"1%H&6&%

We%

Page 17: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

B74$*4$>$%

$*4H"4:%

3&#>*j%0*1*"3*H%

3&#>*j%

$*4H"4:%

&1L%U&4H%

3&#>*Vj%0*1*"3*H%

&1Lj%

17C'>?4:%

&3*0&:*%

17C'>?4:%

&3*0&:*%

WY%

Page 18: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

_46*0@T071*$$%B7CC>4"1&?74%

•! "'071S11#%#"K0&0)%

send([to:= 1, from:= 7])

inbox(i)

%0*6>04$%K77#*&4%*D'0*$$"74%

recv(i)%

0*&H$%C*$$&:*

Wf%

Page 19: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

,6&6*%\"&:0&C%

"H#*%

$*4H"4:%

0*'#)%

0*1*"3*%

17"4%k"'%

1-77$*%'&064*0%

$*4H%C*$$&:*%"4K7D%476%

*C'6)%

WX%

>'H&6*%

3&#>*%jC$:S&1L%

C$:S&1L%

$*4H%&1L%

Page 20: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

,6&6*%\"&:0&C%

"H#*%

$*4H"4:%

0*'#)%

0*1*"3*%

17"4%k"'%

1-77$*%'&064*0%

$*4H%C*$$&:*%"4K7D%476%

*C'6)%

`a%

>'H&6*%

3&#>*%jC$:S&1L%

C$:S&1L%

$*4H%&1L%

Page 21: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

,*4H%

program send_msg (i) :={

needs mode, x, toRobot, msg;

(mode = "idle") & (rand(1000) = 1) :{

toRobot := (i + rand( N - 1 ) + 1) % N,

send([to := toRobot , from := i, x := x,

ack := false]),

};

}; `W%

"H#*%

$*4H"4:%

17"4%k"'%

1-77$*%'&064*0%

$*4H%C*$$&:*%

Page 22: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

,6&6*%\"&:0&C%

"H#*%

$*4H"4:%

0*'#)%

0*1*"3*%

17"4%k"'%

1-77$*%'&064*0%

$*4H%C*$$&:*%"4K7D%476%

*C'6)%

``%

>'H&6*%

3&#>*%jC$:S&1L%

C$:S&1L%

$*4H%&1L%

Page 23: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

h*1*"3*%

program recv_msg (i) :={

needs x, mode, msg;

inbox(i) :{

msg := recv(i),

mode := if msg.ack = true

then "update"

else "reply"

end

};

};

`b%

0*'#)%

0*1*"3*%

"4K7D%476%

*C'6)%

>'H&6*%

3&#>*%jC$:S&1L%

C$:S&1L%

Page 24: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

,6&6*%\"&:0&C%

"H#*%

$*4H"4:%

0*'#)%

0*1*"3*%

17"4%k"'%

1-77$*%'&064*0%

$*4H%C*$$&:*%"4K7D%476%

*C'6)%

`c%

>'H&6*%

3&#>*%jC$:S&1L%

C$:S&1L%

$*4H%&1L%

Page 25: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

T071*$$%=*$$&:*%

program proc_msg (i) :={

needs x, mode, msg;

mode = "update" :{

x:= 0.5*(msg.x+x),

mode := "idle"

};

mode = "reply" :{

send ([to:= msg.from, from:= i, x :=x, ack:=true]),

mode := "update"

};

};

`Z%

Page 26: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

B7C'7$"?74%

program agent = send + receive

sharing i x;

program main() := compose i in range n : agent ( i, n ) ;

`e%

Page 27: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

T#7+*H%\&6&%

`Y%

0 10 20 30 40 500

1

2

3

4

value

time

Page 28: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

=70*%B7C'7$"?74%

program agent ( n ) = send + receive;

program interceptor = agent ( n ) + intercept;

program main() := compose i in range n : agent ( i ) + interceptor;

`f%

Page 29: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

\07''*H%=*$$&:*$%

`X%

0 100 200 300 400 5000

50

100

150

200

250

Est

imate

Time

Linear Average Consensus, 21 robots

actual mean

measured mean

standard deviation

0 50 100 150 200 250 300 350 400 450 5000

50

100

150

200

250

Est

imate

Time

Input-Based Consensus, ! = 0.95, 20 robots

actual mean

measured mean

standard deviation

Page 30: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

/D6*4$"K"#"6)%

•! extern%

–!$-&0*H%#"K0&0)%

extern “C” Value * ccl_cos (list<Value *> * args ){

return new Value ( cos ( ( *args -> begin())

-> num_values() ) );

}

g++ -shared –o ccl_math.so ccl_math.cc –I

\$(CCL_ROOT)/base

ba%

Page 31: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

,7O.&0*%

•! <3&"#&K#*%870%%–!=&1%

–! R"4>D%

•! $7>01*%"4"6l*43%

•! C&L*%[<hQ/[^=<B%

-+'FPP$7$#&KS**S.&$-"4:674S*H>PC.P"4H*DS'-'PB7H*%

bW%

Page 32: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "

!"#$%%&'()*+*,$-.*$//'

0(12$0+33%+,#44#$5"+67*(8$91+:(;2

5#34#<)#*$=>4"$?@@ABCB$DEFG$

Page 33: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "

!"#$%&'"($)*&$"#+,)*-##+).!**/)

!"#$%&'(

0

)'*'&+,-%.+/0"%&'(

1(022

3'4#

1#5/'(%(67&'(%8#9,(%4"#:

Page 34: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "

!"#$%&'()#*('(+&,*("-*"(.,/! 0'1#2"$'*.&13%.,&'1%&*(",,.,

! 4#5*&&

! 6.2.'*

7*8,&'&)(#%9.:

7*8,&'&,;+,-('2.(:

<*3-=',*#-&>'-*3(+&>$33(&?<>>@

Page 35: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "

!"#$%&'()*+,'$%-.$/'"

Page 36: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "

! !"#$%&#$"'()"*(+,$'-(../

! 012(#"(3&4#"*5(36""*(7$8+6&#$"'

! /"4&6$9$'-(3+'4#$"',

! .*:&#$'-(&(!&*;"%(1*"4:,,()*"8(&(1*"-*&8

! <$,&,,:8=65(1*"-*&8

! >"+#$'-(?*"-*&8,

! 3&,#(%,@(>"=+,#(1*"-*&8,

! 1*"-*&8(A>"=+,#$)$4&#$"'B

! C:##$'-(6$=))

D+#6$':

Page 37: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "

!"#$"%&&'($)*+,)--).,/*0,1

P(2)P(3)

)P(1)223)!"#$"%&4,5'('($)6#7%6)",%7*'8,)0,+%8'#"

9!:9!:9!:

P(4);,(/'($)))97*'#(/

223)!"#$"%&)5#")/</*,&=main() := compose i in range 1 4: P (i);

Page 38: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "

!"#$"%&&'($)*+,)--).,/*0,1

P(2)P(3)

)P(1)223)!"#$"%&4,5'('($)6#7%6)",%7*'8,)0,+%8'#"

9!:9!:9!:

P(4);,(/'($)))97*'#(/

223)!"#$"%&)5#")/</*,&=main() := compose i in range 1 4: P (i);

Page 39: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "

! !"#$%&#$"'()"*(+,$'-(../

! 012(#"(3&4#"*5(36""*(7$8+6&#$"'

! /"4&6$9$'-(3+'4#$"',

! .*:&#$'-(&(!&*;"%(1*"4:,,()*"8(&(1*"-*&8

! <$,&,,:8=65(1*"-*&8

! >"+#$'-(?*"-*&8,

! 3&,#(%,@(>"=+,#(1*"-*&8,

! 1*"-*&8(A>"=+,#$)$4&#$"'B

! C:##$'-(6$=))

D+#6$':

Page 40: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "

!"#$"%&&'($)*+,)--).,/*0,1

2'0334/#

!"#$%&'"()*%"+,&,-*.,"''/)*")*")*011

334552

2)'/,3&4/*.,"''/)*")*005

P(2)P(3)

)P(1)667)!"#$"%&8,3'('($)2#5%2)",%5*'9,)0,+%9'#"

:!;:!;:!;

P(4)<,(/'($))):5*'#(/

667)!"#$"%&)3#")/=/*,&>main() := compose i in range 1 4: P (i);

Page 41: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&"'&()*+",-&(%"",&!"#.%$/

NORTH

THIS EAST

SOUTH

WEST

0+)+$/&"'&()*+",-&(%"",&!"#.%$ 1"*)%&2345,"36$3+&"'&!"#.%$&

bool ELEVATORbool NODEbool TRUSS_Xbool TRUSS_Ybool TRUSS_Z

!"#$%"&'()"*$+,-. /01"*$23!'1&)04

Page 42: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! ""

!"#$%&$'()%&*+$',&&*$-&./,01$

23*0)%3&41$5DIR6$7$THIS, NORTH, EAST, SOUTH, WEST8+90$&:$;(<$=(%0*3(,$5TYPE67$NODE, TRUSS_X, TRUSS_Y, TRUSS_Z

>?0)@34A$1%(%/17

checkFilled DIR TYPEcheckEmpty DIR TYPEcheckElevatorUp DIR

>?(4A34A$%?0$1%(%07

moveNode DIRmoveTruss TYPE DIR TYPEinsert TYPEremove TYPEliftlower

Page 43: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&$'()%&*+$',&&*$-&./,01

/* for initializing simulation */external unit initff() "libff.so" "ccl_FFinit";external unit readStructure() "libff.so" "ccl_FFread";

/* get sensor data */external bool checkFilledXY(int, int, int, int) "libff.so" "ccl_checkFilled";external bool checkEmptyXY(int, int, int, int) "libff.so" "ccl_checkEmpty";

/* act on on state */external unit insertXY(int, int, int) "libff.so" "ccl_insert";external unit removeXY(int, int, int) "libff.so" "ccl_remove";external unit liftXY(int, int) "libff.so" "ccl_lift";external unit lowerXY(int, int) "libff.so" "ccl_lower";external unit moveNodeXY(int,int, int) "libff.so" "ccl_moveNode";external unit moveTrussXY(int, int, int, int ,int) "libff.so" "ccl_moveTruss";...

'*&2$!!"##$

Page 44: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

! !"#$%&#$"'()"*(+,$'-(../

! 012(#"(3&4#"*5(36""*(7$8+6&#$"'

! /"4&6$9$'-(3+'4#$"',

! .*:&#$'-(&(!&*;"%(1*"4:,,()*"8(&(1*"-*&8

! <$,&,,:8=65(1*"-*&8

! >"+#$'-(?*"-*&8,

! 3&,#(%,@(>"=+,#(1*"-*&8,

! 1*"-*&8(A>"=+,#$)$4&#$"'B

! C:##$'-(6$=))

D+#6$':

Page 45: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&'()moveNode...external bool checkFilledXY(int, int, int, int) "libff.so" "ccl_checkFilled";external bool checkEmptyXY(int, int, int, int) "libff.so" "ccl_checkEmpty";... external unit moveNodeXY(int,int, int) "libff.so" "ccl_moveNode";...

include ff.ccl

program north(x,y):= { checkFilled(x,y,THIS,NORTH) & checkEmpty(x,y, NORTH, NODE):{

moveNode(x,y,NORTH);};

};

program main():= north(0,1) + north(0,1) + north(0,2);

!"#$%&'(#%&)*"+(*,""-./#(%0

Page 46: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&'()*+,

include ff.ccl

program north(x,y):= {include ffFun.ccl

(checkFilled THIS NORTH) & (checkEmpty NORTH NODE):{MoveNode NORTH;

};};

checkFilled := (lambda dir. ( lambda type. checkFilledXY(x,y,dir,type))); checkEmpty := (lambda dir. ( lambda type. checkEmptyXY(x,y,dir,type)));

moveNode := ( lambda dir. moveNodeXY(x,y,dir));

...

-."/)!!"#$%&&'

!"#$%#$%&'()*+%*,-.*

Page 47: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&'()*+,-./)*#0'1-#&2

(checkFilled THIS TRUSS_X ) & (checkEmpty THIS TRUSS_Y) : {moveTruss TRUSS_X THIS TRUSS_Y

};

(checkFilled THIS TRUSS_X ) & (checkEmpty NORTH TRUSS_X) : {moveTruss TRUSS_X NORTH TRUSS_X

};

(checkFilled THIS NODE ) & (checkEmpty NORTH NODE) : {moveNode NORTH

};

Page 48: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

! !"#$%&#$"'()"*(+,$'-(../

! 012(#"(3&4#"*5(36""*(7$8+6&#$"'

! /"4&6$9$'-(3+'4#$"',

! .*:&#$'-(&(!&*;"%(1*"4:,,()*"8(&(1*"-*&8

! <$,&,,:8=65(1*"-*&8

! >"+#$'-(?*"-*&8,

! 3&,#(%,@(>"=+,#(1*"-*&8,

! 1*"-*&8(A>"=+,#$)$4&#$"'B

! C:##$'-(6$=))

D+#6$':

Page 49: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&'(')#*&#(+,'$%-*'.(#/*0')#*12,,2,

3456

! 7(%'(%(8592':#*;(;$8$,-$1'<($8"#2,

! 7(%'",2':*=2#<"8'-**8,'<#*+'.(#/*0')#*12,,2

! >88*=,'-*';2'#*;",-'-*'12#-($%'/$%?,'*<'<($8"2,@'

A*=6

! >??'('!"#$'-*'2(14'&"(#?2?'1*++(%?

! B2,"8-'$,'('.(#/*0':#*12,,'*%'-42',-(-2',:(12'*<'-42':#*&#(+

Page 50: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$rate$%&'()program drunkard( k ) := {

X:=0;(rate k):{ X++ };

};

program main() := updateDT() + drunkard( 1.0 ) + drunkard( 2.0 );

main() = drunkard(1.0) + drunkard(2.0) + updateDT();

Page 51: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&'()*+,-./)*#0'1-#&2

(rate k) & (checkFilled THIS TRUSS_X) & (checkEmpty THIS TRUSS_Y):{moveTruss TRUSS_X THIS TRUSS_Y

};

(rate k) & (checkFilled THIS TRUSS_X) & (checkEmpty NORTH TRUSS_X):{moveTruss TRUSS_X NORTH TRUSS_X

};

k

k

k

(rate k) & (checkFilled THIS NODE) & (checkEmpty NORTH NODE):{moveNode NORTH

};

Page 52: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

! !"#$%&#$"'()"*(+,$'-(../

! 012(#"(3&4#"*5(36""*(7$8+6&#$"'

! /"4&6$9$'-(3+'4#$"',

! .*:&#$'-(&(!&*;"%(1*"4:,,()*"8(&(1*"-*&8

! <$,&,,:8=65(1*"-*&8

! >"+#$'-(?*"-*&8,

! 3&,#(%,@(>"=+,#(1*"-*&8,

! 1*"-*&8(A>"=+,#$)$4&#$"'B

! C:##$'-(6$=))

D+#6$':

Page 53: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! ""

!"#$%&'()*+,#,,'$-&+./)01234132',program disassembleXY(x,y):={

include ffFun.ccl

(rate (kglobal)) & (checkFilled THIS NODE) & (checkEmpty EAST NODE):{moveNode EAST

};(rate (kglobal)) & (checkFilled THIS TRUSS_X) & (checkEmpty EAST TRUSS_X):{

moveTruss TRUSS_X EAST TRUSS_X};(rate (kglobal)) & (checkFilled THIS TRUSS_Y) & (checkEmpty EAST TRUSS_Y):{

moveTruss TRUSS_Y EAST TRUSS_Y };

(rate (kglobal)) & (checkFilled THIS TRUSS_Z) & (checkEmpty THIS TRUSS_Y) & (checkEmpty THIS TRUSS_X) & (checkEmpty THIS NODE)

& !(checkFilled WEST TRUSS_Z) & !(checkFilled WEST TRUSS_Y):{ moveTruss TRUSS_Z THIS TRUSS_Y, lift

};(rate (kglobal)) & (checkEmpty THIS TRUSS_Y) & (checkElevator THIS): { lower };

};

program main() := disassembleXY(0,0) + disassembleXY(0,1) + disassembleXY(0,2) disassembleXY(1,0) + disassembleXY(1,1) + disassembleXY(1,2);

!"#$%&'())%"('%")%*

+,-$."#$%/0'-(&&%1

%(&$%$2$#+'"-

Page 54: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&'()*+,#,,'$-&+./)01234132',

)disassemble())eat()

)main():= disassemble() + eat();)main():= disassemble() + eat();

Page 55: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&'()*+,'$%-.*$(*+/

disassemble()

routing()

building()

0$+1'%(-+*"+

,+*(",-+*"+

-main():= disassemble() + routing() + building();

Page 56: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

! !"#$%&#$"'()"*(+,$'-(../

! 012(#"(3&4#"*5(36""*(7$8+6&#$"'

! /"4&6$9$'-(3+'4#$"',

! .*:&#$'-(&(!&*;"%(1*"4:,,()*"8(&(1*"-*&8

! <$,&,,:8=65(1*"-*&8

! >"+#$'-(?*"-*&8,

! 3&,#(%,@(>"=+,#(1*"-*&8,

! 1*"-*&8(A>"=+,#$)$4&#$"'B

! C:##$'-(6$=))

D+#6$':

Page 57: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&'()*"'*+,

loading()

disassemble()

routing()

building()

-"+.%&'(+*/+

$+*'/$(+*/+

0#+-%$1("2(!"#$%&'()*"'*+,3!()+*$(+44/+*5(%&(-"+.%&'(+*/+(+$($%,/(6!()*"78($+*'/$(+*/+(+$($%,/($9

(main():= disassemble() + routing() + building();

Page 58: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&'(")*+'random(k)

program southEast(k) := {(rate (k / 2)) & (checkFilled THIS NODE) & (checkEmpty EAST NODE):{

moveNode EAST};(rate (k / 2)) & (checkFilled THIS NODE) & (checkEmpty SOUTH NODE):{

moveNode SOUTH};

};

southEast(k)

k = 1/sec

Page 59: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%!&'"()%flow(k)

program east(k):= {(rate k ) & (checkFilled THIS NODE) & (checkEmpty EAST NODE):{

moveNode EAST};};

program north(k):= {(rate k ) & (checkFilled THIS NODE) & (checkEmpty NORTH NODE):{

moveNode NORTH};};

program south(k):= {(rate k ) & (checkFilled THIS NODE) & (checkEmpty SOUTH NODE):{

moveNode SOUTH};};

k = 1/sec

Page 60: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

! !"#$%&#$"'()"*(+,$'-(../

! 012(#"(3&4#"*5(36""*(7$8+6&#$"'

! /"4&6$9$'-(3+'4#$"',

! .*:&#$'-(&(!&*;"%(1*"4:,,()*"8(&(1*"-*&8

! <$,&,,:8=65(1*"-*&8

! >"+#$'-(?*"-*&8,

! 3&,#(%,@(>"=+,#(1*"-*&8,

! 1*"-*&8(A>"=+,#$)$4&#$"'B

! C:##$'-(6$=))

D+#6$':

Page 61: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%#&%'())*++

Page 62: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"#$%&'()'*+,-."+./0%

flow(1) random(1) robust(1)

robust (k) := flow( 0.9*k ) + random (0.1 * k);

Page 63: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

flow(1) random(1) robust(1)

!"#$%&'(%%)*%+),(-."-/0'1(

Page 64: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! ""

!"#$%&'"()*+,)-#./01)2.03,44)

5)6.0/,"

7)6.0/,"

8)6.0/,"

5)6.0/,"

7)6.0/,"

8)6.0/,"

Page 65: 01%2#&34$%murray/VaVmuri/images/a/ac/Shaw-napp_15sep09.pdf/D*1>?74%70H*0% ccli system.ccl Hello my number is 1 Hello my number is 2 Hello my number is 3 Hello my number is 4 Hello

! ! "#

!"##$%&'($)**

!''+%,#-(('../'0##1233,4,(-)5""56-,0$%&#4%5"783963$%7":51013.47"

!'!"#'#0"',48;<"'<47"'*4;'($)**' 0##1233,4,(-)5""56-,0$%&#4%5"783%%-1136$=$3**5#&>

!'?"("#"'-%@'":$,#$%&'**',8)7$;"<#4;$",'4*'#0"'../';44#'7$;"<#4;@'-%7'<41@'#0"'%"6',48;<"'$%#4'../ABCCD3**'

!'.-(('9-="E'$#',048(7')8$(7'#0"')$%-;$",'-%7'$%,#-(('#0"9'-%7'../'FG+'$%#4'#0"'-11;41;$-#"'(4<-#$4%,