You are on page 1of 30



 

!#"%$'&)(*"%+%,.-!%/0&21!430".1*5(76)"%98:1*;"$#<1*1*$#=%,1*>?".@A0-B1DCC%"%(EGFH>0I(J6)*#-K/?*#23L!"%@%&)+%>0$#C;6M=32ON
I3
2


3:O@Q1*
".#@2-R"%%STUVS".@)3
/M(W1WNXTUY"(%-Z%/0&01*#@0+)E[FH>0\
".#@2-R"%4!9"]H"%(G"%*83
6C^2/M!@)(* P V!%/0&21!9(
P
1>)"_1`]U!;aQ&0<1
&0@)".bM30"%60$#6CcO@)30 P I32&)".$I(S"%@)3d"%9>e/0&21*=(*! P 3d"f$I".+%@Q&)=6M!`%-U&)(*!9(E:FH>0;TUg!9"f(*"h]
1>0!+%!@?`%-G32(*8Q1*%/?(J]7>0I9>c!%&0$I3L6M="(W#$#C 6M".bM303L".@?3i&)(*3L6C1*>)=#@)32 P I32&)"%$K&)(W(E4FH>0/M(W1WNXTUj!9"
I(
(*!O@0+!*+!@)!%-(W
"%$O$"%@)3i/M%*1"%60$O/0&21*(S".@?3c!%/0&21!9(V=6M30303cO@d P !C3)"hCf"%/0/0$##"_1O@)(!Sk
".8#@0+f".@
#@)32 P #32&?".$#@Q1*!9"%17]7<1>f(* P !9".$'/0&21*(H P *C230"hCE
l 5".$ONm1O="%@)3L=6M303253n!%/0&21O@0+"./0/)$OI!".1*#%@)(4O@L1>0A)(W141D]U:!%/0&21O@0+ !9"
]U!`".1*>049".=".@?3L*5(D1*Io13
1 "-R]g(W/M!#"%$O#p!53i"./0/)$OI!".1*#%@)(V(W&)9>i"(V(*/)"="%@)3L32-R@)(*%E4qX@i1*>0/?Q(D1*NrTHj!9".-G/0&21*#@0+?S?1>0=&?(W.-/)&21*
(*C2(D1!
(6)"(W53%@
".$ONs1*#J"%@)3!6?53032531*9>)@0%$#%+O5([>)"%(G".$#*5"%32C=1*%&?9>03 P !C`-t"1.-'%&0$OO-R4"%@)3#((D1O$#$)+*_]7#@0+
".1V"
/)"1>)"_1\]U"(7@0 P !4(*!@L6?!-R%%E7uv>0#$#=!6?5303253L/0!((W#@0+;"%@)3fqX@Q1*!@0!1WNr!@)"%60$O53L32 P I5(J>)" P @0_]w!"./01*&03
 P !C%@0%x (`#
".+O@)".1*#%@S1*>0Cy".`zD&)(W1;"c(*
".$#$U-R"o1*#%@Y.-,"./0/0$#I!"_1O@)(=1*>)".1>?" P :6M!@Y
"32f/?Q(*(*O6)$O6C{*5".$ONm1O
(*C2(D1!
(!EHqr-]U=!"(W&?".$#$OC $O%8f".%&)@)3&)(!S?]!".@i30#( P !J
".@C .-K1*>0}|~%-B1*!@f1>0!CL"%*`".%&2M".+%53O@)(*I32=(*O/0$#
$#%8O@)+32 P I5(!Eqr-Z]UV6)(*! P J!"%*!-R&0$#$OCSQ]UV".@;@).1*I,(* P "%$0+"32+%!1(U".@)3:"./0/0$#I!"_1O@)(]7>0#9>:>)" P 41*230"hC6?5VO@0N
32I(*/?@)(*"%60$#J1*=%&0 P *C30"hC$OO-R%S2"%*J#@
-t"o16?"%(*3%@:!=6M3)323
"%$<Ns1*#4(*C(W1*
(!E[0G!^2"%/0$OS]UJ>)" P J&060IaQ&0O1*%&?(
!%@)(*&0!7/0232&)1(7(*&)9>L"%(732#+%O1"%$!"."(!S2$O$Z/0>0%@)(S2I_]H" P 4 P !@)(S2!"%!%932!9(S P I32!+Q".(W!1(21*$O5%&2N
@0I!".1*#%@{32"%O@d/0232&)o19(`".@?3d"%/0/0$##"_1O@)((W&?9>e"((W!1WNs1*/c6Mh^2(S!"%60$#
232
(!S P %I P !,qDTR[qDToS".@)3 P #30!
!%@2-R*@)#@0+n"%/0/0$##"_1*#%@?(![%
!:/0232&)1(=(*&)9>"(`-t".^d
"%9>)O@05(!SK$I"%(*!/0*#@Q1*(S"%@)3(*!&0*O1DCe(WC2(W1*!
(EiU(*#325(!SK]U
@)&0@Q1*!,"%$<Ns1*#(*C2(D1!
(\O@d>0(*/0O1"%$#(\#@n1>0-R%.-532#".$K#@)(D1*&)@Q1"_1O@c5aQ&0O/)@Q1(,".@)3c#"%+%#@0+f(WC2(W1*!
(E
FH>0*"%*".$I(*"$I".+%\@&0=6M!J%-5aQ&0O/)@Q1(7".@?3 +Q"%32+19(6?"%(*3%@*5".$ONm1O(*C(W1*
(H]7>0#9>1>0%&0+> ]U@0*
".$#$#C;32
@0%17&)(W32#o1$OCS260&217@0 P !U1>0$O5(*(H"%*,(D1O$#$#/?W19".@Q11%&0730"%O$#C;$#<-REj-R]!^0"./0$#(U.-K(W&)9>f(*C(W1*
(U"%*\qX@Q1**@0!1
%&21!9(!S6)"(W(W1".1*#%@)(H#@L!$#$#&0$#"%J(WC2(W1*(S2#@)32&)(W1*#"%$'/0$I".@Q14".&21%
"_1O@(*C2(D1!
(S0".@)3 O@?32&)(W1*#"%$*6?%1(E
qr17!"%@:6M\5"%(*O$#CO@0-R!*53
-R%1*>),"%6? P V32I(&)((W#%@;1*>)".1H#@:!!@Q1U1*#5(H*5".$ONm1O\%/0&01*!9(U>)" P V6?5\&060IaQ&0ON
1%&)("%@)3>)" P 7/M!".1*3$I".+%H@&0=6M!G.-'"./0/0$#I!"_1O@
"."%(EU1/)*5(W@15S.1>04/0&21*(K&?(W53O@".$ONs1*#J"%/0/0$##"_1O@)(
P "%(W1*$#C%&21@Q&)=6M!1*>0\%/0&01*!9([1>)"_1H".76?O@)+=&)(*3
#@:!%@ P @1O@)".$?"./0/0$#I!"_1O@)(EV!30O@0+,1"%@
(W1*#".1* hrS)_
%-".$#$k/0*2!((W(G"%@&2-t"%1*&03:]*$I3Nr]7#32V".\32/0$#_C%3;O@ *5".$ONm1O\!=6M3)323 "./0/0$#I!"_1O@)(Euv>)O$#,<1H#(H"%$O"32C1*&0
1>)"_1V"%@L P *]7>0$O#@0+
"_zD%O1DC;.-".$#$Z/)*25(*(*%9(U6?O@)+;
".@&2-t"%1*&03f"%*+1W1O@)+:32!/)$O_C3O@L"%$<Ns1*#`"./0/)$OI!".1*#%@)(S
]7>)".1
#(%*"%*8_"%60$OI(1*>0f&0@0I(D19".8_".6)$O1*!@?3y%-\(W1*"32C#(*O@Y1*>0f-R9"%1*#%@Y.-\"%$O$7/)*25(*(*%9("%@&2-t"%1*&03
]U%$#32Ns]7I32VA)@)32#@0+1*>)!#J]U"hC1*5".$ONm1O"./0/)$OI!".1*#%@)(E
%-1*>0"(W@)(V".1W1*#60&219".60$#=1:1>0/0>0@0%!@?".$K+%_]H1*>i#@c1*>0&)(*%-"%$<Ns1*#(*C(W1*
(V#@c1*>0@Q1\C".9(
%" *1*>)
"%@0O-R%$I3n32&?o1*#%@?(,O@d1*>);(W#p!
".@?3n1>0;Q(D1%-1>0;/)&21*(SZ&0/0$#3c]7<1>e1*>0

"%+%I!".$K#/0* P !!@Q19(41
1>0!#/?W-R*
"%@)EFH>)" P "%O$I".60#$#<1DCL%-U/0&21*(".1`"%/0I32$OCf-t"%$O$##@0+f/0*I5(!SZ*532&)53n]U!#+%>Q15S"%/0I32$OCc(W>0#@08O@0+L(*Op(S
"%@)3e1*>)!##@)"(W#@0+i/)*25(*(*#@0+L/?_]U!>)" P ;1*%+1>0!%@Q1*#60&213e1i1*>) /0(*!@Q1(@)".#)En4/0/0$##"_1*#%@?(=]7>0I9>@0%1
1Q;-t".\6)"%98 ]*=!%@)(*I32!3f/0%>)O60O1* P $OC^2/M!@)(* P 1:".&21%
"_1%Sk!"%@L@0_]6?"_bk%930".60$#Cf".&21%
"_13'EJ)%4#@)(W1"%@)S
]7>0@cI%/025(*(*%9(4!(W1*3d(* P "%$1*!@?(,.-G1>0%&?(*"%@)30(,.- l &0/M!5(!SZ1*>0Ci]*
!%@)(*#30!3L1f6?1Qf!^/M!@?(W P 1*f6M
/0&01JO@)(*I32`"]U"(W>0#@0+
"%9>0#@0%)60&21J]7>0@ 1>0!CQ(D17%@)$OC:"-R]>&0@)30*53:&0/M!(S21>0!#7&)(*"%8%5(U!%!9I".$(*!@)(*%E
FH>0,9"./0I3 +%_]H1*>:%-"%/0/0$##"_1*#%@?(732!/0$#_CO@)+"%$<Ns1*#V19>0@)%$#%+%#(U>)"(H6?!@f
"_199>03 6C
1*>0 P $O&21O@)".C+%_]H1*>
%-M1>04&)@)32!$#CQ#@0+,19>0@0$O+%#((*&0/0/M%*1*#@0+,1>0V32 P $O/0!@Q1G.-'"%$<Ns1*#J(WC2(W1*!
(EqX@;1*>0I(6M%8kS]UJ32I(*!&)((G(*%J.-k1>0
!%=19>0@0$O+%#(\&)(*3cO@e32 P !$#%/)O@0+".$ONs1*#
(*C2(D1!
(!EJ_]U P !5Sk](W1*#1\&0(*!$ P 5(J1i(W%-B1D]U"%*#((*&0(\%@)$OCn"%@)3

Version 2 CSE, IIT Kharagpur

8!!/n>)".932]H".=32I(*!&)(*(*#%@)(41* 6)".=#@0O&0fE`FH>0(W%-B1D]U"%*`I((W&05(J1>)"_1,]U"3032((4".aQ&0O1*^2/)"%@)(* P `O@n1*>0


(*!@)(*
1>)"_1J6M(*#30(U1*>)%/M!9"_1*#@0+
(*C(W1* ".@?3 /)*+%9".32 P !$#%/0@17I(*(*&05(!S2]U`32I(*!&)(*(U1>0@0!1D]*8#@0+"%@)330"_19".6)"(W\#((*&0(E
qX@n1*>0I(,9>)"./21!5Sk]*5(D1*Io1\%&09(W$ P (J1*f(WO@Q1*232&)1**CL".@?3f-R&0@)30"%!@Q1"%$I((W&05(!E,qX@n1*>0@0^1,1*>)*9>)"%/21*(S
]UL32#(&?(*(
(*%L*1*>)!%#(&0@)32*$#CO@)+c1>0i32 P !$#%/)@Q1%-V/09"%1*I!"%$7*5".$ONm1OL".@)3Y!6?5303253 (*C2(D1!
(E qX@ 1>0
(*&06)(*aQ&0@1\9>)"./21!5S)]U=32I(*!&)((4(*%`#/M%*1"%@Q1J-R".1*&0(4.-G!#"%$".$ONs1*#=%/M!9"_1*#@0+;(*C2(D1!
(!EJJ-B1*41>)"_15S?]U
(*>0O-B1J%&0J".1W1*@Q1*#%@1*".$ONs1*#!%=&0@)#"_1*#%@ 1*59>0@0$O+%#(H".@)330".1".6?"%(*(E

   

  "$! #&%' #("daQ&)".@Q1*O1".1* P @0.1O@.-V1*#%E

l 5".$ONm1O#("(W&)*53{&)(*O@0+e"c/0>C(*I!".$,R"%$I$#298kE{uv>0!@0 P ]U
Qa &)"%@1<-RC;1*#,&)(*#@0+"/0>C2(WI!"%$'$#98kS]U,30".$k]7O1*>*5".$M1*#%E4@ !^2"%/0$O\&)(*,.-1>0#(7aQ&)"%@Q1*O1"_1 P V@).1*#%@.-Z1*#".@
6M`%6?(W P 3 O@i"
325(*!*#/21O@%-".@L".&21%
"_13f9>0I!"%$/0$I".@Q1EJ%@?(WI32!J1*>0I( ]7>0!@f1>01!/?".1*&0.-K1>0=9>0I!"%$
"o1*#%@e9>)"%=6M!`"_1*1"%O@)("L!!*1"%O@d/032!1*!O@)3c1*/M!9"_1&0%S("hC . VS1>0;(*C(W1* "%&21*".1*I!"%$O$#Cn(*]7<199>0(,%b
1>0;>05"_1*=]7O1*>0#@"L/0301**#@03c1O:#@Q1* P ".$sSK(*"hCc]7<1>0O@LO$#$#(*@)30(E qX@e1>0I(=325(*!*#/21*#%@{%-J"f/)".*1=.-H1>0
6M!>)" P #%.-"9>0!I!".$M/0$I".@Q1SQ1>041O P ".$#&0J1>)"_1H]U"(G-R*3132@0.1(1*>)V"32O@)+(%-Z(W4/0>C2(WI!"%$M!$O298/0(*!@Q1
#@1*>0/0$I".@Q1J".&01*%
".1*#%@f(WC2(W1*!fE

+*-, -.

)(

0/ 123!#&%4 &5768#:9;2<!#:%'

qX@
@Q1*9"%(W1[1*
S
t"%$#(*,8@0_]7@
"%( P #W1&)".$21Oh325".$I([]7<1>;"aQ&)".$#<19"_1 P 7@0.1O@%-k1*#V".@)3I(
!^/)*5(*(*3 &)(*O@0+
 P @1J30!O@0+!$I"_1O@)(7(W&?9>f"(76M-R%%SM"_-B1!5S)(W1*#(S0 P !@Q1*&?".$#$OCS0/0532(S)(*&)!!!530(!S)1%Euv>)O$#
325".$#O@)+`]7<1>:$#%+#".$21O%SQ1O4"32#@0+(-R* "=/0>C(*I!".$M$#298"%*J@).1G@055(*(".C=-RG32*#@0+,1>04 P !@Q19(!EK4(U".@;!^0".N
/0$#%S0!%@)(*I32!U1*>)V-R$O$#_]7#@0+/?".*1U%-Z1*>)\6M!>?" P #%U.-K"=$##60"%*C;"%&21*
"_1*#%@(W%-B1D]U"%*V&)(*3:1*".&21%
"_141>06?8Nr8%!/0#@0+
"o1* P <1O5(4%-G":!%$#$O+%=$##60"%*C *J-B1*\"
"%@)3LI(4+ P !@i6C1*>)=&)(*!5S'3219".#$#(V.-G"%$O$
"_19>)O@0+ 6?8(\".
32I(*/0$#"hC3:6QC1>0(W%-B1D]U"%*E iqX@:1>0#(H!^0"./0$#%S1*>)\ P @19( WI(*(*&04%-aQ&0*C
6M%8;"%@)3 ".@)3 *32I(*/0$#"hC
%-Z(*&0$<19( ".
$#%+#".$#$OCL32*53i#@d1*!
(.-U]7>0I9>d P @19(\-R%$#$O_] 1*>0
%1*>0E
U&215SZ@0iaQ&)"%@1<19"_1 P !^/)*5(*(*O@c%-G1O
]H"%(,aQ&0#*53'E
$#"%*$#C%S1>0#(J^0"./0$#6?>)" P OH#(J30 P #3 .-[".@C;"%$<Ns1*#%@?(WI32!9"_1O@)(Eud`".,@0_]j#@L"/?Q(WO1*#%@130A)@0]7>?"_1JI(
"".$ONs1*#(*C2(D1!

=(?>

A@ B C)DFEGIH$HJ

L>

2K

4>

MK

(
NOQPROQSQT;UWV OYX)Z[\[ T$]^Z`_bac1d eQfFgih^akjFl-jFfIa1hnm;oqp$T;rosT`rRT)T$]?t2uvZrSwV SxZ$SwV yRTTFz1{}|~T)OxOFV 2r0}<SwVUTLbV T-|~TZ[ SwVUT$SQ
]-T)OwXv|&V}TSFp$TL}T}pvZ$y;V 1|}<SFp$T0OxP$OxSQT}U`

 1O\5"%(*&0!!@Q1(U".
l !=6M!1*>?"_1HO@:1*>0I(H32A)@)<1O@:.-"`".$ONs1*#\(WC2(W1*SO1UI(O/0$##!<1H1>)"_17".$#$MaQ&)"%@Q1*O1"_1 P J
".*#3f&21\&?(W#@0+ ":/0>C2(WI!"%$$#298kE\ 9>0!I!"%$/0$I".@Q15SM]7>)(*=/)"%W1\6?>)" P OV325(*!*#/21*#%@n#(J|
.
,| #(V$#"%*$#C:"".$ONs1*#`(*C2(D1!fE V&0
!^2"%/0$O5((*-t".U]*V*5(D1*Io13
1=1>0,32(O/01*#%@:%-Z/)"%W1#"%$?6M!>)" P #%U.-(*C2(D1!
(EKFH>)\!%/0$#1*\6M!>)" P #%U.-"(WC2(W1*!
".@y6ML32(#6?536C$##(W1*#@0+d<19(*5(W/M%@)(*;1 P "%*#%&)(!^Q1!@)".$H(W1*#=&0$#mEYqr1
"hC{6Mf@0.131*>)".1
"%$O$U1>0L$I".&)(*(#@y1>0
325(*!*#/21O@
.-k1*>0V6?>)" P OG%-'"`*5".$ONm1O4(*C2(D1! @0!53
@0.1O@ P $ P JaQ&)".@Q1*O1".1* P J5"%(*&0*5([.-'1OEKFH>?"_1I(S$I".+%7/)"%W19(
%-'"=32(O/01*#%@.-k1*>)46M!>)" P #%%-'"(*C2(D1! 
"hC@0%1G>)" P J".@CaQ&)"%@1<19"_1 P 7^2/0((W#%@)(.-k1*#4"_1"%$O$sS".@)3
(W1*#$O$MaQ&)".$#<-RC
"("d"%$<Ns1*#(*C2(D1!fEvJ@Cy(*C(W1* ]7>0Q(W6?>)" P O
!".@ /0$O!1*$OC6ML32(#6?53y]7O1*>0&21;&)(*O@)+d"%@QCYa&?".@Q1*O1".1* P 
!^/)*5(*(*O@:%-1OI(H.-[%&)(*V@).14"*5".$ONm1O(*C(W1*fE

 ;2R 2-2-12
 212v=};$ R ;-12 $=;-28$-2;}<$ -42$ -2;2'2} n;-*-, -.As v7v2$
;2$=-=}1;RR8R 4-1-  1-2;R;-1'<;1 ;2;;28


)))`
" I7)k
3

l 5".$ONm1Oi(*C2(D1!
(>)" P f%-\$I"_1%S-R%&0@)3v"%/0/0$##"_1O@)(O@ ]7I32L9".@0+O@0+e"."(!EvqX@ 1>0f-R%$#$O_]7#@0+?S]Uf$OI(D1:(*%L%-V1>0
/0%#@0!@Q1G"%*5"%(.-'"./0/)$OI!".1*#%@.-k*5".$ONm1OJ(*C2(D1!
([".@)3#@
"9>I32!@Q1<A)53
!"(WS.]J30#(&)(("\-R]Y!^2"%/0$OJ"%/0/0$##"_1O@)(
#@j(*%n32!1".#$sE 4( ]c!".@v#
".+O@0SH1*>0d$##(W1:]U%&0$I3v6M P *C P "%(W1:<-`]Ui1*CY1*y^2>)".&?(D1 P !$#CY$##(W1"%$O$\"."(
."%/0/0$##"_1*#%@?(J.-["%$<Ns1*#=(WC2(W1*(EHuc>)" P ,1>0!-R*=*5(D1*Io13f%&)J$OI(W141*:%@0$#C";>)".@)32-R&0$%-G"."(!S)"%@)3f%&01V.-K1>0(*
]U,>)" P ,^2/0$I".#@053:@0$OC "=-R] (*!$#1*53"%/0/0$##"_1O@)(1*;@)(*! P ,(W/)"Eud>)" P V/M%#@Q1*3&2171*>0`aQ&)"%@Q1*O1"_1 P ,@0.1O@)(

Version 2 CSE, IIT Kharagpur

%-1O
&)(*3d#@c1>0;32I(*!&)((W53c"%/0/0$##"_1*#%@?(!E;FH>0!^2"%/0$O5(,]
/)*5(W@1`"%*#/M%*1"%@Q1\1L%&0`(*&06)(*aQ&0@Q130#(&)((*O@)(
"%@)3:]U%&)$#36M*!-R!*53
1*#@1*>0$I"_1!V>)"%/21*(H]7>0@0 P !7aQ&0#*53'E

)! / #:2

3:#&9;2!#&5



 qX@)30&)(D1*I".$?"./0/0$#I!"_1O@)([@)(W1*O1*&21J"V
".zD%[&)(".+H"%*5"4%-M"%$<Ns1*#7(WC2(W1*!
(E -R]Y!^0".N
/0$#([%-k#@)32&?(D1*I".$)"%/0/0$##"_1O@)([.-k".$ONs1*#J(*C2(D1!
("%* Z/02(([@Q1*%$0(*C(W1*
(!SO@)30&)(D1*I".$M".&21%
"_1O@
(WC2(W1*!
(S
)U
4w"./0/0$#I!"_1O@)(S1*(W14".@?3:"(W&)*@Q1H5aQ&0O/)@Q1(S0".@)3%6M.1*I\aQ&0#/0!@Q1(E



-(



 % 3: <1%'#:9;20&=!`5 =! / 58



 % 3:!" #<!57%'!$$%` /

 >0!I!"%$)/0$I".@Q1U!%@Q1*%$M(WC2(W1*(U".J5(*(*!@Q1*I".$#$#C"`1DCQ/M4%-/0!((G!%@Q1*%$M"./0/0$#I!"_1O@EqX@:".@:"%&21*
"_1*53;9>0I!"%$

/0$I".@Q1S"".$ONs1*#V%/0&01*!U/M!O232I!"%$O$#C@0<1%9(/0$I".@Q1H%@?32<1O@)(EFH>0V/0$I".@Q1U!%@)32O1*#%@?("%*4301**#@03;6)"%(*3
%@v&)*!@Q1
*5"%32#@0+Q(.-,/0*5(*(*&0%S1*/M!9"_1&0%S7".@)3 9>0#".$4!%@)!!@Q1*9"_1O@Y%-V1>0i"%1*#%@ 9>)".6?EFH>0(*
/)".9".!1*!9("%*4("./0$#3/M!#30#".$#$OCEKH"(W53%@
1>0 P ".$#&05(G("./0$#3;".1U".@C1*#%SQ1*>0\".&21%
"_1O@:(*C(W1* 30I325(
%@1>0H%o1 P "%1*#%@)(@0!((*"%*C\"_11*>)".1#@)(W1"%@11*V"%O@Q19".#@1*>0H9>0I!"%$"o1O@`"_1["4W19".#@`9"_1*
E G"9>1*#
1*>0=/0$#"%@Q1V@)32O1*#%@)(V".`(*"%/)$O53'S01>0"%&21*".1*#%@L(*C(W1* (*>0&0$#3L30I32`@f1*>0=^0"%14O@?(D19".@Q1"%@0!&)(J*1* P 
"%1*#%@)(aQ&0#3e(W&?9>e"(=9>)"%@0+%#@0+1*>):/0((W&)*S1*/?".1*&0%S%=9>)!#".$U%@?!@Q1".1*#%@e".@)3{".*Ci&21`1>0(*
"%1*#%@)(,]7O1*>0#@W19".#@e/0*532A?@03d1O;6M%&0@?30(!EFGC/0I!"%$O$#C%S1*>)1*# 6?&0@)30(`O@(*&)9>{"L9>0!I!"%$/0$I".@Q1=@1*$
"./0/)$OI!".1*#%@"%@0+%V-R* "-R!] #!*
(*@)30(U1(* P !9".$kO$#$#Z(W5@)30(E

1%('3*)+0&=!

&

@f".&21%
"_13 !".7"(*(*!60$OC
/)$#"%@1HI(7".@^0"./0$#V%-"/0$I".@Q1J".&21%
"_1O@ (*C(W1*fEqX@f".@f".&01*%
".1*3 !"%H"(*(*!60$#C
J
/0$I".@Q1Sh1>0H]*8,/0232&)o1Jt/)".*1*I".$#$OC"(*(*!60$O53=".o P 5(Z@"\@ P !C%Z6M!$O1Jt(*!7O+?E oEKJ$#%@0+Q(WI321*>07@ P !C%
6?$<15S0(W P "%$)]U%8(W1".1*#%@)(G".4/0$I"%!3',
E G"9>;]U%8(W1".1*#%@
/M!*-R%
((*%V(*/MOA?V]*8%@:1*>0\]U%8/)*232&)1U(*&)9>
"%(UA01*1*#@0+;@0+%#@0%S0A01W1O@0+ 32%5S2A01W1O@)+;]7>0!$mS?".@)3f(*/0"hC:/)".#@Q1*#@0+1*>0!".5S219.EH"%(HO14 P 5(H%@1*>0%@ P !C%6M!$O1E
J@i/21DCi9>)"%((*#(4#(VO@Q1*232&)!3L@)".V1*>)`A)9(D1,]U%8(W1".1*#%@f%@i1*>0@ P !C%76M!$O1Eg-R&)$O$#Ci"%((W=60$#3L".,5(
%&21\"_-B1*J1>0`]U%8:/0232&)o1V+%(4/)"%(W1V".$#$1>0`]U%82(D19"_1*#%@?(!EHU14"9>L]*82(W1".1*#%@S)"
(*!@?(W4(W@)(*(71>0="%* P "%$.1*>0@0!^Q1/)"%W1#"%$O$#CL"%((W=60$#3i/0*232&?o1E4((*Q@n"%(V1>0/?".*1*I".$#$OCi"(*(*!60$O53L/0232&)o1,I(\(*!@?(W53'Sk1*>0]U%82(D19"_1*#%@
6?+%#@)(V1*/?W-R*O1(\]U%8f%@i1>0]*8f/0232&)1E=FH>01O
@)(D1"%O@Q1\O/M(*3i@i1>0]*82(W1"_1O@i/)&21*
#(71*>)".1J1*>0=]*82(W1"_1O@ &)(W14%/0$#1`O1(J]U%8;6M-R*,1>0`]U%8;/030&)o14 P (7"h]H"hC
1*1>0`@0!^Q1V]*82(W1"_1O@E
FH>0\1*#6?&0@)30(7#@ P $ P 3;>)!,"%*\1DC/0I!"%$O$#C;.-1*>030!7.-K"-R!] >Q&)@)3230(7%-#$O$#Z(*@)30(E

fit
engine

fit
door

fit
wheel

chassis

spray
paint
finished car

Conveyor Belt

#+%&)* 29>)!
"_1# l /0*5(W@Q1"_1O@ %-4@f4&21*
"_1*53iU".J4((*!=6)$OC:TG$#"%@Q1


 % 3:.-/ 0/  /21 #*$5 / )3"5 =! / 57435!$69 7"3#*$# !$#&5 890:5;=<

U4w".,"
"_1!+%*C
%-K30#(W1*O6)&21*53!%@Q1*%$(*C2(D1!
(H6M!#@0+
&)(*3O@f
".@C O@)30&)(D1*#(E )U>Jw(*C(W1* >0$O/?(
)
%@0O1*".@?3;@1*$?"$I".+%4@Q&)=6M!U.-Z32I(D1*#60&213: P @Q1(%-O@Q1!(W1EKqX@ )U>J(*C2(D1!
(SQ(*!@)(*%9(G"%*V(*"_1W1!3
"_1 P "%*#%&?(4+!%+"%/0>0I,$O2"_1*#%@?(J1 $O$#1\9"h]w30"_19"nm!".$#$#3i P @19(4%-G#@1!(W19E,FH>)(*30".1":"%*=1*>0@n/025(*(*3
".@)3d(W1*%3c#@e"f"%$<Ns1*#
30"_19".6)"(WE;FH>0;30"_19".6)"(W232!$I(;R*!)1(9V1*>0;!&0*@1`(W1".1*
.-U1*>)
!@ P O%@0@15E
FH>030"_19".6)"(W\I(7&0/k30"_13 -R*5aQ&0!@Q1*$#C
1
"%8%,<14""%$OI(D1#\232!$'%-1>0,&0/213)"_1*`(W1".1*,.-1*>)!@ P O%@0@15E[J@
^0"./0$#=%-" ?U
J"./)/0$OI!".1*#%@iI(,".?
@ G@0!+%A
C @i"%@)".+!!@Q1,2C(W1*L* B@c0oE'J6
@ B@cf>0!$#/)(V1*f!"%*C%&21,$OQ"%3
6)".$I".@?#@0+O@L".@f$O5o1*I!".$'@0!+%C;30#(W1*O6)&21*#%@L@0!1D]*8kE[FH>0
 C@n(W@)(W5(U1*>0=!@0*+C:@)(W&)/01*#%@f"_171*>)=32I(D1*ON
60&21O@
/?O@Q1(U".@?3
%/0&01*(G1*>)4$#"%3
"(([32ObM*@1U/0>)"(W5(.-'/M_](*&0/0/0$#C%EKqr1H".$I(W>0$O/?(32C@)"%#".$#$OC6)".$I".@?

Version 2 CSE, IIT Kharagpur

1*>0$OQ"%3'E\J@0%1*>0V!^0"./0$#=.-G")U4 (*C2(D1! #(\":(*C2(D1! 1*>?"_1V@0<1%9(V"%@)3i!%@Q1*%$I(H1*9"_;=O@d";/)&21*


@01D]U%8k
E 4/?@)32#@0+f%@n1*>0
(*!@)(*3c$OQ"%3nO@d32<bk!!@Q1`(*!+%@19(\.-1>0@01D]U%8kS?1>0;)U4(WC2(W1*!
"%8%(V1>0
*&21*79>)".@0+VO1(71*9"_;\*&21*#@0+/?$OIC 32C@)".I!".$#$#C%E[FH>0,1*#`@)(D1"%O@Q1HO@L(*&)9>f"?U
Jg"%/0/0$##"_1O@:I(H1*>)".1
1*>0(W@)(*%9(J=&?(D1(W@)(*`1*>)(*C2(D1!(D19"_1"_1,!+%&)$#"%4#@1! P ".$I(=t("hCf P !C:-R]gO$#$O[(*!%@)30(9J"%@)3f1>0(".=&)(W1
6?/)*25(*(*3:6?!-R%\1*>0@0!^14(D19"_1*,I(J(*!@)(*3'E

-(

W <#:9;2

Y-R]y^0"%/)$O5(%-?30#".$0"./)/0$OI!".1*#%@)(.-M*5".$ONm1OH(WC2(W1*(K"%* *6?%1(S @ l q(*".@0@0(S_9"%32I"_1O@1*>0"%/C


aQ&0#/0!@Q1(S26M30(*#30@0O1*%9(S0".@)3/)&21**#p!53".^2#"%$?1%%+"%/0>CisU[FJE


 % 3: 5'58!   # 19;5 1  / )5 5 *#  &29-$<#:58 9}!# 1 W! / #& 

l % 6M.19(>)" P 6?5 P !C{/?/0&0$I".@0_]H"%30"hC2(".@)3 ". 6M!#@0+e&)(*3YO@ "d]7#30 P "%*#1DC{%-V32I!"%$J"./0/)$OI!".1*#%@)(E


J@i"%/0/0$##"_1*#%@1>)"_1\]`32I(&)((J>0*=#(V"*6?%14&)(*3f#@L*!1*O P #@0+;32I(*/0$#"53 9"%30OQ"%o1 P ,".1**I".$I(!E l "32#"%1* P 

"_1**I".$I(:(*&)9> "%(L%6)"%$<1f".@)3 l "%32#&0 ".n&?(W53v-R% 1*".1*!@Q1f.-=".@)!!5EU11*#(f32&0#@0+1*5"_1*@15SJ1>0
"32#"%1* P L%6)"%$<1iR l "%30O&0;+19(
32#(*$#"_13 ".@)3Y-t".$#$I(
32_]7@Ej#@)f>&0
".@ 6M!#@0+(:!".@ @0%1
!%L@05".
"
"32#"%1* P H
"_1!#"%$mS"%6M.1I(&?(W531**5(D1%H1*>0\"32#"%1* P 7
"_1!#"%$01`<19(G/)*/?G/M(*<1O@E[FH>04%6M.1G]H".$#82(
O@Q1`1*>)4Q%@Q19".#@0O@)+1*>0\9"%32#"o1* P 7
".1*!I".$sS/0I982(GO1H&0/S2".@)3;*5(D1%(O1G1=O1(U/0%/M!/?Q(WO1*#%@E[FH>0\%6M.1
>)"%(1(*!@?(W\<19(7!@ P #*@0!@Q1-RaQ&0@Q1*$#C;".@)3 6)"%(*3 %@:1*>0I(7#@2-R%
"_1O@S/0$#"%@ O1(H/?"_1*>ZEFH>0,*5".$ONm1O,%@?(D1"%O@Q1
%@1*>)4/)".1*>
/0$I".@0@)O@0+`1"%(*8.-k1*>04*6?%1G#(1*>)".1G&0@0$#((O1G/0$I".@?([1*>)4/)".1*>-t"%(W1G@0%&0+>;"_-B1!G"%@
%6)(W1"$#J#(3211*3S
<1J
"hC;!%$#$OI32]7O1*>f<15EFH>0,1*#`@)(D1"%O@Q19(#@ P $ P 3;>)!,"%*,%-1>0%932!H%-"-R!]O$#$O(W5@)30(E

 / # <  / 2s 7"3# %' =! 

-(

-R] ^0"./0$#(G.-/M!O/)>0!9".$MaQ&0#/0!@Q1(G1*>?"_17%@Q19".#@
!=6M3)323:*5".$ONm1O4(*C2(D1!
("%*
$#"(WH/0*#@Q1*(S032#+%O1".$!%/0#!9(S-t".^ 
"%9>)O@05(!S030O+<19".$!"%!9"%(S"%@)3f(*".@0@)!9(!E



 % 3: 
 $ / / #*=!$ /


"


@L(W14$I"%(*!J/)*#@Q1*!9(7>)"

P /?_]U!*-R&0$I%/)*25(*(*%9(U!6?530323f#@L1>0! 1* %@Q1*$Z32ObM*@1\"%o1 P O1*#(V"%((W2I"_13


] <1>e/0*#@Q1*#@0+)EFH>0
#/M%*1"%@Q1="%o1 P O1*#(,1>)"_1="fI%/025(*(*%,!6?5303253c#@"f$I"%(*!/0O@Q1!/M!*-R%(`O@)!$O&?32
7
1*>0-R$O$#_]7#@0+ `+1*1*#@0+i30"_19"-R* 1>0:=&0@0I!".1*#%@e/M%*15t(9oS1DC/?5(W!1W1O@0+i-R%@Q1(S(*!@?(W#@0+f/)"./M!4zW".
(SZ@0%1*I#@0+
]7>0!@1>0J/0O@Q1!&0@)([&21.-'/)"%/?SQ(W@)(*O@0+]7>)!@1*>04&)(W/0((W5([",60&21*1*%@
@1*>0J!%@Q1*%$)/)".@0$mSQ".@)332I(*/0$#"hC#@0+
P ".O&)(G5(*(".+(G1*1*>0,&)(*!5E[FH>0,(W17!%/0$#^:"o1* P <1DC;1*>)".1U1>0,#!*/0*2!((WG/M!*-R%(UI(732 P #@0+=1>0,$#"(W
!@0+O@)%E FH>)
6)"%(*#
!%
".@)3c1>)"_1"f$I"%(*!@0+%#@0;(*&0/0/M%*1(I(,1i/0&21"f6)$#"98n32.1%@d1*>0:/)"./M!5E 4_] P !5S'1>0
$#"(WJ!@)+%#@0`>)"(7@0;I32":".6M%&21V1*>0`!^0"%o1\(W>)"%/?5(J%-[30<bk!!@Q14-R@Q1(S0-R%@Q1,(W#p!5(!S?<19".$##%S?&0@?32!$O#@0#@0+)S?6?$#32-t"%S?!1%E
1*>)".1VO1\
"hC6?"%(*8%531*/0O@Q1E\FH>0!=6M3)323nI%/)*25(*(*%7!! P 5(J/0O@Q1,%
".@?30(4@iO1(VO@0/)&21\/M%*1\"%@)3
321!O@05(,>0_]g1>0;32%1(`".@d6?:!%/M(*3n1*L"%9>0# P 1*>0;325(W#3d322&0!@Q1="%@)3d"%@)".+(\/0O@Q1O@0+1>0;^0"o1
(W>?"./M(U1*>)*&0+%>"
(W*#(U.-[32%17!%
".@)3)(H#((W&)3:1*1*>)$#"(WU@0+%#@0EFH>0\1*#`!%@)(W1*9".#@Q1(U#@ P %$ P 53:>0*"%*\.1*>030!H.-K"-R!]j#$O$#(*!%@)3)(!E

<!57%'5 !$# 1 + /  5 / !2!#&5 C g-R]g^0"%/)$O5(4%-".&21%.1 P =".@?3L1*9".@?(W/M%*1".1*#%@i"./)/0$OI!".1*#%@)(V.-*5".$ONm1O


(WC2(W1*(H"%*-
( "%&21*%1* P \!@0+O@)\!%@Q1*%$k(WC2(W1*(S*Q"%3;1*9"_;V(*#+%@)"%$M!%@Q1*%$sS2".#WNs1*9"_;4!%@Q1*%$sSQ>0O+>2NX(W/M!53
1*9".#@



@1*$mS2".H@)" P O+Q"_1O@ (*C(W1*


(!S)"%@)3 @iTGqG@0+%#@0`!%@Q1*%$'(*C(W1*
(!E


 % 3:/ 3  !#9q58# =!<1419;!#&5  8  


s*

!1%

&<;0")/

J@ @iTGqG(*C2(D1!I(U"%@ "%&21*%1* P V!@0+O@0,@Q1*%$k(WC2(W1*!fE[@)/21*&)"%$M30#"%+%9"..-"!"%=6M3030O@0+".@ @iTGq


(WC2(W1* I(G(*>0_]7@#@;O+?E 2EKJ@
@iTqKI(""%$<Ns1*#H(*C2(D1! 1*>)".1@Q1*%$I(1*>0J9"_17.-k-R&0$)#@_zD1*#%@;".@?3"%$O$#_]J(K1>0
!@0+O@),1*
%/M!9"_1"_1JO1(J/21*#
".$!;#!@)!C%EGqX@f$#32J232!$I(7.-[!"%(S)"9>?".@0I!"%$32 P I`!"%$O$#3 1>0=!"%*6)&0*!1W1%
]U"(4&?(W53L1*f@Q1*%$1*>0-R&0$[O@_zD5o1O@n9"_1*1* 1*>)@0+%#@0Eqr1,]H"%(41*>)(*/M%@)(*O6)O$#<1DCf%-G1*>)".60&01W1%V1* P ".C
1*>0 -R&0$7O@_zD5o1O@y9"_1*f32/?@)32#@0+e%@{1>0L&0*@Q1(*/?3Y.-J1>0 P !>)#!$O".@)31*>0L325(W#*53y"!$O".1*#%@EyU"%*!-R&0$
^2/M!O!@Q19(G>)" P \(*&0++%(W1*531*>?"_1U-R%H%/21O
"%$M@0!+%C&21*/0&01S21>0VaQ&0#3
-R&)!$kO@.zDo1O@ 9"_1VI(U>0#+%>0$#C
@0%@)$O#@0"%
]7<1>`(*/?5o11J1*>) P >0I$#G(W/M!53`".@?3`"%!$#!9"_1O@EJ$I(*)Sh^2/M!O!@Q19".$%(*&0$O1((W>)_]n1>)"_11*>0/0*5I(W-R&0!$#@_zD1*#%@
1*>0%&)+%>=&0$O1*#/0$#7/?O@Q1(#([*Hbk1* P H1>)".@;(*O@)+%$#U/M%#@Q1O@.zDo1O@EKqX;
@ @iTGq!@0+O@05(!S.1*>0J/)*5I(WU-R&0$)#@_zD1*#%@
".1*H"_15"%9>O@_zD5o1O@/M%#@Q1#([301**#@036C="!%/0&21!5EJ;
@ @iTq(*C2(D1!g#@_zD1(K-R&)!$)#@Q1*,#@)32 P I32&)"%$)C$#O@?32!9(
*5(W&)$<1O@0+,#@6?!1W1* /?_]U![6)"%$#"%@)x.".%@)+41>04C$#O@?32!9(["%(K]U!$#$0"%([>)O+>0![&21*/0&01[-R*g"9>@0J".$#%@0+\]7O1*>-t"%(W1*
1*>0.1*1*$#,*5(W/M%@)(*%EKFH>0,/02((*%U/0*#
".O$#C;@Q1*%$I(1>0,O+@0<1O@:1O#@0+
".@)3:1*>),aQ&)"%@Q1*O1DC;.--R&0!$k16M,O@.zDo13'E
FH>0=$I"_1*1*4I(V"9>0O P 53f6QCL!%@Q1*%$#$O#@0+1>030&0".1*#%@f-RV]7>0I9>L1>0=#@_zD1* P ".$ P =#(V%/M!@f| /M%/0&0$I".$#C 8@0_]7@n"(



Version 2 CSE, IIT Kharagpur

B )C

 
 EFH>0"%1*#%@)(.-1*>0,/025(*(*%U".V32!1*!O@)3 6QC1>030"_19"=+$O5".@053
-R% (*!@)(*%9($O2!".1*53:".$#$k P G1>0
! @0+O@)%EVFH>)(*(*!@)(*%9(J@)(W1".@Q1$OCf%@0O1*J1>0"%=60#!@Q1V1*!/M!9"_1&0*S)1>0!@0+O@0%$I".@Q1J1!/M!9"_1*&)*S?!^>?".&)(W1
1*/M!9"_1&0%SG#((W#%@ +Q"%(@1!@Q1(SU!@0+O@0f/0 m(W/M!53)oS P !>0I$#f*Q"%3y(*/M!3SH!"%@082(W>?"_-B1/?Q(WO1*#%@SH!"%
(W>)".-B1
/?Q(WO1*#%@ZS%19.E[J:
@ @iTGq[!@)+%#@0J]7O1*>; P !@;"%@_Nr60O1/)&21*32("=&?9>
6?!1W1*ZzD6;.-32!1**#@0O@)+=".@;"!&)".1*
-R&0!$2#@_zD5o1*#%@9"_1*-R%K+ P !@ P "%$O&05(K.-k(W/M!53"%@)3="!$O".1*#%@=!%/)"%*531*"\!"%*60&)*!1W1*WNr6)"(W53(WC2(W1*!fEKJ@ @iTGq
(WC2(W1* @0%1@0$OC
".8(" P !>)#!$OJ*7-R&)!$M;#!@Q1SQO1U".$I(*`O@0#Op(/?$O$#&21O@;6C32&?#@0+`/)"%W1#"%$?=60&?(D1O@E
Multi Point Fuel Injection (MPFI) System



Computer

0*2([ l "%$<NXFHO`C2(W1*! 6?530323#@LJ@.@iTGq7U".


1&19-58%'%<#:9;!$#&5  
 &#&9-!#:5  -R]!^2"%/0$O,&)(*(J.-"%$<Ns1*#(WC2(W1*!
(7#@1*$O5%&0@0I!"_1O@"%/0/0$##"_1O@)(
".;K
( $O$#&0$I".J(*C(W1*
(!S P I32!;!%@2-R*@)#@0+)S2"%@)3f!".6)$O,232!
(E
  
% 3:
 " # "1:* 3& / 0/)/)!$1%
O+&0

!$#$O&)$#"%(*C(W1*
(G>)" P J6MV" P !C/M%/)&0$#"%G"%@)(.-%60#$#V=&0@0I!".1*#%@E[!$#$#&0$#"%U(*C2(D1!&)(*&)".$#$#C
"./?(
"=!<1DC#@1!!$#$#(EKqX@:"9>:$O$sS2"`6)"(W\(D19"_1O@;%@0O1*(1*>0\%60#$O\>)"%@)30(*1(/0(*!@Q1#@
1>0\!!$#$mE[U(*I32(SQ1*>0\6)"%(*
(D19"_1O@d/M!*-R%
((W P "%$K1"%(*82((W&?9>"%(,$#"_1O@0+i"f&?(WS(W@)32#@0+i".@)3e!! P O@0+L!%@Q1*%$[((".+%5(\1*i"f>)"%@)30(*15S
8%!/0#@0+1*9"%98L%-H".$#$G3219".#$#(\-R`60#$O$##@0+L/0&0/?Q(W5(!S".@)3d>)"%@)3Nr.b.-7!"%$O$I("%(1*>0
%6)O$#
 P (E:U".$#$>)"%@)3Nr.bI(
*5aQ&0O3:]7>0!@L"%60#$#\ P (H"h]U"hC-R%}"6?"%(*,(W1".1*#%@E[V(J"60#$O, P 5(U"h]H"hC%SO1(7!! P 53:(*O+@)".$(W1*!@0+%1*>
l )04-t".$#$#(,"_1,1>06?"%(*(W1".1*#%@E=FH>)6?"%(*(W1".1*#%@n@0<1%9(J1>0I(".@)3c"%(,(W@c"%(V1>0 l 0L-t"%$O$I(,6M!$#_] " !!*1"%O@
1*>0(*>0$#3 P ".$#&0%S<1G>?".@)30(WNr.b
1*>)43219".#$#(.-M1*>07@2Ns+%#@0+!"%$O$0%-?1>07%60#$#H1*,1*>)J6)"%(*7(D19"_1O@%-?1>04!!$#$21*]7>0I9>
1*>0\%60#$#4>)"(G P 53'E[FH>04>?".@)3Nr.bL&)(D1H6M\!%/0$#1*53
]7O1*>0#@"(W&0
!O@Q1*$#C;(W
".$#$M/0*532A?@03;1*#\#@1! P ".$sEK(*
1*>)".171*>0&)(*!4325(7@0.17-R!$".@C;1!/?"%*C32I(W&0/21O@%-(W P I32&0O@)+1*>0`>?".@)3Nr.bKEHFGC/0I!"%$O$#C ".$#$>)".@?3Ns%bnI(
*5aQ&0O3;1*
6M`"%9>0# P 3:]7<1>0O@L"-R]jO$#$##(*!%@)30(E

-R!] O/M%*1".@Q1&)(*
.-H*5".$ONm1O
(*C(W1*
(,O@{".*Q(W/?"%"./)/0$OI!".1*#%@)("%* " P #%@)#(!S'?O+>1=(*#=&0$I"_1O@S
".#*$##@0\".60#@f
".@)"%+%!@17(*C(W1*
(!S)("_1!$#$OO1*\1"98Q#@0+(WC2(W1*(S0".@?3!%/0&21!7@2Ns6M"%3 ".@f".#!".-B1E
  /
      '
 %
qX@
"%@QC=232*@".#99"_-B1(S51*>07/)O$#.1!"%@(*!$#1".@ *".&01*,/0#$O%1 V%/21O@EV((*Q@"(1*>0H/0#$O%1G(W]7O19>)(1*\1*>) *".&01*
/0#$O%1 30%S"%@e%@2Nr6?Q".93n!%/0&21!,1"%8%5(, P !"%$O$!%@Q1*%$I(,.-1*>0;"%O99"_-B1#@)$#&)32#@0+L@)" P #+"_1O@Sk1"%8%!Ns%bSZ"%@)3
$#"%@)32#@0+\.-)1>07".#!".-B1EqX@1*>) ".&21V/)O$#.1 4232%S.1*>07/0&21*[/?*#232I!".$#$#C`(*"%/)$O5( P !$#2O1DC`".@)3"%!!!$#!9"_1O@`.1*>0\".#!".-B1EK0% 1*>)V("./0$#3;30".1")S1>04@2Nr6?Q".93
%/0&01*!H/0&21*5(SS2".@)3L.Nr%932#@)"_1([%-'1*>0,&)*!@Q1
".#!".-B1/M(*O1*#%@v".@)3 !%/)".(1>0! ]7<1> 1*>0L/0NX(*/?5OA)3Y1*9"%983)"_1")EjU-R*1*>)L@0^1:("./0$# P "%$O&)(
".
%6219".#@03S0<1\%/0&01*(71*>0=30 P #".1*#%@-R% 1>0=(*/?5OA)3 1"98 P ".$#&0(4".@)3 1"%8%5(7".@C !%*5o1* P ,"%1*#%@)(71*>)".14
"hC
6?@)5(*(".C%EGqX@f1*>0I(J!"(WS21*>)=(*"%/0$O#@0+
%-1>0 P ".O&)(H/)"%"%!1*(S0".@)3 1>0!#J/02((*O@0+@031
6?=!%/0$#13
]7<1>0#@f"-R]I(*!%@)3)(!E

 / 5 3 9;


 % 3:
wK

=! / <!?



-(

`58% <! /

 57 /  # / 9 /  !
A>
L>
IK

wK

^>

<&!#&%4 3#& &#&9-!#:5


-(
# <15 `5 b /  39;# <6


$


 qX/?W19".@Q1H&)(W,%-Z*5".$ONm1O,(WC2(W1*(U#@:&0$<1O532#""%@)3;qX@Q1**@)17"./0/0$#ON
!".1*#%@)(U#@)$#&)32 P #32
%@0-R!!@)!O@0+".@?3 &0$O1*#532I"=&0$O1*I!"(D15S2qX@1!@01J%&01*!9(H".@)3(*]7<199>0(E
  /
  
 


qX@" P #30!n!%@2-R*@)#@0+n"%/0/0$##"_1*#%@ZS P I32!c".@)3{"%&)32#n(W#+%@?".$I(`".;+%@0!9"_13d6Cd".!9"%(=".@)3{I%/0>)%@05(*!N
(W/M1* P $OCE:FH>0:30".1"f".;("./0$#3e"_1="L!!*1".#@d/0*5(W/M!<A?3c-R"%
".1*%E FH>0(*;".1*>0@%/0((*3d".@)3e(*!@Q1

 % 3:

Version 2 CSE, IIT Kharagpur

"%(\/)"98%19(J11*>0
!! P !\ P \" @0!1D]*8kEU1,1>0*5! P WNr!@?3'S'/)"%9819(V"%*%932!3S32!%/0((W53'S".@)3n1*>)!@
/0$I"hC%3EFH>0,1O`!%@)(W1*9".#@Q1H".1U1>0 P !*Ns@)3
I(U1*>)".171*>0!! P &)(D1J/)*25(*(H"%@)3:/)$#"hC
1>0 P 3;-R"%5(
"_14"
/)*5321!#@053L%@?(D19".@Q1J".1*EHFH>&)(J<-[1>0O*1DC -R"%5(J".,1*:6?(W>0_]7@f P !C:#@&21*S)%@?="-R9"./0$I"hCQNs&21
#(7!%/0$#1%S21>0@0^1H-R9".=&)(W176?/)$#"hC3 ]7<1>0O@1D]U
(W5%@?30(!E

"5 3%' /  &19;! / 53#&9 

@)(W&) $O5o1*@0#( "%*5"".6M%&)@)30( @Q&)*&)("./0/0$#I!"_1O@)( .-`".$ONs1*#d(WC2(W1*(E


-R!] (*"%/0$Oi"%/0/0$##"_1O@)(.-,*5".$ONm1OL(*C(W1*
(
O@v!%@)(*&0!
$O5o1*%@)#(;". L(*1WNs1*/ 6?h^2(SH".&)32#{aQ&0#/0!@Q15S
qX@Q1*!@0!11!$#!/0>0@C%SGI_]U" P ; P @)(S[O@Q1*$O$##+%!@Q1
]H"%(*>0O@)+n
"%9>0#@05(!S>0%f(W5&0<1DC(*C2(D1!
(S".#
@)32O1*#%@0#@0+
".@)3 -RO+!9"_1*#%@ZS1_C2(!S2".@?3!!$#$'/0>0@0(E

  

 % 3:

;(

`1& 35 3

  
   
 !$#$G/0>)%@05(`".
/?Q(*(*#60$OCc1*>)
-t"%(W1*5(D1=+*_]7#@0+L(*!+%@1.-J@)(W&)`!$#1*%@0I!(Ef $O$/0>0@0:"_1".@Cn/M%#@Q1=.
1*#=!"%*O5(U%&21V"@&06?4%-19"%(*8(4(W#=&0$O1"%@0!&)(*$OCEFH>05(W#@)$#&)32 !%@ P W1O@0+#@0/0&21 P #!V1:32#+%O1"%$Z(W#+%@?".$I(H6QC
32!/)$O_C#@0+`32#+%O1".$?(W#+%@)"%$0/02((*O@0+; \0T19>0@0IaQ&0(S%@ P !*1*#@0+,!$#o1*I!"%$)(*O+@)".$I([+%@0!9"_136C=1>0JI%/0>0@0
1*J&21*/)&21 P %I(*O+@)".$I(!Sh".@?3`(*"%/0$O#@0+J#@)!%O@)+J6)"%(*(W1"_1O@=(*O+@)".$I('#@1*>0%@Q1*$9>)"%@0@0!$sEZY!$#$Q/0>0%@)*5(W/M%@?30(
1*f1>0;&0@0I!".1*#%@)(!! P 53i-R% 1*>0
6)"(W;(W1".1*#%@e]7O1*>0#@W19".#@d(*/?5OA)3d1O;6M%&)@)30(E 0^0"./0$#%S"
6)"%(*`(W1"_1O@LO+>1,
"%@)3L";$O$/0>0@0`1:(W]7O19>f1>0=@2Nr+%%#@0+
=&0@0I!".1*#%@f1:";(*/?5OA?-RaQ&0@)CEJFH>0
$O$'/0>)%@0&)(D1J!%/0$#C;1*
(*&)9>f%
".@?30(U-R* 1>06)"%(*,(D19"_1*#%@f]7O1*>0#@L"-R!] #$#$OZ(*!%@)3)(!E


-(

-(

b $:  &#:9;!$#&5 

FC/0#".$'32!-R!@)(*\"%/0/0$##"_1O@)(%-Z*5".$ONm1O\(WC2(W1*!
(U#@)$#&)32 I(*(*#$O\+%&0I30"%@)\(WC2(W1*!
(S2".@Q1*ON
#((W#$#,(*C2(D1!
(S0(*".1*!$#$#<1Nr6)"%(*3(W&) P !#$O$I".@)!\(*C2(D1!
(E
  
*&     0")/
v+%&)#3253I((W#$O4#([@071>)"_1GI("./)"%60$O7%-(W@)(W#@0+,1>071"%*+1G"%@)3>0%(%@Q1*O1E[JO@0+=6?5%5(["(WC]7>0!@1>0
1"%*+1!O1(!O1*>0Z$O5o1*I!".$%%1>0!
".$"32#".1*#%@E'qX@"7#((W#$#+%&0I30"%@)G(*C2(D1!fS5I((W#$O+%&0I30"%@)[I(Z"9>0O P 53V6C,"
/)&21*[&0@Q1*53@1*>07I(*(*O$#%EKFH>07%&)@13/0&21*G/0&21*5(1*>0V32 P I"_1*#%@-R%g1>07aQ&0#*53`1".zDo1%C
".@)3;bko19(1"989>?".@0+(%-'1*>0\#((*O$#J1=+%&)#32V<1H%@Q1`1*>)J1"%*+15EFH>0V1*#\!%@)(W1*9".#@Q1G%@;1*>0\%/0&01*!*Nr6)"%(*3
+%&0I30"%@)J(*C2(D1! #(G1*>)".11*>)V(*!@)(*O@)+=".@)31>0J1"98!%*5o1*#%@1"(W82(G=&)(W16M4"%1* P "_1*53-RaQ&0!@Q1$OC!@0&0+%>1=8%!/
1*>0V#((W#$#J-R%32 P !+%#@0+,-R% 1*>041"%*+1EKFH>041".+%!1(*!@)(*O@)+=".@)3
1*9"%98%o1O@1"%(*82(G"%*71DC/0I!"%$O$#C*5a&)O3
1*c6?L/0$O!1*53]7O1*>0#@Y"n-R!] >&0@?32*530(.-4I(*@)30(=% P @y$#((W`1OL32!/M!@?32O@)+c@1*>)(*/?3y.-J1>0
#((W#$#,"%@)3:1*>0,1DC/M.-1*>0,19".+%15E

 % 3:

W#*$9;1&:35 

# #:&

<# < 39;

!1%

&#:9;!$#&5

 
 U5(WI32(J1*>0"."%(J.-G"./)/0$OI!".1*#%@)(4".$#*5"%32C32#(&?(*(*3'SM".$ONs1*#`(*C2(D1!
(J>?" P -R&0@)3
@&0!%&)(H%1*>0V"./)/0$OI!".1*#%@)(JO@L&0J P !C 30"hC $OO-R%E74@L^0"./0$#`.-[(*&)9>i".@i"%/0/0$##"_1*#%@fI(J"
9".#$O]H"hC;(*! P "_1*#%@
(WC2(W1*E
   /
 )
$ 21
30")/
qX@
"V9".#$#]U"hC(*! P "_1*#%@(WC2(W1*SQ",!@Q1"%$2*/?Q(WO1**C`
"%O@Q1"%O@?(1*>07&0/0Nm1.NX30"_1H3)"_1",@6?%8#@0+(D19"_1&)(K.- P ".O&)(
1*9".#@)(EVFHI98%1V6?%8#@0+ !%&0@Q1!9(4".30#(W1*O6)&21*53i"%!*Q(*(V32<bk!!@Q1\+%!+%9"./0>)#,$#2!"_1O@)(E,&)(W1*(VaQ&0!&0&0/n".1
32ObM*@1
6M%8O@)+d!%&0@Q1*("%@)3y(*&060O1
1*>0O
(*! P "_1*#%@y*5a&)(W1(EY7-B1!;"d(*! P ".1*#%@aQ&05(D1I("32L"_1
"
&0@Q1*!5SQ<17@0*
".$#$#C1".8(%@0$#C;"=-R!](*!%@)3)(G-RU1*>0(*C(W1*1*@2A)1*>0,(*! P ".1*#%@:"%@)3;/)*#@Q1U1>0\1*I98%!1E[
*5".$ONm1O\%@?(D1"%O@Q1#@;1>0I(7"./0/0$#I!"_1O@;I(G1>)"_17@),"`aQ&05(D1H#(U
"%3041=1>0%/0&01*!5S<1H=&?(D17/0O@Q1U1*>0V1*I98%!1
%H32I(W/0$I"hC1*>)\(*".1U&0@?" P "%O$I".6)O$#<1DC
5(*(".+J6?!-R%\1*>0," P "%+%J>&0
".@ *5(W/M%@?(W41*#
m".6M%&21 .(W5@)30(9!^/)O(S
(W;1*>)".1V1>0!&)(W1*%(\32:@).1,@0.1#!".@CL32$#"hCL".@?3L+%!1\"
-R!$#O@)+ %-G>)" P O@)+;%6219".#@03iO@)(W1"%@Q1\(*&0$O1(E\4_] P !5S
"%(,]U;32I(*!&)(*(="f$OO1W1$O;$I"_1!;tO@y5.E E oSZ1*>0I(`"%/0/0$##"_1*#%@eI(`".@e!^2"%/0$O
%-H"L"_1!+%*CL%-H"%/0/0$##"_1O@)(,1*>?"_1`I(
O@L(*%`"%(*/Mo19(J32ObM*@Q1J-R* 1>0`.1>0!V32#(&?(*(*3f"./)/0$OI!".1*#%@)(E)%J!^0"./0$#%S0 P !@fO-K1*>0`(*&0$O1(J"%*,/0232&)!3
zD&)(W1V"_-B1! %:5!(S)@0%1*>0#@0+;&0@Q1_]U"%3I(J+%O@)+1*;>)"%/0/M!@|~1*>0I(J
"hC@0.146M`1>0="%(*`]7<1>f1*>0.1>0!\32#(&?(*(*3
"./0/)$OI!".1*#%@)(E

 % 3:

2#& "  $ / !#:5

!1%

*

0

'` I7k
3

ud=>)" P =".$#"%30C:/M%#@13L&2141>)"_1V1*>0I(V6?%8L!%@2A)@)(JO1(*!$O-1
1*>0(*.-B1D]H".#((W&)(J#@i"%$<Ns1*#=(WC2(W1*(E44_] P !5S)#@
321=6MV".6)$O41*(*!J1*>0,(W%-B1D]U"%*7I((W&05(#@ "/)*/?G/M!9(W/M1* P %S]UJ@031=>)" P 4"`6)"(WIJ!%@)!!/21&)".$M&0@)32(W1"%@)32#@0+
%-1*>0&0@)30!$OC#@0+ >?".932]U"%*EVud1*>0*!-R%=#@i1*>)#(,(*o1O@i1*Cf132 P $O/n";60"3L&0@)30!9(D19".@)32#@0+ .-G>0#+%>c$O P $I((W&05(


Version 2 CSE, IIT Kharagpur

%-J1*>0&0@)30!$OC#@0+n>)"%30]U"%*
#@Y"c*5".$ONm1O:(*C2(D1!fE{0"c% 32!1".#$#3(W1*&)30C{.-J1>0 &)@)32!$#CQ#@0+c>)".932]H".;#((*&0(S
]U-R\1*>0"%30!V1*e 5rE#+)E=(*>0_]J(," (*O/0$#232$[.-" ".$ONs1*#(*C(W1*O@c1**
(\.-<19(,O/M%*1".@Q1\-R&0@)1*#%@)"%$
60$#2982(!
E J@0$#((7%1*>0*]7I(W@1O@03S?".$#$Z&04(*&06)(*aQ&0@1430#(&)((*O@)(7]U%&0$I3O/0$##!<1$OCf"%((*&0`(W&)9>i"232$mE V6)(*! P 
1>)"_1J#@L#+)E0S1*>)=(W@)(*%9(U"%*,#@Q1*!*-t"%!3 ]7<1>1*>0`#@0/0&014%@?32<1O@0#@0+
60$#98kS2]7>0I9>fO@1&0*@fI(J@0@05o1*53;11*>0#@0/0&01
#@Q1*!*-t"%!%EFH>0%&01*/0&21,#@1!*-t"%!%Sk%&21/0&21`@)32O1*#%@0#@0+?Sk"%@)3L1>0
"%1*&)".1*%\".=#@Q1*!*-t"%!3nO@d" !%/0$#!!@Q1"%*Cf
".@)@0!5E
qX@1*>),-R%$#$O_]7#@0+)S]U60O!)C:325(*!*#6?\1>0*$O5(U.-1*>0`32Obk!!@Q17-R&0@)1*#%@)"%$'60$O2982(H.-["*5".$ONm1O(*C(W1*

(

sensor

Input
Conditioning
Unit

Input
Interface
RealTime
Computer

Output
Conditioning
Unit

Human
Computer
Interface

Output
Interface

actuator

2(

#+%&0 [

operators
@L232$.-K"

l ".$ONXFHO`C2(D1!

 $5 /

0 
w(W@)(W7%@ P !*1(H(W\/)>QC2(*#".$9>)"%"o1!#(W1*IJ%-O1(7@ P #*@0!@Q17O@Q1$O5o1*I!"%$k(*#+%@)"%$#(E[J@f^0"./0$#,." (W@)(*%H#(7"/0>0%1*%N P %$O1".I4!!$#$']7>0I9>!%@ P W19(G$#O+>Q1H@0!+%C#@Q1*!$#1*#".$k!@0*+C%E[ ]7#30 P "%*#1DC
%-Z1*/?".1*&0\"%@)3

/0((*&0*,(*!@)(*%9(H".\"%$#(*&?(W53'E 1*/M!9"_1&0\(*!@)(*%U1DC/0I!"%$O$#C;%/M!9"_1(U6)"(W53:@:1>0/0O@)!O/)$O,.-K" 
E

F!/M!9"_1*&)*(*!@)(*%9(U6)"%(*3 %@
".@C;.1>0!7/)>QC2(*#".$k/0O@?#/0$O5(7".$I(W!^I(W1E[07^0"./0$#%S2@0\1DCQ/M.-1*/M!9"_1&0`(W@2N
(*%H!/0$#_C2(1>0/0O@?#/0$O\.- P ".#".1*#%@;%-!$#1*#".$k(*#(W1"%@)V]7<1> 1!/M!9"_1*&)*t".$#$O53 
"    WoEG /0((W&)*\(W@)(W
1DC/0I!"%$O$#C4/?".1*(6)"%(*3,@,1*>0        G/0#@)#/0$#%ETG*5(*(*&0[(W@)(W(k6?"%(*3,%@%1*>0/0>C2(WI!"%$./0O@?#/0$O5(Z"%$#(*7^2I(D15E

! 3 / %'59;5 &

}D bH}D

&C $H$C C D E

9}! 3!$5 /



J@"%o1&)"_1%U#(H"%@QC
32 P #!41>)"_1U1"%8%(O1(H#@0/0&219(G-R%1>0,%&21/0&21HO@Q1!*-t"%\.-"=/0&21*7".@)3 %@ P !*1(
1>0(*!$#o1*I!"%$[(W#+%@)"%$#(V#@1L(W/0>C2(WI!"%$["%o1O@)(\%@c<19(,!@ P O%@0@15EFH>0/0>C2(WI!"%$["%o1O@)(\
"hCL6?
#@n1>0-R%..1O@SK9>)".@0+
.-H1*>)!"%$mS!$#1*#".$sS/)@0!&0
".1*I.SK%`/)>QC2(*#".$G9>?".9"%o1!#(W1*I!(\%-7(*%;62zD1(E /?/0&0$I".="o1*&?"_1*
I(Z"H.1%5EZJ5"_1!9(".".$I(W P !C4@0$#C4&)(*3'EU(*#325(!Sh(* P "%$_>C30"%&0$OI[".@?3,/0@0!&)".1*I"%1*&)".1*('"%*"%$#(*7/?/0&0$I".5E

#&6 <  `5 3# !$#&5 <# <6  <#&!


H}B B IH &H

0 
 
 

 FH>0f!$#1*#".$7(*O+@)".$I(=/)*232&)!3Y6Cy"c!%/0&21!;".@y9".!$#Ce6?L&?(W531d32#o1$OC
3  P "%@c"o1*&?"_1*E`FH>)!%/0&21!(W#+%@?".$I(4&)(*&)"%$O$#Cf@0!53c!%@)32O1*#%@)O@0+ 6?!-R%=1>0!Cc!".@c6?&)(*3n6QCf1>0
"%1*&)".1*%5EFH>0I(
2
I(,1**53  
    %EL2O#$#"%*$#C%SO@0/)&21@)32O1*#%@0#@0+LI(aQ&0#*53i1i6?;".*#3c%&01`%@{(W@)(*%`(*O+@)".$I(,6?!-R%
1>0!CL!"%@i6M"%/21*53L6C:1>0!%/0&21!5E40V!^0"./0$#%Sk".@)"%$O+;(W#+%@)"%$#(4+%@0!9"_13f6CL"
/0>0%1*.N P $<19".I$O$K".`@0*
".$#$#C
#@L1*>)`O$#$O P $<19(79".@0+`".@)3L@)!31;6M@)32O1*#%@053f6?!-R%1*>)!Cf!".@L6M=/)*25(*(*36Cf";/)&21*EJFH>0`-R%$#$O_]7#@0+;".
(*%`#/?W19".@Q1J1DC/?5(J%-[!%@)30<1O@0O@)+:!"%*O53%&214@L"h](*O+@)".$I(7+%@0!9"_136C(*!@?(W(J"%@)3L32#+%O1"%$(*O+@)".$I(7+%@0!9"_13
6C:!%/0&21!9(

)(
058&!267!
 %+ 3:#9;!$#&5 B

[%$O1"%+%"./0$#<AM!"_1O@f#(4@0%
".$#$OC;aQ&0#3:1*;6M`!"%*O53:&21J1
".19>1*>)-R&0$#$(!".$#
W( @)(*% P %$O1"%+%`&21*/0&01,]7O1*>n1*>0-R&0$#$(*".$# P %$O1".+`#@0/0&21\1* 1*>0#@1!*-t"%!=.-U":/0&21*E`)%\^0"./0$#%S'" (W@)(W
O+>1/)*232&)! P $<19".+U#@1*>)JO$#$O P $<19(["%@0+%S.]7>0*5"%(K1>0J#@0/0&21G#@Q1*W-t"7.-"!%/0&21!G
"hC*5a&)OU1*>0J#@0/0&01
(W#+%@?".$k$O P $k1*
6M.-Z1>0%9327.-" P %$O1E

*0E 0 58&!267
 1 1
0/3# !$#*36 [%$O1"%+% $O P !$H(*>0<-B1O@)+dI(.-B1*@YaQ&0#3d1*e".$##+%@{1>0 P %$O1"%+%;$# P !$U+%@0!9"_13{6C{"
(W@)(*%7]7O1*>f1*>?"_1V"!/21"%60$#,1*1*>)=/)&21*EH0J^0"./0$#%SM"
(W@)(*%7
"hC:/0232&)! P %$O1"%+%,#@f1*>0`9".@)+%,NX0E\,`1
 0E\, P %$O1S2]7>0*5"%(U1>0O@)/0&21J#@1!*-t"%!\%-1>0`/0&21*7
"hC:"%!/01 P %$O1"%+%\%@0$#C;#@ 1>09".@0+\%-1 P %$O1E[qX@
1*>0I(7!"(WS1*>0`(*!@?(W P %$O1"%+%\=&)(W1J&0@)32*+$O P !$(*>0O-B1*#@0+
6M-R%,<14".@6?&?(W53 6C
1>0`/0&21*E

Version 2 CSE, IIT Kharagpur

 /  7"< 39 ) 368 0/3# !$#*36  #& !$ / # <6

)E

0aQ&0@)CY"%@0+%i(*>0O-B1*#@0+I(;%-B1*!@j&)(W53 1*30&)f1>0n@0#(*
 /M%@)!@Q1(VO@d":(*O+@)".$sE#@i".@C1DC/?5(V%-G@0#(*=2!!&0\O@c@)".*_] 6)"%@)30(,".@)3L1*>0(W#+%@?".$=&)(W1\6M(W>0O-B1*53L-R% 1>0
@0%I(*\6?".@)30(7(*1*>)".1J@0%I(*,".@6?,A?$<1!3 %&215E

#:6 32

5 < `5  / #:5

E 0 
/ %  1
 C 1DC/?.-4(*#+%@)"%$G232!%@ P (*#%@c1*>)".1I(`-RaQ&0@Q1*$#Ce".*#3e&2130&0*#@0+d(W#+%@)"%$
@)32O1*#%@0#@0+{#@ P %$ P 5(
9>)".@0+O@)+e30O1 &0!@Q1;O@Q1".$O1*!@)".1*#@0+&0!@Q1:".@)3 P IN P ("0EJ@0%1*>0;1DC/?c(W#+%@)"%$
30J%@ P !9(W#%@1*>)".1GI(K-R*5aQ&0!@Q1*$#C=&?(W53#(!%@ P (*#%@.-'".@)"%$O+,(*#+%@)"%$#(K1`"`@)(W1".@Q1"./0$#O1*&)32V/0&0$I(WH1"%O@
(*&)9>
1*>)".171*>0=/0&0$I(W9"_1%7/0&0$I(*]7#31>L#(4/0%/M%*1*#%@)"%$?11*>0 P %$O1"%+%,$# P $mEH%@ P (*O@:%-K"%@)".$#%+
(*O+@)".$I(U1*;"/0&)$#(*
1*9".#@L#(V.-B1!@i@)5(*(".C;-RV#@0/0&01V1:(WC2(W1*(\(*&)9>n"%(




 1*>?"_1\30:@0%1V/)"(*(V32O1
&0!@Q1E

! /  b5 / %' / 9-5 3: 9;# / 9 3# !

from
Processor
Bus

D/A
register

D/A
Converter

#+%&0

 ([J@nV&21/0&21JqX@Q1*W-t"

to
output
signal
conditioning
unit

=!$ / b29-  <#&!


  *
"%$O$#C;
"%@)30(U-R% 1>0UT "%*32$O P *53
1*1>0`"%1*&)".1*1>0%&0+>"%@&21*/)&21JO@Q1!*-t"%E
4@{%&21/0&21#@Q1*W-t";@ P !*1(\1>0:(W1**53 P %$O1"%+%O@Q1n".@)"%$O+-R% ".@?3d1*>0@{%&21/0&21(`1*>0I(1L1*>):"%1*&)".1*%#!&0<1*CE
FH>0I(7%-[!%&09(*\]U%&)$#3aQ&0#*\1*>) P ".$#&0+%@0!9"_13:1*
6M`]7*O1W1!@f%@i"!+#(W1*`t(*!=#+)E oEGqX@i"%@f%&21/0&214#@Q1*!*-t"%!%S0#@
32U1*/030&)".@f".@?".$#%+=&21*/)&21S21>0UT (*!$#1(H"30"_19"!+#(W1*H.-Z1>0,%&21/0&21J#@Q1*!*-t"%!\"%@)3]7*O1*5(1*>0@055(*(".C
30".1"1i<15ELFH>0
1D]UL"%O@e-R&)@)o1O@)".$60$O2982(%-7"%@{%&21/0&21=#@Q1*W-t";".;(*>0_]7@eO@#+)E EfFH>0;#@Q1*!*-t"%!1"%8%(=!".
%-1>0=6)&2bM*#@0+:"%@)31*>)`>)".@?30(W>?".8%`!%@Q1*%$"%(*/?5o1(E7J@)"%$O+1*:30O+<19".$!%@ P (*#%@#(J-R*5a&)!@Q1*$#C30!/0$#_C%53 #@i".@L#@0/0&01
#@Q1*!*-t"%!%E#O$I".$OCS032#+%O1".$1*
".@)"%$O+!%@ P (*#%@;I(H-RaQ&0!@Q1$OC;&?(W53 #@L".@%&21/0&21J#@Q1*!*-t"%!%E

qX@ 1*>0,-R$O$#_]7#@0+)S2]U32#(&?(*(U1>0O/M%*1"%@14(W1*/)(H.-[".@?".$#%+`1;32#+%O1".$(*#+%@)"%$%@ P ! 9(W#%@nmHoE

Voltage

Time
@1O@&0&)(HJ@)"%$O+[%$O1".+

,(

#+%&0

<2:586A!$5 #:68#&!2 `5  / $#&5

5
  1
 B
VO+<19".$G!%/0&21!9(`!"%@e@0.1`/025(*("%@)".$#%+L(*O+@)".$I(!E;FH>)!-R%%S".@)"%$O+(*#+%@)"%$#(,@03d1L6?:!%@
:

P W13i1*i32#+%O1"%$[-R%fE
@)".$#%+(W#+%@?".$I(".@:6M@ P !*1*531*
32#+%O1"%$?-R*&?(W#@0+
"!O9&)<1*C
]7>0Q(W\60$#298;32#"%+%9".I(U(*>0_]7@ O@fO+?E2E 4(*O@0+1>0
4
60$#29830#"%+%9". (*>0_]7@#@:O+?E[2SQ"%@)".$#%+`(*O+@)".$I("%*7@0*
"%$O$#C!%@ P W131*=30O+<19".$0-R* 1*>)*&0+%>1>07-R%$#$#_]7O@0+`1D]
".#@
(W1*/)(

)(

2"./0$#1*>):".@)"%$O+L(W#+%@)"%$Jt(*>0_]7@eO@#+)E %,".1`*+%&0$I".#@Q1*! P ".$I(!EFH>0I(`(*"%/0$O#@0+i".@e6? 32%@0


6Ce"L!"%/)"%!<1%
#!&0O1*C
1*>)".14(D1%(U1>0 P $<19".+%,$# P !$I(!EFH>0`(W1**53 P %$O1"%+%\$O P !$!".@f6M`32I(*!*!1*#p!3EG7-B1!4("./0$#O@)+1>0="%@)".$#%+
(W#+%@?".$[t(*>0_]7@O@LO+?E %S0"
(D1!/]U" P -R% "%(7(*>0_]7@O@L#+)E #(7621"%O@)3'E

Version 2 CSE, IIT Kharagpur

Voltage

Time
#+%&0  [J@)"%$O+[%$O1".+=%@ P W13
1;4I(*!*!1*`)%

2(

Analog Voltage from


signal conditions

Sample and Hold


A/D Converter
Data Register
16
Binary digits

o o o

1(

#+%&0= G%@ P  (*#%@:%-"%@4@)".$#%+;#+%@)"%$k1*;" 60O1VUO@?".C

&06?

%@ P W1H1>0(W1**53 P "%$O&0=1*:";60O@?".C:@&0=6M!V6C &)(*#@0+:".@i"%@)".$#%+1:32#+%O1"%$@ P !*1*`t>,HV"%(J(*>0_]7@L#@iO+?E


S0"%@)3 (W1**\1>0`32#+%O1".$ P "%$O&0#@f"*+%I(D1!5E

VO+<19".$K1f"%@)".$#%+f@ P !9(*O@n!"%@c6M;!"%*O53i&21,1*>0%&0+>d"/0$O!@Q1"%*Cn(*1%-%/M!9"_1O@)(Eud
$O5" P <1="(,".@
!^!#(*
1i1*>) "32!=1*iA?+%&0:&21=1>0301"%O$I(.-71*>)!O9&0O1*Cc1*>)".1".@/M!*-R% 1*>0f32#+%O1".$1*d".@)"%$O+i@ P !9(W#%@
J4HoE

  03s

` I7k


ud@0_]{32I(*!&)(("H-R!]e8!CV9>?".9"%o1!#(W1*I!(k%-2*5".$ONm1O(*C(W1*
(!EZFH>)(*G9>)".9"%1**I(D1#('32I(D1O@0+&0I(W>"%$<Ns1*#(WC2(W1*!
(k-R%
@0@2Nr*5".$ONm1O(WC2(W1*!
(E4_] P Sk1>0
*5"%32V
"hCi@).1*1>)"_1="%$O$K1>0
32#(&?(*(*3d9>)".9"%1**I(D1#(4
"hCi@).16?;"%/0/0$##".60$#
1n P !Cn"%$<Ns1*# (*C(W1*fE l "%$<Ns1*# (*C2(D1!
(=! P !(W&)9>Y".@@0%%&)(9".@)+%;%-4"./0/0$#I!"_1O@)(="%@)3{/0232&)1(1>)"_1"
+!@0"%$O#p".1*#%@%-V1>0L9>)".9"%1*!I(D1#(=#@Q1*{"e(W!11>)"_1;I(
"./)/0$OI!"%60$# 1e"%9> ".@?3y P !C(*C(W1* I(
32<;!&0$<15%
E 4Obk!!@Q1
"_1*+%*#(U.-K".$ONs1*#(*C2(D1!
(7
"hC;^2>0#60O171*>09>)".9"%1*!I(D1#(G1>)"_1J]UI32!@Q1*O-RC;1;32ObM*@1J!^1*!@Q19(7%7
"hC:@).1J P !@
!^>)O60O14(*%,.-1*>0`9>)"%"o1!#(W1*I!(U"_1J".$#$sE
E

#&%49-5 ! / 2# =!


* &  P *CV*5".$ONm1O[19"%(*84I("(*(*2I"_13\]7<1>=(*%K1*#@)(W1*9".#@19(!E V@0[-R% .-21*#G@)(W1*9".#@19(
1*>)".1#( P !Ci@cI(32"32$#O@05("%((W2!#".1*3n]7<1>d1"%(*82(!E
19"%(*8n32"32$#O@0
(*/?5OA)(\1>01*#
6?!-R%]7>0#9>d1>0
1"(W8c=&)(W1=/)$O!1*:"%@)3d/0*232&?
1>0;(*&0$<19(!E 41*>01DC/?5(`%-1O#@0+n@)(W1*9".#@19(".;32!$I"hCc"%@)3e32&09"_1O@ m(W
1*#%@ E .oEqr1#(\1>0*5(W/M%@?(W#60#$OO1DCL.-1*>0
"%$<Ns1*#/?".1*#@0+(*C2(D1! l F ,)V1*!@)(*&01>)"_1`"%$O$K19"%(*8(\!!1

Version 2 CSE, IIT Kharagpur

1*>0OU(*/?5o1* P J
 1*#,@)(W1*9".#@19(!EudV(*>)".$#$?!^0".O@)4#@:$I"_1*9>)"%/21*(G>0_] ".@ l F ,;!".@:!@)(*&0J1*>?"_1G19"%(*82(G!!1
1*>0O7(*/Mo1 P \
 1*##@0+;!%@)(W1*9".#@Q1(1*>0%&)+%>f"./0/0%/)*I"_1419"%(*8:(*9>)32&0$##@0+
(D1".1*!+O5(!E

*0E  =`5 /$/ 19}!&< &! / #&! / #&5  

FH>0=@0%1*#%@c.-G*1*@05(*(4O@c*5".$ONm1O(WC2(W1*!
(V#(,32Obk!!@Q1V-R% 1>)"_1,&)(*3i#@
1*>0!%@Q1*!^Q17%-Z1*9"%30<1O@)".$'(*C(W1*
(!EKqX@*5".$ONm1O,(WC2(W1*!
(S0*1*@05(*(O/0$##(H@0%1H@0$#C;$O+%I!"%$k!%*5o1@0((G%-Z1>0
*5(W&)$<19(!S260&01J1*>0`1*#"_1J]7>0I9>1*>0(*&0$O1(J"%*,/0232&)53#(7#/?W19".@Q1EU$O+%I!"%$O$#C:*17*5(W&0$O1J/0232&)53 ".-B1*
1*>0`30"%30$O#@0,]&0$I3:6M`@)(WI32*53 "(7".@O@)!%*5o1H*5(W&)$<15E

Actuators

Real Time Computer

Environment

Sensors

2(

#+%&0  g29>0
"_1*I l !/)*5(W@19"_1O@:.-[J@.G=6M303253 l "%$<NXFHO`C2(W1*!

q%  <

)E  ('    P "%(W1".zD%<1DC.-'".$ONs1*#7(*C2(D1!


(G"%*7=6M303253O@
@?"_1*&)*` _rE4@;!6?5303253
%/0&01*!(WC2(W1*!
#(/0>C2(*#".$#$OC W=6M30303 4O@<19(K!@ P O%@0@1K".@)3=.-B1!@!%@Q1*%$I(<15E#+)E \(*>0_]J("\(9>0!
"_1#G*/0(*!@Q1".1*#%@.-M".@
!6?530323(*C(W1*fE4([(*>0_]7@O@O+?E 0S.1*>07(*!@)(*%9(Z%-01*>)U"%$<Ns1*#U!%/0&21![$O$#130"_19"J-R%1>0H!@ P O%@0@15S
/)"%((71>0! @f1*;1>0="%$<Ns1*#=/0&21*4-R4/025(*(*O@)+)EJFH>0%/0&01*!5SMO@L1&0@i/)"%((*(J#@2-R*
"_1O@R/025(*(*3
30"_19"U1
1*>)"%1*&)".1*(H1:!"%*C:&2141>0=@)5(*(".C;]U%8:@L1*>0!@ P O%@)@Q1S)]7>)#9>L(*&0$O1(J#@n!%@Q1*%$#$O#@0+;(*%
9>)".9"%1**I(D1#(.-71>0!@ P O%@0@15Ee2 P "%$G!^2"%/0$O5(=%-J!6?530323Y(WC2(W1*(]U!:32I(*!&)((W53{O@ %E E 2EeJ@
^0"./0$#.-7".@d!6?530323e(*C2(D1! 1>)"_1`]U]&0$I3c%-B1*@d-R#(1*>0

 @L&)$<1<NXTK%#@Q1)&0!$GqX@_zD1*#%@v* @iTqW,(WC2(W1*!
32I(*!&)(*(*3 #@A^0"./0$# %-K5.E E 2E

>

2K

\*

\*

 !  / # !$#&9-2&#&!
$ b

E 0
) 
9)  0H1*9"%32O1*#%@?".$'@0@2Ns"%$<Ns1*#(WC2(W1*!
(J("_-R!1DC:".@?3 !$#I".60#$OO1DC:"%*,#@)32!/M!@?32!@Q14I(*(*&05(!EG4_]HN
 P ! 5SO@e
".@Ci"%$<Ns1*#;(WC2(W1*(\1>0(*1D]UI((W&05(`".O@Q1*I!".1*!$#Ci6M%&0@?3n1%+1*>)!
".8#@0+1*>0          E
%1*,1*>?"_1V" 
(*C2(D1! #(J%@01>)"_1\32(7@0%1V!"%&)(*`".@C 30"%
".+%, P !@f]7>0@L<14-t".#$#(EU
(WC2(W1*!}%@f1>0
'
.1>0!>)".@)3SQI(U%@041*>)".1U".@;/?".1*J-R$#%@)+32&09"_1O@)(%-'1*#V]7O1*>0&21H^2>0#60<1O@)+"%@QC-t".#$#&0*5(!E[ (*".-R1DCQNX<1#".$
(WC2(W1* I(
*5aQ&0O3y1*y6?i>)O+>0$OCY*$OI".6)$OL(*O@)!n".@C{-t"%O$#&0L.-,1*>)i(WC2(W1*! !"%@ ".&)(*L^1!@)(* P i30".
"%+%(E ud
!$I".6M%9"_141>0#(J#((W&)\#@i1*#%@ E 2E

,0E ` 539  /R/  39 ) 

W/ 1:#& &

C E D

\,

*5".$ONm1O=(*C2(D1! &)(*&)".$#$OCf@030(41* *5(W/M%@?31* (* P !9".$O@)30!/M!@)32@Q1\ P !@Q19(J]7O1*>0#@ P !C(*>0%*1


." @)3(W1*#1[1*#76M%&)@)30(EK)%[#@)(W1".@?%SQ@)(WI32"\9>)!#".$2/0$I".@Q1G"%&21*".1*#%@(WC2(W1*}t(*! ^0"./0$# %-'5.E E %S
]7>0I9>@0<1%9(U1*>0=/0*+%((U.-["
9>0!I!".$Z*5"%o1O@"%@)3f@1*$#(U1>0`9"_1.-K*5"%o1O@ 6C9>)".@0+O@)+1>0=32Obk!!@Q1
/)".9".!1*!9(
%-`*5"%o1O@ (W&?9>j"%( /0((W&0%SH1!/M!9"_1*&)*S4".@)3j9>0!I!".$,@)@Q1*9"_1*#%@ZE FH>05(Wc/)".9".1!9(;".
(W@)(*3;&?(W#@0+
(W@)(*%9(A0^253:#@:1>0`9>0I!"%$k*5"%o1O@ 9>)"%=6M!5EFH>)(*,(*!@?(W(
"hC;+%@0!9"_1V30".1""%(*C@)9>0%@0&)(W$#C
"_1K32<bk!!@Q1".1*(EFH>)!-R%%S1*>)"%$<Ns1*#(*C(W1*=&)(W1/025(*(30"_19"7-R%w".$#$%1>0H(W@)(W(@)&0!@Q1*$#C%S5.1>0!]7#(*
(W#+%@?".$I(K"hC=6?J$#(W1G".@?3=1>0J(*C(W1* 
"hC=
"%$<-R&0@?o1*#%@ZEFH>05(WJ(*C2(D1!
(".@6?J!%@)(*I32!31*6M7@0@2Nr301**#@0I(D1#%S
(W#@)!1*>0=6?>)" P OJ.-K1*>)(*C(W1* 30!/M!@)30(4%@f1>0=!^2"o1J1O#@0+;%-KO1(V#@0/0&219(!EJ @0%@2NX32!1*!O@)#(W1*I/)&21".1*#%@
#(J%@0#@L]7>0I9>f1D]&0@)(J&?(W#@0+1*>)=(*"%`(W!1J.-[O@)/0&21V30".1"
".@L/0232&),1D]U;32I(D1O@?o1V(*19(7.-[%&01*/0&21\30"_19"O@f1>0
1D]&0@)(E

\*

Version 2 CSE, IIT Kharagpur

# )! / # '  !$$ 1 '29%0! / 39}!& /  

)E 5

qX@f"%@C;*5".$ONm1O,(WC2(W1*(S1*>),30<bk!!@Q14/?@0!@Q1(H%-Z1>0(WC2(W1*!
." @)"_1&0"%$O$#Cn32I(W1*O60&01*3{"((\]7#32$OCe(*/0*5"%3c+%%+%9"./)>0#$#"_1O@)(!E:qX@(W&)9>{(*C2(D1!
(!SZ1*>0 32<bk!!@Q1= P @19(,.O@Q1!(W1\".I(W=".1V1>0+%!+%9"./0>)#".$#$OC(W/)".9"_1`$O2"_1*#%@?(!EFH>0*!-R%%S?1*>05(W P !@Q1(V
"hC%-B1*@n>)" P 1*6?>)"%@)32$#3
$O2".$#$OCy"%@)3 (*/?@)(W5(/030&)53y1{1*>)! 1*/0 P !@Q1
 P *$#"32O@)+c%-\1>0i&0@?32!$OC#@0+=&0@0I!".1*#%@ @01D]U%8kE
FH>0!-R*S.1>0V(*!@)(*%9("%@)31*>0\"%1*&)".1*%9([
"hC6?V$O2!".1*53;"_11>04/)$#"(G]7>0!J P !@Q19(G".J+!@0".1*3EJ@ ^0"./0$#
.-Z(*&)9> "(*C(W1*#(H"/?!1*%$#!&0A)@)!C/)$#"%@1H32I(D1*#60&213  P !U"=$I".+%4+%!+%9"./0>)#J"%*5"0EKU1U5"%9>:3)"_1"(*%&09SO1

".8%5(U+%23 325(W#+%@f(*!@)(*\1*
$#".$#$OC:/0*2!((G1>0`30".1"6?!-R%,6?O@0+
/?"%((W53:@:1;"!!@Q1*9".$'/)*25(*(*%5E

@i".@Cn30#(W1*O6)&21*53{"%(]U!$#$G"%(=!@Q1"%$O#p!53c"%$<Ns1*#
(WC2(W1*!
(>?" P 
"-R!5326)"%98d(D1*&?o1*&)*;"(`(W>)_]7@d#@O+?E  E:qX@
1*>05(W,(*C(W1*
(!SQ1*>)\(*!@)(*%9(&)(W&?".$#$OC
(*!@)(*41>0\!@ P O%@0@1U/?*#232I!".$#$#C%E[FH>0,(W@)(W53:30".1"".6M%&21U1*>)V@ P #*@0!@Q1
#(J/0*2!((W53;1;321!#@01>0`*1* P "%1*#%@)(H@)5(*(".C%EFH>0*5(W&)$<19(7.-1*>0=/0*2!((W#@0+
".,&)(W53 1*;!"%*C;&21
1*>0V@0!((*"%*C*1* P J"o1*#%@?(%@;1*>0\!@ P O%@)@Q11*>0%&)+%>1*>)\"o1*&?"_1*(S%]7>)#9>;#@;1&0@:".+Q".#@;!".&?(W4"9>)".@)+%
1*1*>)*5a&)O39>)".9"%1**I(D1#(G%-1>0`@Q1*%$#$O53;!@ P #*@0!@Q1S0"%@)3 (*%@E

Actuator

Sensor

Actuator
Processing

Sensor
Processing

Computation

Environment
#+%&0
2E

)E

 (0326?"%98 Q1*&?o1*&)*,.-

l 5".$ONrFH#2C(W1*
(

/ #&!#:9;2:# !

+
)  F"(W8<1#".$#<1DC`I(G",5"%(*&0*H%-M1>04!(W1.-M-t".#$O&07.-"\19"%(*8MEKF"%(*8O1*I!".$#O1DC`#(321!O@0536QC
^0".#@0#@0+4>0_]Y<1#".$2".G1>0H*5(W&)$<19(/)*232&)!3=6QC,1>0U1"(W8,1V1>0H/0%/M!-R&0@)o1O@0#@0+,.-01>07(WC2(W1*!fEK *5".$ONm1O
(WC2(W1* 
"hC>?" P U1"(W82(%- P !C=32Obk!!@Q1U!*O1*I!"%$OO1*#(Eqr1#(1*>0*!-R%7@)"_1&0"%$21*=^2/?5o11*>)".11*>0V<1#".$#<1O5(.-k1>0
32ObM*@141"%(*82(7=&?(D1\6?19".8!@L#@1:@)(*#32".1*#%@f]7>0#$O32(*O+@0#@0+
-R%4-t".&0$O1WNs1*$O"%@)EUFH>)=>0#+%>071*>)O1*I!".$#O1DC
.-V"n1"(W8kS[1>0*!$##"%60$O <1;(*>0%&)$#3y6?f
"%32E0&0*1*>)!5SG#@1*>) P @1.-\"i-t"%O$#&0 %-V"n>)O+>0$OC!*O1*I!"%$U1"%(*8kS
O30#".1*,-t".#$#&0*`301*5o1O@i".@)3 P !C
".O/M%*1".@Q15EGJ_]U P !5S2<1V(*>0&0$#36M`".$##p!3:1*>?"_1J19"%(*8;/0O*O1DC;I(J"
32ObM*@1\%@?!/014".@)319"%(*8 O1*I!".$#O1DC 32(4@0.1\(W$O$OC321!#@01>019"%(*8:/0O*O1DC:71*>)`%932!7#@i]7>0I9> P ".O&)(
1"(W82(H".\1*6?!^2&01*3eR1*>05(WI(*(*&05(7(W>)"%$O$'6M!$I".6M%9"_13 O@ 1*>)$#".1*!J9>?"./21!9(E

!57%  / " / 



 
 Y".$ONs1*#U(WC2(W1* I(.-B1*@=#/0$O!@Q1*53=@=&)(W1*>)".932]H".[1*>)".1I((W/M!<A?".$#$OC`30(*O+@03
." @)332 P !$#%/M3-RK1*>07/0&)*/M(*%EK0[^0"./0$#%SQ"\!!$#$0/0>0@0J32(@0.1&)(*U1*9"%32O1*#%@?".$2#!*/0!((W(E$O$2/0>)%@05(
&)(*/)*25(*(*%9(V]7>0#9>{"%*1*#@C%S(*&0/0/M%*1*#@0+L@0$OCi1*>0Q(W/02((*O@0+f!"%/)".6)O$#<1O5(\1*>)".1=".*5".$#$OCL@055(*(".Cf-R%`!!$#$
/0>0@0V/?".1*#%@:"%@)3(W/M!<A?".$#$OC;30(*O+@03;1*6?,/M_]WNr;#!@Q11*%@?(W P 46)".1W1**C
$#O-R%EFH>0,!"%/)".60#$#<1O5(%-Z1>0
/0!((WV&?(W53c#@{"f!$#$/0>)%@0;"%*
(*&06)(W1".@Q1#"%$O$#Cn32ObM*@Q1-R*1*>)".1`.-7"+%!@)!9".$[/0&0/M(*/)*25(*(*%5EJ@0%1*>0
^0"./0$#=I(41*>0!6?530323n/0!((W4#@c"%?
@ @iTGq4".5EVqX@i1*>0I(,!"%(*%SM1>0/)*25(*(*%4&)(W53i@03n@0.1\6?
";/M_]U!*-R&0$
+%@0!9".$/0&0/?Q(W/02((*%,(W&)9>d"%("TK!@Q1*#&0,"%@dU1>0$#%@d/0*2!((WE=%-G1>0Q(D1/M_]W-R&)$K!%/0&21!9(
&)(*3{#@ @iTq@0+%#@05(=". _NV hNr60<1/0*2!((W(&0@0@)O@0+c"_1"%/0/0h^2O
"_1!$#C ?
@i4p%Ec4_] P S&0@0$#O8;1>0
@ P !@Q1*#%@?".$?THU(!S2"/0!((W&?(W53;#@:1>0(*!".U!@)+%#@0(H32@0.1J325".$k]7O1*>/0*2!((W#@0+`-R#$O$I(7(W&?9> "%(H(!@2Nr(" P (
%U"32p!@;.-30<bk!!@Q17"./0/0$#I!"_1O@)(*&0@)@0O@)+"_1U1*>)\(".J1OEJ$#$?1>)"_1U1*>)V/025(*(*%O@".
@ @iTqG(WC2(W1* @)!3)(
1*
32I(H1*
/0&21*,1>0aQ&0#*53;-R&0$#@_zD1*#%@f".1*\1*>?"_1JI(HQ(D17!
!O@Q17-R%J"+% P @(*/?3f".@?3 "!$O".1*#%@E

*

 129;!# 1  nl
E

DMC

vC

"%$<Ns1*#;(WC2(W1*(=".
.-B1*@
    !E"o1 P (*C2(D1! #(=%@0
#@{]7>0I9>e"%@e%@2Nr+%O@0+f#@Q1*!9"%1*#%@
6?!1D]!@1*>)=/)&21*V".@?3:1>0`@ P #*@0!@Q1JI(J
".#@Q1".#@053'E V932#@)".C:(*C2(D1!
(J/0&21*`-R&0@)o1O@)(J@1*>0`#@0/0&01

Version 2 CSE, IIT Kharagpur

30"_19"L1n+%@0!9"_1
1*>) &21*/0&0130".1" m #+)E Yt"*oEeqX@y%1*>0]U%930(S1*9"%32O1*#%@)"%$U(*C2(D1!
(%/0&01*;1>0%&21*N
/0&21
30"_19"n"((*%
-R&0@?o1*#%@
.-71>0O@0/)&213)"_1")EdFH>?"_1#(S[%&21/0&21
30"_19"n".@
"_1>0!
".1*I!".$#$#Cd6M^2/0((W53"%(

oE[)%G!^0"./0$#%S%O-Z(*%430".1" 7#(G+% P @;"%([1>04#@0/0&01S1*>0\(WC2(W1*!/0&21*5( 7"(
1*>0,(*&0$O1
 !EFZ!$I".6M%9"_1J1>0#(7!%@)!!/215S0@)(WI32H"%@:!^2"%/0$O,#@ P %$ P O@)+"$O#609".C;".&21%
"_1O@ (*.-B1D]H".%E
qX@
",$O#609".C`".&21%
"_1O@(*.-B1D]H".%S_]7>)!@1*>0Va&)!C`6?8`-R&0@)1*#%@I([O@ P %8%53"%@)3 l 5".$ONrFH#JC2(D1!
( ,I([@1!3
"%(41*>0#@0/0&216MQ8L@)".Sk1*>0@n1>0(*.-B1D]H".=32I(*/0$#"hC2( *4&21*>0,@)". l "
E @i".$#$sS l "%98
&)=6M! V% S &)=6M!,.%/0#( )E







    !  




>

( K

input data

;(

Starting
Parameters

output data

A>

$(

MK



(

Reactive System

Traditional System

(a)

(b)

#+%&0 KF9"%32O1*#%@)"%$ P !9(*&)( l "o1 P ,C2(W1*(


qX@ !%@Q1*9"%(W11*d1*>0f1"32O1*#%@)"%$J%/0&01"_1O@Y%-41>0L%&21/0&21:"(
"d(*#/)$O-R&0@)1*#%@ .-\1*>)#@0/0&01:30"_19"0SU*5".$ONm1O
(WC2(W1*([30@0.1/0232&)!J".@C`%&01*/0&21U30"_19"V6)&21G!@Q1!#@Q1*".@%@0Ns+%#@0+V#@Q1*"o1*#%@]7O1*>1*>)!#!@ P O%@)@Q1EqX@5"%9>
O@Q1!9"%o1O@:(W1*!/ZS1*>0\*5(W&)$<19(U!%/0&213".4&)(*3:1*!"%*C%&21J(*%\"o1O@)(G@;1>0,!@ P O%@0@15EFH>)\"o1O@;.1*>0!@ P O%@)@Q1J#(\(*"%/0$O53L".@)3fI(4-R3L6)"98;1;1*>)(*C(W1*fEJFH>0!-R*1>0!%/0&219"_1O@)(J#@i";"%$<Ns1*#`(WC2(W1*!
!"%@6M!%@)(*I32!3 1*:6?@0%@2Ns1**#@)"_1O@)+)E7FH>0I(J"%1* P @)".1*&0`%-K"%$<Ns1*#`(WC2(W1*(4#(V(*9>)!
"_1#".$#$OC(W>0_]7@L#@
1*>0`#+)E ft6?oE

!$ #&&#&!
D 7C
 9-$
 <!$#&5 
 3&#*36

'
), J@)30! P *$#"3L@)32O1*#%@)(S'*5".$ONm1O(WC2(W1*(\@03n1*L@Q1*#@Q&)=1 !!1,1*>0
325"%32$#O@)(,.-G1*>0(W1
0E 0
<1#".$219"%(*82(!S1*>0&0+%>1>04325"%32$##@0(G.-@0@2Nr!*O1*I!"%$21"(W82(G"hC@0.1U6?4!1EFH>0I(I(#@:!%@Q1*9"%(W1[1*1>04aQ&0#!!@Q1
.-     -RH1*9"%32O1*#%@?".$(*C(W1*
(H P @ &)@)32!7 P !$OQ"%3;!%@)30<1O@)(!E

 E

"

@n".@Cf*5".$ONm1O(*C2(D1!
(\]*8%&0@)32Nm1>0NX$#298f"%@)3L%-B1*!@d%/M!9"_1=]7O1*>0&21,>Q&)"%@n/2N
!9"_1%9(!E0%H!^2"%/0$OS0@)(WI32H"(*"%$O$"%&21*
"_1*53:9>0#".$k/0$I".@Q1H1*>)".1HI(7(*17&0/ 1*]*8@0@2NX(D1%/EKuv>0@:1>0!
".,@0
>&0
".@L%/M!9"_1%9(!SQ19".8O@)+;%o1 P "%o1O@)(7@f"-t"%O$#&06?55(J32O;&0$O14
E  P !@f<-[@0;!%*5o1 P ,"o1O@)(
!"%@6MJ#532#".1*719".8!@S.O1GI(325(W#"%60$#H1*>)".1G"\-t".#$O&0J32(@0.1(*&0$O1O@;"_1"(D1*/0>0IH(WO1*&)".1*#%@)(EK -t".#$O&0J(*>0%&0$I3
6?32!1*5o1*53f".@)3;1*>0`(*C2(D1! (*>0%&)$#3 %@Q1O@&0\1*/?".1*\O@f"+%9"%!-R&0$#$OC;32+%9"%3253;232,".1*>0U1*>)"%@(*>&21W1O@0+%b
".60&0/21$OCE

0}Y= 

))#)I=

qX@1*9"%30<1O@)".$0(*C2(D1!
(!SQ(*".-R1DC="%@)3*$OI".6)O$#<1DC".H@0%
".$#$OC=!%@)(*I32!3=1*6M7O@?32!/M!@)30!@Q1GI(*(*&0(Eqr1#(K1>0!-R*H/M((W#60$#
1I32@1<-RCc":1"32O1*#%@)"%$K(*C2(D1!1>)"_1I((*".-R"%@)3c&0@0!$##"%60$O
"%@)3n(*C2(D1!
(\1*>)".1`".!$##"%60$#60&01`&0@)("_-R%E;%@?(WI32!\1>0
-R$O$#_]7O@)+
1D]:^0"./0$#(E4g]U%93f/02((*O@0+ (W%-B1D]U"%*
"hC@0.1\6? P !C*$OI".60$#`60&01\I(4("_-REVw-t"%O$#&0=%-[1*>0(W%-B1D]U"%*
325(J@0%14&)(*&)".$#$OCf!"%&)(*=".@C (*#+%@0OA?!"%@Q1430".
".+`%JA)@)".@?I".$Z$#((EUqr1V#(J1*>0*!-R%=".@L!^2"%/0$O=.-".@L&0@)*$OI".60$#`60&01V(*".-R
(*C2(D1!fE V@i1>0.1>0!,>)"%@)3'S" >)".@)3c+%&)@c!"%@n6M&0@)("_-R60&21#(,!$#I".60$#%E` >)"%@)3i+&0@c9".!$#C -t".#$#(E >)".@?3n+&0@nI(,".@
&0@?(*".-R:(WC2(W1* 6M".&)(*
<-JO1`-t"%O$I(-R=(W;*5"%(*%@S<1!".@{I(DA?*
` P !@{^2/0$#232:"%@)3e!".&?(W:(*#+%@0OA?!"%@Q1=30".
".+%Eqr1
I(,".@n!^0"./0$#%-U".@c&0@)("_-R60&21!$##"%60$O(*C(W1*fE=FH>0(*1D]^0"./0$#(,(*>0_]1*>?"_1,-R%\1*9"%30<1O@)".$K(WC2(W1*(S("_-R1DCi"%@)3
!$##"%60#$OO1DC
".V#@)32/?@)32!@Q1J@)*@?([| O1UI(1*>0*!-R%V/M((W#60$#41#@)!*5"%(*71*>0("_-R!1DC
.-"(WC2(W1*!]7O1*>)%&21J"_bk1*#@0+<19(
!$##"%60#$OO1DC:".@?3 P I P ("0E

qX@f".$ONs1*#`(*C2(D1!
(H%@f1>0.1>0!4>)".@)3S?("_-R1DC ".@)3f!$##"%60#$OO1DC:".`&0/0$#3 1*+%!1*>0EGU!-R%`".@)"%$OCp!#@0+]7>C ("_-R!1DC
"%@)3e*$OI".6)O$#<1DCd".
@0L$#%@0+!`#@)32/?@)32!@Q1=I((W&05(`#@{*5".$ONm1O;(*C2(D1!
(!S]U
@0!53d1*LA)9(W1=&0@)32(W1"%@)3d]7>)"_1^0"%1*$#CnI(

Version 2 CSE, IIT Kharagpur

b 2#:   b.!!$ E


N &Z;V[ OwZ$ T0OQSxZ$SQT} ZOxP$OxSQT}U V OY2rRTop;V XvpLV T}r$SQT}|~T]LopRT}r0SFpRT0OQPROQSQT;U&Z;V[ O$m=rR?]ZUqZ-Tos u-[ ] |~T)O)u-[ S)

"%@Q1H6C"

F+% P ,".@^0"./0$#%S1>0,-t".#$<NX("_-R,(D19"_1*%-"]U%93;/02((*O@0+/0%+"% I(7@0,]7>0!41>0`322&)@Q1J6?O@0+/025(*(*3


>)"(76M!!@c(*" P 3%@Q1*1>0=32I(*8ME74$O$1*9"%32O1*#%@?".$@0@L*5".$ONm1O`(*C2(D1!
(J32;>?" P %@)`%J*,-t"%O$ONr("_-R`(W1".1*5(J]7>0I9>L>0!$#/
(*!/)"%".1*,1>0`I(*(*&0(4.-("_-R1DC".@)3f!$#I".60#$OO1DC
|~ P !@LO-[":(WC2(W1*! I(J8@0_]7@1*;6M=&)@0*$OI".6)$OS)O1V!"%@i".$#]U"hC2(H6M`
"%321
-t"%O$#@L"-t".#$<NX(*".-R(D19"_1*S0".@)3@)(*aQ&0!@Q1$OC;O1J]U%&0$I3 (W1*#$#$6?`!%@)(*I32!3:1*6M`"("_-R`(*C2(D1!fE
qr-G@)30"%
".+%!".@c*5(W&)$<1,<-U":(*C(W1*!@Q1*(\":-t".#$<NX(*".-R(W1".1*VzD&)(D1,6M-R%<1\-t".#$#(Sk1*>)!@c1*>0%&0+>n!"%*!-R&0$1*9".@)(*<1\1*"
-t"%O$ONr("_-R(W1".1*&0/M%@L"-t".#$#&0*S0O1J#(7/M((*O60$#\1*1&0*@L"%@!^1*!!$#C;&0@0!$#I".60$#`".@)3&0@?(*".-R`(WC2(W1*! O@Q1*;"
("_-R(*C2(D1!fEqX@

".@C=1*9"%32O1*#%@)"%$)(*C(W1*
([1*>)#(1*9>)@0#aQ&04#([#@-t"%1-RaQ&0!@Q1$OC"%32/21*531*,1&0*@;"%@
&0@0!$##"%60$#J(WC2(W1*! #@1`"`("_-RJ(*C(W1*fE
)%,^0"./0$#%S%@?(WI32!," 1*9"_;$O#+%>Q1`@1*$O$#!V1*>?"_1`@1*$#(41*>)?_]g.-1*9"_;".1`" "3L#@1!9(W5o1O@E&)/0/?Q(W1>0
1".
=$O#+%>Q1@1*$O$#!4-t".#$#(4-RaQ&0!@Q1$OCi"%@)3iI(48@0_]7@i1*6?>0#+%>0$#CL&0@0!$##"%60$#%EFH>0%&)+%>i&0@)*$OI".60$#%SkO1,".@d(D1O$#$K6?@2N
(*#30!3(*".-R\O-K]7>0!@0 P J"=1".;V$##+%>Q1J%@Q1*$O$#!U-t".#$I(!S0O1J!@Q1!9(U"-t"%O$ONX(*".-R\(W1".1*]7>0*".$#$k1*>),1*9"_;\$O#+%>Q1(7"%*,"%@0+%
"%@)3
60$#O@)8Q#@0+?EKFH>)#(UI("

:
 (W#@)!J1*>)V.1%#(W1(G%@:(*!O@)+=60$#O@)8Q#@0+%9".@0+H1*9"_;J$#O+>Q16M\"h]H".H1*>)".1
1>01*9"_;,$#O+>Q14%@Q1*$O$#!7I(7@0%14]*8#@0+
".@)3/023]7<1>i!"%&21*#%@E 4-%&)(*%S0"-t"%O$ONr("_-R`(W1".1*
"hC:@).146M1*

"%8%
"%$O$M$O#+%>Q19(G+*!@SQO@ ]7>0I9>:!"(W4(* P !4"%I32!@Q19(!%&0$I3
2!!&0E#O$I".$#C%S".$#$?$#O+>Q1(G1*&0@03:*53
I("%$#(*`@0%1H"`-t".#$<NX(*".-R4(W1"_1
|~<1\"hC@0%1V!"%&)(W"%!!#30!@Q1(S)60&01V]U%&0$I3f60O@0+ ".$#$1*9"_;\1 ";(W1"%@)3L(D1O$#$Z$#"32#@0+
1*;1*9"_;HzW".
(EJJ_]U P !5S0O@n"%@C
"%$<Ns1*#,(*C2(D1!
(H1>0!`".@0-t".#$ONr("_-R(W1"_1(EFH>0*!-R%%S0"%@QC;-t".#$O&0.-K1>0`(WC2(W1*}!"%@L!".&?(W`(* P !,3)".
".+(EG&)9>
(*C2(D1!
(7".(*"%#3:1*6M 
)
 )/
+ E

 #&    )!$!

 b! w9 / #&!#:9;2 )!$1%


NOMZ$ T)S:P$bX}| V SwV XZ[-OxP$OxSQT}U V OY2rRTqoqp$-OxT&Z;V[\u|T0X)ZrLX)ZuROxTOxT)y$T;|T]ZUqZ;TO

4@Y!^2"%/0$Of%-\"e(*".-R1DCQNX<1#".$7(WC2(W1* #(
"d@)" P #+".1*#%@Y(*C2(D1! @2Nr6?Q".93y".@ ".#99"_-B1E J@ %@0Ns6M"%3y@)" P O+Q"_1*#%@
*( C2(D1! >)"(H@0-t".#$<NX("_-R,(D19"_1*5(!EKuv>0@1*>0`!%/0&21!H%@2Nr6M".93:"%@"%O99"_-B1U-t".#$I(!S0"-t".#$ONr("_-R,(D19"_1\
"hC;@).176?@0,]7>0!
1>0:@0+%#@0:I((W]7O19>053Nr.bnqX@y"c(*".-R1DCQNX<1#".$G(*C2(D1!fSK1*>0f".6?(W@);%-7-t".#$<NX("_-R:(W1".1*(#/)$O#(=1*>)".1("_-R!1DCe".@{@0$OC
6M`!@?(W&03 1>0*&0+%>#@)"(W53:!$##"%60#$OO1DC%EUFH>Q&?(!S2-R4("_-R1DCQNX<1#".$'(*C(W1*
(H1*>0=#((W&)(7%-K("_-R!1DC:".@)3f!$#I".60#$OO1DC;6M!%
#@Q1*!!$I"_1*53f| ("_-R!1DCi!".@d%@)$OCi6M!@)(*&03n1*>0%&)+%>n#@)!*5"%(*3i!$#I".60#$OO1DC%Eqr1=(W>)%&0$I3i@0_] 6?
!$O5".,]7>Cn(*".-R1DCQNX<1#".$
(*C2(D1!
(H@0!53 1*6?>)O+>0$OC *$OI".6)$OE
 &)(W141* +% P ="%@i^0"%/)$O`%-1*>)=$# P $%-*$OI".6)O$#<1DCaQ&0#*53f.-("_-R!1DCNXO1*I!".$(WC2(W1*!
(S'%@?(WI32!41*>0=-R%$#$O_]7#@0+?EV0
%" @QC)CQNr6QCQNr]7O4"%O99"_-B15S(W1%-<19( P O1"%$?/)"%W19("%*V%@Q1*$O$#36C
"=!%/0&21!5EK4@C-t"%O$#&04%-'1*>0,@1*$O$##@0+`/)&21*
I(,$#".$#C @0%1,"!!!/219".60$#%EFH>0(D19".@)3)".93L*$OI".6)O$#<1DCfaQ&0#*!@Q14-R\(*&)9>n"%O99"_-B19(4I(V".1\Q(D1 -t"%O$#&0=/M! )C#@0+
>0&09(`B1>)"_14I(S?"O$#$#O@LC%"%(H%-K!%@Q1*#@&0%&?(H)CO@)
+  oEUuc`!^0".O@)>0_] ";>0O+>0$#C:!$##"%60$O`(*C2(D1! !".@L6M=32 P $O/?53 #@
1>0@0^14(*1*#%@E

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

qr-C%%&f".,"%(*8%3;6QC:C%%&)U*+Q".@0#p".1*#%@
130 P $O/"(*.-B1D]H".4]7>0I9>(*>0&0$#3 6M\>)O+>0$OC:*$OI".60$#%S2>)_] ]&0$I3:C%&:/)*23
1"9>0O P JO143iJ#+%>0$#C
*$OI".6)$O\(W%-B1D]U"%*\!".@:6?32 P !$#%/M3;6QC;"32%/01*#@0+"%$O$k.-Z1*>0V-R%$#$O_]7#@0+=1*>0!\O/M%*1"%@11*59>0@0Ia&)(

/R/ 5 /

(

58# < 39;

 1
 
 0G"%9>0# P #@0+,>0#+%>*$OI".6)O$#<1DCS% P !C`/M((W#60#$OO1DC=%-'&0!@)!U%-M*%9(K(W>)%&0$I36?7#@0##p!53
3 &0O@)+/)*232&)1J32 P !$#%/0!@Q1J"%(H&)9>L"%(H/M((W#60$#%EFH>0I(7!"%@ 6M="9>0O P 53;6C:"%30%/21O@0+
" P ".#1DC
.-K"%@)( K&)(*#@0+
2
]$O$ONs-R%&0@)303:(*.-B1D]H".4@0+%#@0!O@0+/09"%1*I(S&)(*O@0+
(*%&0@?3:325(W#+%@1*>)30%$#%+%#(S2"%32/21*#@0+(W&)<19".60$#=UV Y1*$#(S
".@)3(*@E

1
5
 
 qX@ (W/0O1*\.-&?(W#@0+`1>046M(W17" P "%O$I".6)$OJ*%" P %I30"%@)H19>0@0IaQ&0(S
".@C*%9(
D( 1O$#$'
".@)"%+%\1*
!*!/O@Q1*1>0`232E[FH>0(*!*(@03 1*6M`321o13f".@?3 ! P 3'EKFH>0I(7!".@f6M`"%9>0# P 3;1*
"
$#"%*+V!^1*!@Q176C !%@)32&?o1*#@0+1*>)%%&0+>: P O]J(7".@)3:1*5(D1O@)+)E V@)!\*%9(H".\301*5o13'S)1*>0C:!"%@6M"(W#$#CA0^23'E

)(

/R/ 5 / !19}!$#&5 4 4%45 2

Version 2 CSE, IIT Kharagpur

3 !  58: /  < 9- 

;
"_1*1*J>0_] !1*I&0$#%&?(W$#C *%7" P %I30".@)!".@)3!%J32!1*1*#%@1*59>0@0IaQ&0(V".\&?(W53'S)O14I(
O
*
*
1
)
&
%
"
O
$
#
$
:
C
#

?
/
Q

*
(
*
(
#6
0
O
$
=

*
1
;
"%8%="
/)"o1*I!"%$Z(*.-B1D]H".`(WC2(W1*! !@Q1O!$#C *%*Ns-R*%EH0!]*%9(J(W1*#$O$/?(*#(W14 P !@i".-B1*
P
!"%*CO@0+f&21=1>0%%&0+>e* P #!]J(".@)3d1(W1*#@0+)E(*(".&)(*-t".#$O&)*5(!EnFH>?"_1=I(!S-t"%O$#&0(="%*:"%@0O-R(W1"_1O@{.-71>0
!*(4$#".1*@1,#@i1*>)(*C2(D1!fE`FH>0*!-R%`1*f"%9>)O P =>)O+>n!$##"%60O$#O1DC%S' P !@cO@d(WO1*&)".1*#%@)(\]7>0*!*(V"./)*5(W@15S
1*>0,(*C(W1* (W>)%&0$I3;6M\"%60$#41=1%$#!9"_1*41*>0V-t".&)$<19(7".@)3;!%/0&21\1*>0,*1(*&0$<19(!E[FH>0I(U#(H".$#$O53-t".&0$O1WNs1*$O"%@)E
)"%&0$<1*Nm1%$#!9".@)!\".@6?`"9>0# P 53;6C ".-R&0$#$#C;O@?%/M%9"_1*#@0+*532&0@)30"%@)CE

Legend:
C1,C2,C3: Redundant copies
of the same component
C1

V
O
T
I
N
G

C2

C3

Majority Result

O+&0  29>0
"_1*I l !/)*5(W@19"_1O@ %-F @ l
qr14I(J!$I"_1 P !$#C (*O/0$#1:32(*#+%@i"
>)"%30]U"%*,aQ&0#/0!@Q1J1;6M`-t".&)$<1*Nm1%$#!9".@Q1EHFH>0`-R$O$#_]7#@0+;".,1D]
!1*>0230(41*>)".1
"%*,/M%/0&0$I".$#C
&)(W53 1*
"%9>0# P ,>)".932]H".J-t".&)$<1*Nm1%$#!9".@)!



3#&&!

1   )!

;(


 0
 +8
0 < ZqX@eqW0F,Sk1*>0
(*C(W1* /M!O232I!"%$O$#Ci/M!*-R%(,(*!$O-G1(W1(,.-HO1(/?@0!@Q1(E J/M%@
3211*#%@L.-"-t"%O$#&0%S01>0=(*C2(D1! ".&21%
"_1#".$#$OC *5%@0A)+%&0(HO1(*!$O-[6C(*]7<199>0#@0+
%&2141*>0=-t".&0$O1DC!%/M%@0@14"%@)3
(W]7O19>)O@0+#@f%@0,.-1*>030&0@)30"%@17+Q23/M%@)!@Q1(E

/ #* 3: W5/<: /  < < 9 ) 8 W < %( qX@


F

@ l SQ"%(K1>07@)"%V(W&0++%5(D19(!Sh1>0*J32&0@?30".@Q1G/0#(K.-"%$O$)!*O1*I!"%$
 /M%@)!@Q1(`"%*

"32
1*n*&0@{!%@)!&0*!@Q1$OC t(*!:#+)E % oE V6)(W P 1*>)".1=O@Y#+)E % S[ S[ 0S"%@)3yUi"%*1>0
*532&0@)3)".@Q14/0O5(J%-1>0=(".=!*O1*I!"%$/?@0!@Q1E7FH>0(WC2(W1*! /M!*-R%( P .1O@)+;.-K1*>)`*5(W&)$<19(J/0232&)53f6C:1>0
*532&0@)3)".@Q1H!%/M%@0@19(1
(W$O5o1U1*>0,
"_zD*O1DC*5(W&0$O1E[F @ l !"%@:>0$O/ 1*$O".1*V&0!@)!4.-%@0$#C;"(W#@0+%$#J-t"%O$#&0
"_1".@C1*#%E:rU".@nC%&d".@)(*]V]7>Ci" F @ l (9>0!"%@ibk1* P $OCf1%$#!9"_1*"(W#@0+%$#!%/M%@0@1\-t".#$#&0*%@)$OC 3h
J@y"(*(*&0/21O@{1*>)".1I(O/0$##!<1#@{1*>0fF @ l 19>0@)#aQ&0 #(=1*>)".1".1"%@QCc1*# @0$#Cd@0:%-71*>0:1*>0! *532&0@)3)".@Q1
/M%@)!@Q1(!".@:/0*232&?J*%@0%&)(*5(W&0$O1(E[FH>04
".zD%<1DC*5(W&0$O1U".-B1* P .1*#@0+`]U%&)$#3
6M4*%@)!%&?([<-Z1D]`G%
/M%@)!@Q1(,!"%@i-t"%O$(*O&0$O1".@)!%&?(W$#CR%/0I(*!$#C%S'6M-R%
":!/?".#,".@c6?
!"%*#3i&219EqX@e(*<1&)"_1O@)(,]7>0!
1D]G%4!%/?@0!@Q19(G".J$#O8!$#C=1`-t"%O$R%/030&)V!*@0!&)(K*5(W&)$<19(S%1>0!@;+*5"_1!G"%&0@Q1(G.-32&0@?30".@)!O5(
]&0$I3 6M`aQ&0#*53;1;6M`O@?%/M%9"_1*53'Eg$OO1W1$O1>0#@08O@0+ !".@L(*>0_]1*>)".1V"_1J$#"(D1 .@  32&)@)30".@Q1V!%/M%@0@19(
".VaQ&0#3:1*1*$O".1*(W#=&)$<19".@0%&)(U-t"%O$#&0(H.-@L%/M%@0@Q1E

Y*

q*

V(4/)".31;>)".932]H".%S)(*.-B1D]H".,-t".&)$<1*Nm1%$#!9".@)!`#(4=&)9>n>)".932!J1* "9>0# P EJFZ:O@ P 5(D1O+Q"_1,1*>0*5"%(*%@f6?>0#@)3


1>0#(S$#1`&)(\A?(W1,30#(&)((\1*>)19>0@)#aQ&05(&0*@Q1*$#CL6?O@0+f&)(*3n1*L"9>0O P (W%-B1D]U"%*=-t".&0$O1WNs1*$O"%@)E=ud
321*>0I(,O@d1>0
-R$O$#_]7O@)+(*&06)(*1*#%@E



  0 *  
* .)   #)  *  
 

  

  

-(

FH]U,!1*>0230(G".U@)_]y/M%/0&0$I".$#C`6?O@)+&)(W53`1`"%9>0# P U(*.-B1D]H".-t".&0$O1WNs1*$O"%@)
N P (*O@/)*+%9".O@0+\".@)3! P !C
6 $#298n19>0@)#aQ&05(!EiFH>05(W;1D]L19>0@)#aQ&05(=".;(*O/0$# "30"./219"_1O@)(.-H1>0:6)"(WI19>0@0IaQ&0(=&)(*3e1i/0 P I32
>)"%30]U"%*
0
-t"%&0$<1*Nm1%$#!9".@)!%EKud`32#(&?(*(U1>0(*\1D]1*59>0@0IaQ&0(7#@ 1*>0,-R$O$#_]7O@)+)E

Version 2 CSE, IIT Kharagpur

  / $#&5

/ 586 / 2%'%'# <6


 ?
  FH>0I(1*9>)@0#aQ&07I([".@"%3)"./219"_1*#%@.-?1*>0JF @ l 19>0@)#aQ&0U-R%[>?".932]U"%*G-t".&0$O1WNs1*$O"%@)E
qX@1>0 N P !9(W#%@/0%+"%#@0+\1*59>0@0Ia&)%SQO@)30!/M!@)32@Q1G1*5".
(32 P $O/
32ObM*@1 P (*O@)(7 P "%$O&04.32/?@)30(%@1>0
32+%!\.--t".&0$O1WNs1*$O"%@)\*5aQ&0O3?G%-"(*.-B1D]H".V/?@0!@Q1`R232&0$#5EGFH>0,*532&0@)3)".@Q17232&)$O5(7".V&0@L@)&0!@Q1*$#C
t/?Q(*(*O6)$OCc%@d*532&0@)30"%@Q1`>)".932]H".5oE
FH>0(*&0$O1(/0232&)!3c6QCn1*>0;30<bk!!@Q1 P (*#%@)(\.-U1*>)
232&)$O;"%*
(*&062zD1*53n1
P .1*#@0+:".14&0@f1*#".@?3f1*>0=*5(W&0$O1V@L]7>0I9>L".zD%<1DC .-[1>0!%/?@0!@Q19(4".+*,#(\"%!/01*3EJFH>0!!@Q1*9".$I325"
6?>0#@)3
1>0#(,(9>0!#(41*>)".1\#@)32/?@)32@1,1".
(V]&0$I3iO1,30<bk!!@Q141DC/M(\.-I(D19".8(SM]7>)#9>i]U%&)$#3L6M!$#O#@)"_13i]7>)!@
1>0f*5(W&0$O1(/0232&)!3Y6QCe1>0! ".(*&062zD5o13y1* P .1O@)+)EY4_] P SK1>0#(
(9>0fI(@0.1 P *C(*&)((W-R&0$HO@ "%9>0# P #@0+
-t"%&0$<1*Nm1%$#!9".@)!%SG"%@)3y1*>0f/0%60$#! !".@Y6?i".1W1*#60&213y1*        
         1"_1#(W1*I!"%$J*!$I"_1O@.-t"%O$#&0(7"%@)(H1>)"_14 P @ 1>0%&)+%>fO@?32 P I32&)"%$'1*5".
(7]U%8%3 #@L#(*%$I"_1O@:1:32 P !$#%/ 1*>032<bk!!@Q1 P !9(W#%@?(%-"
(W%-B1D]U"%*
!%/?@0!@Q15SQ(W1*#$O$?1*>)V32ObM*@Q1 P (*O@)(K-t"%O$?-R%#32@Q1*I!".$?*5"%(*%@)(EZqX@:.1*>)!G]U%930(S_1*>)V32ObM*@Q1 P (*#%@)([%-"`/M%@)!@Q1
(*>0_]g(*O#$#"%V-t"%O$#&0/?"_1W1!@)(E=FH>0I(\30Q5(\5".@n1*>)".1\1>0
32ObM*@1,232&0$#(32 P !$#%/M3i6QCL#@)32/?@)32@1`/)*+%9".!9(!S
".-B1*!,".$#$sSM!%@Q1"%O@LI32!@Q1#".$!*(EJFH>0="(W@-R%J1>0I(VI(V@0.1V-t".J1 (*!8MSM/0%+"%(7!%<1\!*(7#@L1>0(*=/)"%W19(
%-"/0%60$#! ]7>)#9>1*>)!C;/M!9 P V16?`32O;&0$O1H| "%@)3:]7>?"_17#(432<;!&0$<171%@0\1*5". I(7&)(*&)"%$O$#C:32O;&0$O171*
".$#$k1*5".
(E
?S2#30!@Q1*I!"%$!*(!
".#@ #@1*>0Q(D1J/0$O!^"%@)3:$#"(D17&0@?32!9(D13 /)"%W19(H.-["(*.-B1D]H".,%/M%@0@Q1E

IHvDFDMC &H H

Legend:
TB : try block

component

input

TB1

TB2

TB3

TB4

result
test

BDMC

exception

result
test

test

success failure

test
failure
success
result

*(

O+&0 [g%-B1D]U"%*,)"%&0$<1*NrF%$#!9".@?29>0! 4(*#@0+ l ! P  *C


U$O2982(

9-5  /

DFE+G iH IJ

:5 9

1
  9
E G"9>c1*C
)
/ qX@{1>0:! P *Ci6)$O298e(*9>0%S1*>0 *532&0@)3)".@Q1/?@0!@Q1(".;!"%$O$#3
6 $#298!%/0&21(J1*>0=(".`@)3f(*&0$<1\"%(H1>0=%1*>0(76)&21VI(J#@Q1*!@Q1O@)".$#$OC ]7*O1W1!@i&?(W#@0+;";32Obk!!@Q1V".$#+%*O1*>)}/)".3
0
1 1>0
.1>0!\1*Ci6)$O2982(!EqX@
N P !9(*O@n/0%+"%#@0+)SM1>0;32ObM*@1 P !9(W#%@)(\%-U"f/M%@)!@Q1,"%*]7<1*1*@c6Cn32Obk!!@Q1
1".
(%-\/0%+"%(S]7>0*5"%(#@ ! P *C{60$#298y32ObM*@Q1:".$#+%%O1*>0
(".f&)(W53 O@v32ObM*@Q1
1*C60$#982(E J$I(W?S#@
!%@Q1*9"%(W1`1*c1*>) N P (*#%@{/0%+"%#@0+n"%/0/0"%9>e]7>0*:1*>032&0@?30".@Q1!%/0#(".:&0@y!%@)!&0*@1$OCSKO@y1*>0*5 P N
*Ce60$#298"./0/0"9>e1*>0Cy".cm"%((*>0_]7@#@YO+?E &0@y@0f"_-B1*
".@0%1*>0E{FH>0f(*&0$<19(=/)*232&)!3y6QC"n1*C{60$#298
"%*(W&060zDo13e1d"%@y"%/21"%@):1*(W1Lt(*!f#+)E %oEdqr-J1>0:1(W1-t"%O$I(S[1*>0@1>0 @)^11*Ce60$#298e#(1*#3'E{FH>0I(=I(*!N
/M".1*3O@y"n(W5a&)!@)!:&0@Q1*#$1*>0 *5(W&0$O1=/0232&)!3{6Ce"L1*Cd60$O298e(W&?!5(*(W-R&0$#$OCe/)"(*(*(1*>0"%!!!/219".@)!
1*5(D15E
.1*:1*>)".1
#@nO+?E
]U`>)" P (W>0_]7@c"%!!!/219".@)!1*5(D19(V(*!/?".9"_1*$OC:-R%,32ObM*@1V1*Cf60$O2982(71:>0$O/n&0@)32(W1"%@)3f1*>?"_1\1*>0=1*(W1(\".
"%/0/0$#O53`1V1>0U1*C60$#982(%@)H".-B1*1>07.1>0!5Sh1*>)%&0+>O1["hC6MH1*>)H"%(*G1>)"_1K1>07(*"%1*5(D1I(K"./0/)$O#3=1*,"9>`1*C`6)$O298kE

V(J]H"%(71>0"%(*]7<1>
N P (*#%@f/0%+%9".#@0+)S21>0=! P *C;6)$O2982(4"%/0/0"%9>f".$I(*:32(4@0.1V"9>0# P ==&)9>i(*&)!!((
#@ /)* P I32O@)+!bM5o1* P \-t"%&0$<1*Nm1%$#!9".@)!%E[FH>0,"%(*%@ 6?>0#@)3 1*>0I(H#(4".+"%O@(D19"_1#(W1*I!"%$k!%*$#".1*#%@;%--t"%O$#&0(E,4ObM*@Q1U1*C
60$#2982(-t"%O$M-R%UI32!@Q1*I!"%$?"(W@)(G"(G]H"%(G^2/0$I".#@03:O@!"(WJ%- N P (*#%@
/0%+"%#@0+`"./)/0*Q"%9>EKU(*#30(S%1>0#(H"%/0/0"%9>
(*&2bk!9(4-R%":-R&0*1*>0\$##O1".1*#%@n1*>)".1\O1`!".@c%@0$#Cf6?&)(*3n<-G1*>01"(W8L325"%32$##@0(,".=&)9>n$I".+%J1>)".@n1*>01"(W8i!%N

Version 2 CSE, IIT Kharagpur

/0&01"_1O@i1O(tmE %E\1"(W82(V>)" P $#"%*+`$I"_^2<1DC0Sk(*#@)1*>032ObM*@Q1V1*Cf60$#298(\".=/)&21V1 !^2&01*#%@i@0".-B1*!\1>0%1*>0


]7>0@f-t".#$O&)*5(J2!!&0EHFH>0`! P *C;6)$O298 "%/0/0"9> /M(*(V(W/M!#"%$Z32O
!&0$O1DC]7>)!@L&)(*3f]7O1*>L"%$<Ns1*#1"(W82(7]7O1*> P !C
(*>0%*1V(*$#"98:1ORsE E\(*>0%*1V325"%32$##@0=".@?3i@)(WI32"%60$O=^2!&21*#%@f1O5S"%(J1*>0=1*C6)$O2982(4"%*1*#3i%&21\%@0=".-B1*41>0
%1*>0J32"32$O#@05(H"hC:6?I(*(*3'EFH>)!-R%%S#@L(W&)9>f!"(W5(U1*>0$I"_1!H1*CQNr60$O2982(U&)(*&)".$#$OC %@Q19".#@ @0$OC (W8!$#1"%$232E
4-!%&09(*%SM<1I(4/M((W#60$#=1>)"_1\1*>)$I"_1!V1*CL60$O2982(\%@Q19".#@i%@0$#Ci(*8%!$#19".$232%S'/)*232&)!=@0$OCi"%/0/0h^2O
"_1`(*&0$<19(V"%@)3
1>0!-R*\1"%8%,=&?9> $#((U1*#,-R%J/0&21".1*#%@1*>?".@ 1*>0,A)9(W171*C;60$#98kE





checkpoints





acceptance test

progress of
computation

rollback recovery

#+%&)* G>098/M%#@1O@)+"%@)3 l %$#$O6?"%98 l 5 P  *C

39" 57#*=!$#*36 57& '29 19;5 1  / ),



 >0598/?O@Q1*#@0+f".@)3n*$O$ONr6)"%98f P !C I(,".@0%1*>0,/?/0&0$I".\1*59>0@0Ia&)1"9>0# P -t".&)$<1*Nm1%$#!9".@)!%EqX@c1*>0I(\1*59>0@0Ia&)"(



1>0:/0&21".1*#%@e/02!530(S'1*>0 (WC2(W1*! (D19"_1
#(,1(W1*53e"%9>c1*#:"_-B1!=(*%
"%@0#@0+.-R&0$G/0*+%((\O@{/0&21".1*#%@eI(

"%30%E,qX532I"_1*$OCi".-B1*," (D19"_1NX9>0981*5(D1(*&)!!!3)(!SM1*>)(W1".1*.-[1*>)(*C2(D1! I(V6?"%98%53L&0/c%@n"(D19".60$#(W1*"%+%:m(W
#+)E QoEKqX@ "%(*41>0V@)^1H1*(W1732(U@0.17(*&)!!!3S1>0(WC2(W1* !".@ 6?\
"%32V1*%$#$<Nr6)"%981*1*>)\$I"%(W179>098/M%#@13;(W1".1*E
J-B1*!7"*$O$#6)"98MS-R%"9>)98/?O@Q13;(W1".1*,"-R(*> /0&21".1*#%@!".@:6?,#@0<1#".1*53'E[FH>0#(19>0@0IaQ&0\#(U(*/MI".$#$#C
&)(W!-R&0$sS
O-1*>)!VI(H"=9>)"%@)41*>)".11>0(WC2(W1*!(W1".1*\"hC6M\!%*&)/21*53;"%(G1*>0,/0&21".1*#%@ /0*2!!3)(!S(W&?9> "%(U30".1"=!%*&)/21*#%@;
/025(*(*%-t".#$O&)*E



A
` w7 40
k

ud`>)" P `".$#*5"%32C:(*!@1*>)".1V"
".$ONs1*#,19"%(*8:I(7%@)-R%J]7>)#9>LaQ&)".@Q1<19"_1* P !^2/0*5(*(*#%@)(H%-1O="%*@)!3031*;30(O6M
O1(46?>)" P OE7FH>0I(4aQ&)"%@1<19"_1 P ^2/0((W#%@f.-K1O=&?(W&)"%$O$#C "%/0/M".9(7#@L1*>)-R%}%-";@)(D1"%O@Q1J@f1*>01O"_14]7>0I9>
1>01"(W8i/)*232&)!((*&0$O1(E
FH>0
(W1-R*5a&)!@Q1*$#Ci2!!&0*#@0+1*##@0+i!%@)(W1*9".#@Q1\I(`"f32"32$#O@0;!%@)(W1*9".#@Q1]7>0#9>dI(&)(*3
1;^2/0((U1*>)".1V"19"%(*8:I(JaQ&0#*53:1;/)&21*`O1(4*5(W&)$<19(J]7O1*>0#@i(W`32"32$O#@0EUud1>0!-R*#/0$OIO1*$#Cf"%((W&0@0$OC
325"%32$##@0`1DC/M=.-K1O#@0+ !%@)(W1*9".#@Q1(J@f1"(W82(J#@L1>0#(\(*o1O@S?1*>0&0+%>L%1*>041DC/M(J%-G@)(D1"%O@Q19(`t"(4!^/)$#"%O@053fO@d%E
E %G
"hC;2&07#@f/0"o1#!%EK*5".$ONm1O\1"(W82(H!"%6f6?`!$#"(*(*<A?3;#@Q1*1>0,-R%$#$O_]7#@0+1*>0!6)*Q"%3:"_1!+%*#(

(

}*5".$ONm1O:1"%(*8{!"%@6?f$I"%((*<A)53{#@1n<1>0!>)".93'S(*.-B15S%=A)*
!%@)(*aQ&0@)5(H.-"19"%(*8;#((*O@0+O1(7325"%32$##@0%E

"%$<Ns1*#;1"(W8{32/?@)32#@0+d%@{1>0

qr1[I(K@0.1[@05((".CV1>)"_1G"%$O$19"%(*82(%-M"\".$ONs1*#H"./)/0$OI!".1*#%@6?$O@0+\1*\1*>0J(".H!".1*!+%C%Eqr1I(K/M((W#60$#1>)"_132Obk!!@Q1
19"%(*8(.-Z"=*5".$ONm1O\(WC2(W1*!".@;6M!$#%@0+=1*32<bk!!@Q17!".1*!+%O5(!Euc\@0_]v$#"%6?".1*71>0(*J1>0*J1DC/M(U.-"%$<Ns1*#J1"(W82(E

 / W12  #&%' 



 / >?".93n"%$<Ns1*#19"%(*8nI(,%@01>)"_1`I(`!%@)(W1*9".#@03n1*f/0232&)!
<19(*5(W&)$<19(,]7<1>0O@!!*1"%O@
/030A)@053f1*#=6M%&0@?30(!EVFH>0(*C2(D1! #(\@)(WI32*53:1:>)" P ,-t".#$O53L]7>0@0 P !V"%@C %-KO1(V>)"%3f"%$<Ns1*#1"(W82(430Q5(J@0%1
/0232&)!\O1(J*5a&)O3 *5(W&)$<19(H6?!-R%V1>0`(*/?5OA)3 1*#6?&0@)3'E

4@{^0"./0$#;.-J"i(*C2(D1! >)" P O@)+L>)".93e*5".$ONm1O19"%(*8(`#("f*6?%1ELFH>0 *6?%1=C2$##".$#$OCe!"%*#(,%&01"L@&0=6M!."o1* P <1O5([#@)$#&)32#@0+`=&0@0I!".1*#%@]7O1*>1*>)J>0(W1G(*C(W1*fS%$#%+%+O@)+\"%$O$)!%/0$#13


"%1* P <1O5(!SQ(W@)(W#@0+\1*>)J!@ P O%@)@Q11
32!1*5o14".@C;6)(W1"%!$O5(H/0(*!@Q1S1"98Q#@0+1*>062zD1(H%-#@Q1*!(W1S2/?"_1*>f/0$I".@)@0O@)+)S2bk1*#@0+
@0!^Q1J P %S219.E _]@)(*#32
1>)"_11*>0 *6?%1(W&?3032!@)$OCe!@?%&)@1!9(="%@%6)(W1"$#%EiFH>0 *6?%1==&?(D1321o1O1".@?3{"%((W%@"(`/M((W#60$#
1*Cd1*c(!"./M
!%$#$OI32#@0+;]7O1*>iO1EVqr-<1V-t".#$#(41*;(*/M%@)31:O1\aQ&0I98Q$#CeRsE EJ1*>)@)*@)31"(W82(J"%*=@0.1,%/0$#13L6M-R*`1*>0*5a&)O3


Version 2 CSE, IIT Kharagpur

1O;6M%&0@?3)\1*>)!@e<1]&0$#3e!%$#$OI32]7<1>e1*>0:%6)(W1"$#"%@)3c1*>0:*6?%1,]U%&)$#3d6M;%@?(WI32!3c1L>)" P -t".#$#3'E:FH>)!-R%
32!1*5o1*#@0+
6)(D19"%!$O5(U"%@)3*5"%1*#@0+=1
<14"%*\>)"%3 *5".$ONm1O\1"(W82(E
4@0.1>0!7"./)/0$OI!".1*#%@>)" P O@)+>)"%3:*5".$ONm1OV1"(W82(U#(7"%@"%@Q1*ONsI(*(*O$#,(WC2(W1*!fE[J@L"%@1<Nr#((*O$#\(*C2(D1! !%@)(*I(D19(%-Z1>0
-R$O$#_]7O@)+;<1#".$Z"o1* P <1O5(=R1"%(*82(EU4@n".@Q1<Nr#((W#$#`(WC2(W1*!}=&)(W1JA)9(W1V3211V".$#$Z#@)O@0+:I((W#$O5(!S)/0*/?*$#C:/M(*O1*#%@
1>0"%@1<Nr#((*O$#`+%&)@S'".@)3f1>0!@iA)*=1*:30(W1*_C:1>0=#@)O@0+ #((W#$#=6M-R%1>0#@)!%O@)+;#((W#$#!"%@i32 "%@C30"%
".+%E
4$O$k1>0(*\1"%(*82("%*\>)"%3:*5".$ONm1O\O@ @)"_1&0*,".@?3;1>0".@Q1*ONsI(*(*#$O,(WC2(W1*]&0$#3:6?!%@)(*#30!3
1>?" P J-t"%O$#3S2<-K".@C
.O1(H19"%(*82(U-t".#$#(U1!%/0$#16?!-R%V1>0`*(*/M%@)32#@0+32"32$#O@05(!E

4/0/0$##"_1*#%@?(J>)" P #@0+;>)"%3f"%$<Ns1*#1"(W82(4"%*,1DC/0I!"%$O$#CL(*".-R1DCQNX<1#".$GrU".@LC%&f1*>0#@08i"%@L^0"./0$#`.-G";>)".93f*5".$ON
1O
(WC2(W1*1*>)".1#(,@0%1,("_-R!1DCQNr!*O1*I!"%$ 3 FH>)#(,"%@)(V1*>)".1`".@Cf-t".#$O&)*.-U" "%$<Ns1*#=19"%(*8kS'O@)!$O&?32O@)+O1(\-t"%O$#&0=1
!!171*>0"(*(*2I"_1*53:325"%32$##@0(S2]&0$I3:(*&0$O1H#@L(W P *,@)(W5aQ&0!@)!(EFH>)#(7
"%8%(U>)"%3 ".$ONs1*#V1"(W82(H!^Q1*!$#C:<1*N
I!"%$mEUO1*I!".$#O1DC;.-["1"%(*8 ".@"%@0+%\-R% !^1*!!$#C !*O1*I!"%$k1*
@0%14(W
O1*I!".$sEF"%(*8:<1#".$#<1DC:1*>0*!-R%,#(7"
32Obk!!@Q1
32#!@)(*#%@L1>)".@L>)"%3i%4(*.-B1,9>)".9"%1*!#p"_1O@ %-G"1"(W8kE\O1*I!".$#O1DC %-G"1"(W8#(\"
"(W&)*`%-K1*>0(W1V%-"
-t".#$#&0*|
1>0>0#+%>0H1*>0`!(W1H%--t"%O$#&0%S1>0%,!*O1*I!"%$'#(U1>0,1"(W8kE
)%U>)".93;"%$<Ns1*#J1"(W82(U#@:/09"%1*I!".$'(*C2(D1!
(!SQ1>041O,6M%&0@)3)(H&)(W&?".$#$OC9".@0+J-R% (* P "%$?I(*!%@)30(1"=-R!]
#$O$#(W5@)30(E\qr1,
"hCL6?@0%1*3i1*>)".1," >)"%3L"%$<Ns1*#`19"%(*8i32(\@0.1,@03L1 6M%/0$#13n]7<1>0O@c1*>)(*>0%*1*5(D1\1*#
/M((W#60$#%S60&21=O1I(!!$#Cd*5a&)O3n1*>)".1`1*>);1"(W8c=&)(W1!%/0$#1*
]7O1*>)O@{1>0:(*/?5OA)3d1O;6M%&)@)3'EfqX@{.1>0!`]U%930(S
1>0!VI(U@0*]U"%3
#@ !%/0$#1O@0+">)".93;"%$<Ns1*#J1"(W8
&)9> "%>0"3
.-<19(H32"32$O#@0EKFH>)#(UI(7".@:#/?W19".@Q1H%6)(*! P "_1*#%@
"%@)3;1>0I(7]&0$I3;19".8%"
!!@Q1*9".$k/)"%W17#@&0J32I(*!&)((W#%@)(H@:19"%(*8:(9>032&)$O#@0+O@1>0@0^171D]U9>?"./21!9(!E

# / % 12  #&%' 

/  P !C=A) "%$<Ns1*#J1"(W8


I(H"%((W2!#".1*3;]7<1>(*%\/0*532A?@03 32"32$O#@0\6?!-R%V]7>)#9> <17I(
aQ&0#*531*`/0232&)!J<19((*&0$O1(E4_] P !5S.&0@)$O#8%4"`>)".93*5".$ONm1OH19"%(*8MS P !@
]7>0@;",A) "%$<Ns1*#H1"%(*832(@).1!%N
/0$#1H]7<1>0O@O1([325"%32$##@0%S_1>0J(*C(W1* 32(@0%1K-t".#$mE[FH>0H$I"_1*U(*&0$<19([".*$OC=30#(!"%3253'EZqX@.1>0!K]U%930(Sh1*>07&21O$#O1DC`.1>07*5(W&)$<19(!%/0&2136C="VA)g*5".$ONm1OU1"(W86M!%(Kp!"_-B1*K1*>07325"%32$##@0%EKO+?E (9>0".1*I!"%$O$#C`(W>)_]J(Z1>07&21O$#<1DC
%-1>0*5(W&)$<19(H/0*232&?36C:"A) "%$<Ns1*#V19"%(*8 "(7"=-R&)@)o1O@L.-1*#EqX@LO+?E <14".@f6M`(W!@ 1*>)".14<-1*>)*5(W/M%@)(*
1OH.-k"J19"%(*8^030(1*>)H(*/MOA)53325"%32$##@0%S_1>0!@1*>)U&01*#$OO1DC`.-?1*>0H(*&0$O1(6?55(p!!,".@)3`1*>0H(*&0$<19(K".U32I(!".93253'E

Utility
100%
Deadline

0
#+%&0

(

Response Time

J1*#$OO1DC %- l 5(W&)$<1J%-K"O

l 5".$ONrFH#`F"(W8
]7O1*>LFH#

#* *5".$ONm1O19"%(*82(71DC/0I!".$#$#Cf"%6?&0@)3f#@i=&)$<1O30#""./0/)$OI!".1*#%@)(EJFH>0`-R$O$#_]7#@0+:".1D]U;^0"%/)$O5(J.-[A?*
1O,1"(W82(

(
 # <159;5   /  <9-#*36

*5".$ON

qX@ " P #32{%@0-R!!@)!O@0+e"./)/0$OI!".1*#%@S P #30!d-R"%(


".@?31>0i"%%/)"%@CQ#@0+e".&)30O{".
@ P !*1*53O@Q1*/)"98%19("%@)31"%@)(WO1W13:1*`1>0,*5 P !G P !U"=@0!1D]*8kEKJ_]U P !5S(*%4-R9".5(G
"hC+%!1H32$#"hC3
"_1J32ObM*@Q1H@)30(732&0#@0+1*9".@)(*<17@"/)"98%1*Nr(*]7O19>053;@0!1D]*8;32&),1*
@0+%5(D1O@ "_1J32Obk!!@Q1J@0232(E[FH>0I(7
"hC


     ! "#%$&'(%)%
*+-,./10"1 $ %$& !2 23546*/
7%$&$&*8 *9$&*$&* (%
:; 0,.$&!#(=< >:,.$&!& %:; 0?-><@%><@8$&!&;$&$ *A8% %  3

Version 2 CSE, IIT Kharagpur

*5(W&)$<1\O@ P ".CQ#@0+a&)!&0#@0+f32!$I"hC2(4!^/M!#!@)!3i6CL/)"98%!1(41*9" P !$#$#O@0+ ".$#%@0+32<bk!!@Q1%&21(E P @i]7>0@n/)"98%19(


1*9" P (*1*>0(*"%:*&21*SK(*%;/?"%98%!1(`".@e19".8%:=&)9>*1O 1*>)"%@e1*>0 .1*>)!=/?"%98%!1(32&0
1i1*>) (*/?5OA?
1*9".@)(*#((*O@Y(W1*9"_1*+%C{&)(*3 "_1
1>0L@02325(!Ew*@i%f30#(&)((*O@)(%@Y1*>0I(
I(*(*&0f#(;+% P !@YO@j>)"%/21* E uv>)!@v"
W19".#@:-R9".,#(J6?O@0+
/)$#"hC3'S2O-K(*%,/0!32#@0+-R"%`".* P 5(".171*>0!! P !5S1*>)!@1*>0I(H-R9".I(H.-K@0
&)(*,"%@)3
#(730#(!"%3253'B
E V&0,1*1>0I(7*5"%(*%@S2]7>)!@L"-R"%\I(J32$#"hC3 6C:%\1*>)"%@f("hC;@0`(W5@)3'S0O1J#(4(W#/0$OC32I(*".9323
"_1H1*>)*5! P WNr!@?3;]7O1*>0&214!"%*CO@0+%&214"%@C;/0!((W#@0+%@<15E

2!1&:# !  3 $ ! /  9 # <65  <1% %45 1%' =!

1
0
9'  

 ()
  %@)(*I32!:"y(*".1*!$#$#<1L1*>)".1:19".8%5(;/0Io1&0(;%-`".@v!@)!=C
1**<1%Ci".@)3e6M"%
(<1=1*i"f+%%&)@)3c(W1".1*#%@{/0&21*-R9".
6Ci-R9".%EFH>0;+%%&)@)3c!%/0&21!`/)*25(*(*(,5"%9>
-R"%[1*4A)@)31>0G/M(*O1*#%@)"%$Q32Obk!!@)!G.-)30<bk!!@Q162zD1(Z.-0#@1!(W1]7O1*>*5(W/M1Z1*J1*>0OK/M(*<1O@O@=1*>0/0* P O&)(
-R"%41301**#@0\1*>0, P !@Q1(U.-1*>0,@0!C%E[uv>0@:1>0,+%%&0@)3 /)&21*7#(H P !$OQ"%3253'S"@0]j#"%+%\
"hC
6?,!! P 3  P !@6?!-R%".@%$I32!H#"%+%,I(U1".8!@&0/-R%7/025(*(*O@)+)EqX@ 1>0I(7!"%(*%S1>0%$I327O
".+VI(H.-K@0%1H&)9>
&)(*%E[J@),1>0%$I32!7#
".+(U
"hC;6?`30#(!"%3253 "%@)3:1*>0!!@Q1*$#C; P 3 O
"%+%&0$#3 6M/0*2!((W53'E

)%HA) "%$<Ns1*#V19"%(*82(!S1>0="%((*!#".1*53
1*#6?&0@)30(71DCQ/)#".$#$OC "%@0+%V-R*}"-R!] O$#$#(*@)30(U1;(W P !9".$k>&0@)30*530(H.#$O$#Z(*@)30(E

Utility
100%

Deadline

0
#+%&0

,(

Response time
J1*#$OO1DC:%-1>0 l (*&0$O1(JTG*232&?3:6C:";.-B1 l ".$ONXFHOF"(W8;V(Jw0&)@)o1O@%-KFH#

5!12  #&%' 

0
 / 2.-B14"%$<Ns1*#1"(W82(J"%$#(*
>)" P ,1O`6M%&)@)30(\"%((W2I"_13 ]7<1>L1*>)!fEJJ_]U
%" @)3A) "%$<Ns1*#J19"%(*8(S.1>0J1O#@0+%@?(D1"%O@Q1(%@:(*.-B1U*5".$ONm1O719"%(*8(".J@0%1G^2/0((W53
"%(".6)(*%$#&21*
1>0`@)(D1"%O@Q19(U"%*,!^/)*5(*(*3:!O1*>0JO@1!(H%-Z1>0`" P "%+%4(*/M%@)(*\1*#5(7aQ&0#*53'E

P ! 5S0&0@0$#O8`>)"%3
P ".$#&0(EqX@?(D1"%3S

 3# b5 / %  5 / 9-


5 9;2! /

4@n^0"%/)$O.-"(W%-B1V"%$<Ns1*#`1"(W8LI(\]6i60_]J(W#@0+?E %"%$O$#C%S'".-B1*!,".@

.
l

 
I(7$##983'S1>0*(*/?@)32#@0+=]U!6/)"%+%\#(U-R!19>053"%@)332#(*/0$I"hC%53;]7O1*>0#@L"!%&0/)$O\.-K(W5%@?30(H%@ 1*>0" P !9".+%E4_] P !5S
]7>0@e<119".8%5((W P "%$#@&21*5(1*L32I(*/0$#"hCc"f*5a&)(W1*3c/)"%+%%S]
(W1*#$O$32L@0.1=!%@)(*I32!,1>0;(WC2(W1* 1*f>)" P -t".#$O53'SZ60&01
!!$#C;!^/)*5(*(1*>?"_171*>)/?W-R*
".@?,.-1*>0`(*C2(D1! >?"%(732+%9"%3253'E
4@0.1>0![!^2"%/0$OH%-k",(*.-B1".$ONs1*#U19"%(*8`#(G"419"%(*8`>)"%@)32$#O@0+`"\aQ&05(D1K-R%",(*".1*5(W P "_1O@=#@
"V9".#$#]U"hC(*! P "_1*#%@
"%/0/0$##"_1*#%@ZE V@);"aQ&0(W1-R%(*! P "_1O@cI(,
"%32SZ1>0
*5(W/M%@?(W
(*>0%&0$I3d2!&)]7<1>0O@ %f(W5%@?30(,%@d1*>);" P !9".+%E
FH>0
(*/M%@)(*"hCn!O1*>06?
#@d1*>0
-R* .-7" /)*#@Q1*3c1#981%`"%@e"%/?$O+%CL((".+%%@{"!&0@Q1.-&)@)" P ".#$#"%60O$#O1DCi.(*".1(E=J$O1**@)".1* P $OCS']O+>1`(W1".1*1*>0
@)(W1*9".#@1\%@c1*>01*I98%!1*#@0+ 1"%(*8i"%( VU1$#"(D1,O@e!"(W.-  }%-(*! P "_1*#%@
aQ&05(D19(!S1>0,1*I98%!17(*>0&0$#3 6M/0*2!((W53 "%@)3:/)*#@Q1*3#@f$O5(*(U1>)".@ .(*@)30(E

4*

(

17&)(7@0_] ".@)"%$OCpV1>0#/?"%o17%-1>0,-t".#$O&)*,.-["(W%-B1J*5".$ONm1O\1"(W8;1*!1V<19(732"32$O#@0S06C
1"%8Q#@0+1*>)`^0"./0$#
%-[1*>0"%O$#]U"hC:*5(W P "_1O@1"%(*8kEJqr-[1*>)`1*I98%!1VI(J/0#@13L#@n"%6?&21 .:(W5%@?30(!SM]U-R!$Z1>)"_1V1*>0(WC2(W1*! I(4]U%8O@0+A?@0
"%@)3f+%!1V"-R!$Z%-K>?" P #@0+;621"%O@)3O@?(D19".@Q1V(*&0$O1(EHV(4"%$O"32C (W1".1*3S)#((*3L325"%32$#O@)(J%-(W%-B14*5".$ONm1O19"%(*82(J32;@0%1
(*&0$O1U#@ (*C2(D1!-t".#$#&0*5(!EKJ_]U P !5S%1>0\&21*#$OO1DC
.-Z1*>0\*5(W&)$<19(/)*232&)!3
6C;"(W%-B1U"%$<Ns1*#J19"%(*8-t"%$O$I(H@1O@&0&)(*$OC]7O1*>
1O"_-B1*41>0=!^2/0OCf.-[1>030"%30$O#@0"(V(*>0_]7@L#@c#+)E 2EVqX@nO+?E 2S?1*>0&21O$#<1DCf%-1*>0*5(W&)$<19(4/0232&)!3i"%* %

*

Version 2 CSE, IIT Kharagpur

O-/030&)53f6?!-R%1*>032"32$#O@0S?"%@)3i"_-B1!41*>0=30"%30$O#@0=I(J/?"%((W53:1>0=&01*#$OO1DCf.-K1*>0*5(W&)$<19(4(*$O_]7$#C;-t"%$O$I(J%bd]7O1*>L1OE
)%7(W%-B17*5".$ONm1OV1"%(*82(1*>)".1U1DC/0I!"%$O$#C;2!!&0HO@/09"%1*I!".$'"%/0/0$##"_1*#%@?(!SQ1*>)V1O6M%&0@?30(H&)(*&)".$#$OC
9".@)+%V-R* "=-R9"%1*#%@
%-K"(*@)3:1*
"-R!](W5%@?30(!E

5 I12 #:%' 


 / }@0@2Ns"%$<Ns1*#;19"%(*8dI(@0.1;"(*(*2I"_1*53e]7<1> "%@Cc1Of6M%&0@)3)(!E U"%@yC%&{1>0O@)8.-V"%@C
!^2"%/0$O,%-"@0%@0Ns"%$<Ns1*#419"%(*83!@L(W17.-Z1>0#@1!9"%1* P ,%/0&01"_1O@)(HC%& /M!*-R% @0_] "30"hC2(U"%*\>)"%@)32$#36C:(W%-B1
"%$<Ns1*#1"(W82(E4_] P !5Sh".6M%&211D]V%1*>0!H325!"%30(6)"%98kS_]7>0@/0&21*(]U!G@0%1#@Q1*!9"%1* P U".$#Q(D1K".$#$Q1"%(*82(Z]U!
@0@2Nr*5".$ONm1O%EKv-R] ^0"%/)$O5(.-@)%@2Nr*5".$ONm1O719"%(*82("%* Z6)".19>;/025(*(*O@)+7zD%6)(SQNr"%O$sS2".@)3;6)"%98+%%&0@?31"%(*82(G(*&)9>
"( P @1H$#%+%+!9(!E %&
"hC
>0_]U P "%*+&041>)"_17 P !@:1*>05(W\19"%(*8(SO@ 1*>),(W1*Io1J(W@)(*V%-Z1*>)V1!fS032>)" P \!*1"%O@ 1*#
6M%&0@?30(!E7)%4!^0"./0$#%S?"%@LNr
".#$#(4^2/Mo131;*5"%9>fO1(430(W1*#@)"_1O@i"_14$#"(D14]7O1*>)O@n"
!%&0/)$O`%-[>0%&09(7%-K6M!#@0+:(*!@Q15E
#O$I".7I(U1*>)`!"%(*\]7<1>f"6)".19>/0!((W#@0+VzD%6L(*&)9>"(U/)"hCQNr(*$O#//0*#@Q1*#@0+)EKuv>)".171*>0@f*5".$#$OC
I(U1*>0`30<bk!!@)!,6?!1D]!@
"@0@2Nr*5".$ONm1O\1"(W8".@)3f";(*.-B1J"%$<Ns1*#,1"%(*8 3n)%J@)%@2Nr*5".$ONm1O\1"(W82(S21*>)="%((W2!#".1*3:1*#`6M%&0@)3)(4".\1DC/0#".$#$OC .1>0V30!U.-Z"=-R!] #@Q&01*(S>0%&)(%U P !@ 3)"hC(EqX@ @Q1*9"%(W1S1*>0V1*#V6M%&0@?30(H"%((W2I"_13
]7O1*>(W%-B1U"%$<Ns1*#J19"%(*8(U".
".1HQ(D1J%-Z1*>)%932!7%-"-R!](W5@)30(E

-(

  L
  )L

ud=>)" P `(W!@L1>)"_1V1*>0*1*@05(*(H%-*5".$ONm1O19"%(*8(V32!/M!@?3L6?%1*>i@f1*>0$O+%I!"%$*1*@05(*(H%-[1*>0*5(W&)$<1V"(J]U!$#$"(
@
1*>0,("_1*I(W-t"%o1O@;.-'1>0,%(*/?@)32#@0+1*#O@)+!%@)(W1*9".#@Q1(EFH>0V1*#O@0+@)(W1*9".#@19(G"(G]UV(*>)".$#$k(W4#@;1*>)#(75o1*#%@ZSQ#@
-t"o17"./0/0$#C1*!*1"%O@: P @Q1(O@:"(WC2(W1*E[FH>05(WV P !@Q1(
"hC6M\+%!@)!9"_1*536C1>0V1"%(*82(1>0!
(*!$ P 5(G1*>)V@ P #*@0!@Q1
%-[1*>0(WC2(W1*!fE44@n!^2"%/0$O=.-G(*&)9>i".@i P @1V#(41*>0 P !@Q14.-G"o1 P "_1O@i.-":%1*E l !=6M!V1*>?"_141>0*5(W&0$O1(4
"hC
6M
+%@0!9"_13n".1`32<bk!!@Q1,1*#(`"%@)3c<1`
"hCL@0%1,6M
#@c1>0-R% .-H"f(W#@0+%$#%@01O
(*&0$<15Eud
=&?(D1,A)9(D1/0%/M!$#C
9>)"%"o1!OpJ1*>) P @Q1(H#@f"(*C2(D1!fS21*&0@?32!9(D19".@)3:1*>),1*##@0+
6M!>)" P #%7%-".$ONs1*#(*C2(D1!
(!E

 !#    
*

&( * )

    /   

4@ P !@Q1=
"hCn6M:+!@0".1*3d<1>0!6QCc1*>) (*C(W1*
!$#"(*(*<A?3 O@Q1*1>0,-R%$#$O_]7#@0+1D]U1DC/M(

!$#&%< 

 =! (

  5

 =! (

(

`O1(!@ P O%@0@15ELU"(W53d%@e1*>)#(@)(WI32".1*#%@S P @Q1(=".@{6M

 1   =Q1*#=&0$#&)( P @19(,".+!@0".1*53i6CL1*>)
!@ P O%@0@1".@?3d"o1%@c1*>);(WC2(W1*!fE
FH>05(W P !@Q1(,".@
6? /030&)53"%(*C@)9>0%@0&)(W$#CytmE %Ee"./M!O232I!"%$O$#C0oEn)%^0"./0$#%S"L&?(W/0((*O@0+c"L60&21*1*%@Y%@"i1*!$#!/)>0%@0(W!1
+%@0!9"_1(U"(W1*#=&0$#&)(U P !@Q1H1*"%1U@:1>0\1*!$#!/)>0%@0,(*C(W1*fEGQ1*#=&0$#&)(H P !@Q19(".@f".$I(W6?,+%@0!9"_13:/?*#232#".$#$OCE
4(7"%@#@)(W1"%@)S0%@?(WI32!U1>0/?*#232I(W@)(W#@0+.-1*>0,1!/M!9"_1*&)*%-Z1*>)*5"%o1%H#@f"@&)!$O5".7/0$I".@Q1E
 1  
l (*/?@)(W P !@Q1("%* &)(W&?".$#$OC{/0232&)!36Ce1>0L(WC2(W1*! #@ *5(W/M%@)(*;1d(*%f(D1O&0$#&)( P !@Q1(E
l  (*/M%@)(*J P !@Q1(U"%1@
1*>0\!@ P #*@0!@Q1EK0!^2"%/0$OSQ!%@)(*I32!H"=9>0#".$)/)$#"%@1H]7>0*4"((*%@:"([1>041!/M!*N
"_1&0*U^0!!3)( % VSh1*>)H(*C2(D1!g(*/M%@)30(6C=(*]7<199>0#@0+V%b
1*>0H>05"_1!5E4!%S_1>0H P @Q1%-)1*/?".1*&0H^032#@0+
 I(J1>0(W1*#=&)$O&)(\".@?3i(W]7O19>)O@0+:.be.-[1*>)=>05"_1*4I(J1>0=(*/M%@)(*%E l (*/?@)(W P !@Q1(V!".@L<1>0!\6M=/M!O232I
%7"./M!#30#%E

4@v P @Q1:
"hCY<1>0! 6?cO@)(W1"%@Q1".@)!%&?(
%;
"hC >)" P i!!*1"%O@ 32&)".1*#%@Ew0:!^2"%/0$OSJ"{60&21*1*@ /0((
 P !@Q1:I(
3 5(*!*#6M3c6QCn1*>0;30&0".1*#%@c-R%]7>0I9>d1*>0
6)&21W1%@e]U"(,8%/21`/0((W53'E;%;".&01*>0(,".+%&)=1>)"_1=32&)".1*#%@)"%$[ P @Q1(".
2
"%$O$#C@).1U"`6)"%(*#71DCQ/M4%- P !@Q1SQ60&21H!".@:6?V^2/0((W53&)(W#@0+`%1*>0 P @19(!EqX@
-t"o1SQO1UI(/M((W#60$#J1@)(*#32G"=30&0".1*#%@
 P !@Q1V"(4" %60#@)"_1O@%-[1D]: P @Q1( H":(D19".*14 P !@Q1V".@?3i".@L@)3L P !@Q1EV0%V^0"./0$#%S?1*>)=60&21*1*@i/0((J P !@Q1V".@i6M
325(*!*#6M36C:"
=60#@)"_1O@ %- (W1".*1760&21*1*%@L/)*5(*(x0".@)3 !@)360&01W1*@f/0*5(*(x0 P !@Q19(!E4_] P !5S<1JI(7%-B1*!@L!%@ P @0O@Q1U1
19".#@
1*>0\@0%1*#%@;%-Z"=32&09"_1O@)".$M P !@Q1EKqX@
1>0I(G1^1S]UV!%@)(*#30!H32&09"_1*#%@?".$) P @19("("(W/M!#"%$M!$#"(*(G.-Z P @19(!E 4(*#@0+
1>0`/0!$#O#@)".C:@).1*#%@?(4".6M%&014 P !@Q1(J30#(&)((*3f#@f1*>0I(4(*&06)(*1*#%@S?]=!$#"(*(*O-RC P ".O&)(H1DC/M(J%-K1*##@0+:!%@)(W1*9".#@Q1(7#@
(*&06)(*1*#%@ E E E

(



Version 2 CSE, IIT Kharagpur

  

  2

) *

*  +



       

% 

   *    

$I"%((*<A?"_1O@L.-G1>032<bk!!@Q1,1DC/?5(\.-1O#@0+L%@?(D1"%O@Q1(4#(,#/?W19".@Q1E .1%@)$OCf]U%&0$I3iO1+% P =&?(\"%@n#@)(*O+>1,#@1


1>0
32<bk!!@Q1,1DC/?5(,.-1*##@0+L@)(W1*9".#@19(V1*>)".1".@c^2#(W1O@e"f(WC2(W1*S'6)&21`<1`".@e".$I(W >0!$#/c&?(\1*LaQ&0#98$#CL#30!@Q1*O-RCi1>0
32Obk!!@Q1,1*##@0+i!%@)(W1*9".#@Q1(41*>)".1=!".@c^2I(D1,-R% "f!"(W&?".$K^0".#@)"_1O@n%-U"/0%60$#!fEFH>)"_1I(!S#@{"%3030<1O@n16M1*1*
&0@?32!9(D19".@)30O@0+4.-21*>)G6M!>)" P #%%-)"J(WC2(W1*ShO1".@="%$#(*7$O!1&)(]U%84%&01Z1*>)(*/?5OA?!".1*#%@.-)"J*5".$ONm1OG(*C2(D1!"%!!&09"_1*$OCE
V<bk!!@Q11O#@0+i@)(D1"%O@Q19(\"(*(*2I"_13c]7<1>e""%$<Ns1*#(*C2(D1!
6M!>)" P #%9".$'@)(W1*9".#@19(!E

!".@d60"32$OCn6?;!$#"(*(*<A?3cO@Q1*L/M!*-R%
".@)!"%@)3

2T;|i 1|UqZrvX T0X  r$OxSF|~Z;Vr$SQOYZ}|~TSFp$T0X  r$OxSF|~Z;Vr$SQO SFpRZ$SYZ}|~T"VU{};OMT]L2r0SFpRTL|TO {}2rROxT}<SFp$TOxP$OxSQT}U`T;pRZ$y;V 1|~Z[


X)2rROQSF| Z;VrSQOZ;|TSFpRT0X 2rROQSF| Z;Vr$SQO SFpvZ$SZ;|~T`VU{};OMT]L2r0SFpRT0OQSwVUu[ V -T}rRT}| Z$SQT] P0SFpRT0T}r$y;V| r-UT;rS)

U!>?" P #%9".$0!%@)(W1*9".#@Q1([@)(*&0*H1>)"_11*>0V!@ P O%@)@Q1.-Z"`(*C2(D1!


@)(W&)*\1*>?"_171*>)`%/0&01*!J(*C2(D1! /M!*-R%
(7(*".1*I(D-t"o1%O$#C%E
"%9>:%-

C D  H}D

 IC".@)3

4$#"hCf%@)(W1*9".#@Q1

45"%32$##@0=%@)(W1*9".#@Q1

4&)".1*#%@i%@)(W1*9".#@Q1

#(G]$O$M6?>)" P 53'S%]7>)!"%(/?W-R*
".@?J@)(W1*9".#@19(

GIC   &HvD  @)(D1"%O@Q19(U".@ -R&0*1*>0J6?`!$#"(*(*OA)3 O@Q11>0,-R%$#$#_]7O@0+1>0*\1DCQ/M((

)(

ud@0_] !^/)$#"%O@1*>)(*V1>0!`$I"%((*(U.-[@)(D1"%O@Q19(

1&

LB

), 32!$I"hC{%@?(D1"%O@Q1"./21&0(=1*>0   
  1*#{m32!$I"hC0,1*>?"_1
=&)(W1!$I"./)(*:6M1D]U!@y1>0 2&0*@) .-J1D]U
"%*60O1*9".C P @Q1( "%@)3 .E`J-B1* 2!!&0(S'O- =2!!&09(V5".$O#!41*>)"%@n1>0  
    _S1>0!@e"32!$I"hC P #%$I"_1O@iI(
(".I3;1
2!&)E[w32$#"hC:!%@)(W1*9".#@Q1U@:1>0 P !@Q1 !".@6M^2/0((W53:%V-R%"%$O$#C:"(U-R%$#$O_]J(
5

`B -C vE

  


 

 !
J"%@)3 


(



LB -C vE

uv>0*  G".@)3  "%*H1>0J1OV(W1"%/)(@1*>0V P @Q1( 



(*/?5o1* P $OC".@)3
I([1*>)  
   
(W/M!<A?3
-R% .E32$#"hC
!%@)(W1*9".#@Q1U@;1*>)\ P @19( \]7O1*>*5(W/M11=1>0, P !@Q1 I(U(*>0_]7@ /0#1**I".$#$OC
#@f#+)E 0EKqX@#+)E )S
32@0.1(V1*>)"o1*&?".$[(W/)".9"_1O@LO@n1*#6M1D]U!@i1>02&0*@).-1>01D] P !@Q1(! "%@)3 ".@)3c3iI(41>0*5a&)O3
#@0O&0}(*!/?".9"_1*#%@ 6?!1D]!@1*>),1D] P !@Q1(m32!$I"hC0oEKqr1JI(7"(WC
1
(WV1>)"_"
1 ,&)(D1J2&0J".-B1*!J".17$O5"%(W143:1O&0@)<19(
>)" P V$#"%/)(*3(W#@),1>02!!&0*!@?\.#
- S2.1>0!]7#(*,](*>)".$#$'>)" P ,"32$#"hC P #%$I"_1O@E

>= d
d
t=0
#+%&0 

1<:#*3

t(e1)

t(e2)

V!$I"hC@)(D1"%O@Q1JU1D]U!@FH]U 

LB

R*

P @19(H ".@?3:

30"%30$O#@0%@?(D1"%O@Q1\"./21&0(41*>0/M!I((W#60$#$ &% 
  (W/)".9"_1O@L6?!1D]!@e".@C1D]f".60O1*9".C  P @19(
ELqX@%1*>0=]U%930(S1*>) (*@)3e P !@Q1 tmE %E  =&?(D1`-R$O$#_] 1*>0:A)9(D1= P @1RsE E o]7O1*>0#@{1>0:/M!#((W#60$#

"_^2#=&0 (W/)".9"_1O@n1OEL@)(WI32,1*>)".1  `".@)3   ".1*>0
1O:(W1"%/)(%@d1>0
2!&)*!@)!.-H1*>0: P @Q1((
"%@)3) ,(*/Mo1 P !$#C "%@)3
I(H1*>0    "%(J(*>0_]7@f#@f#+)E EGqX@i#+)E 2S
32@0.1(H1>0="o1*&?".$(*!/)"%".1*#%@6?!1D]!@
1>0;1O;%-J&0!@)!
.-H1*>0:1D]L P @19
( "%@)*
3 .S[".@)3{3#(`1*>0:30"%30$O#@0%Ei}32"32$#O@0 %@?(D1"%O@Q1`#/)$O#(=1*>)".+
1 

"%@)3

' 

 
;C 7C


*.

Version 2 CSE, IIT Kharagpur

&)(D1\2!&)4]7O1*>0#@n3f1O=&)@0<19(4%!%@)(W1*9".#@Q1

(

 x (J2!!&0*!@?%E7ud".@i"%$<1!@)"_1 P !$#C (W1"_1`1>)"_1   4".@)3 


  !

 h7&)(W1V(*".1*I(D-RC1>0

  

<= d
d
t(e1)

t=0

#+%&0

t(e2)

V"32$#O@0@)(W1*9".#@17U1D]U!@FH]U;

R*

P @Q1(U ".@?3 

FH>0,325"%32$#O@),"%@)3:30!$I"hC;%@?(D1"%O@Q1(U!"%@;-R&0*1*>)!H6?!$#"(*(*<A?3;#@Q1*1D]U`1DC/?5(H"9>:6)"(W53;%@ ]7>01>0!U1>0%@?(D1"%O@Q1
I(HO/M(*3%@ 1*>)`(D1O&0$O&?(7%7@:1>0*5(W/M%@?(W, P !@Q1E[FH>0I(7>)"(H6?!@f^2/0$I".#@053:]7O1*>L(*%,^0"./0$#(H#@i%EE 2E

\*

Public
Switched
Telephone
Network
(PSTN)

Telephone
System

Call
Receiver

Call
Initiator
Environment

2(

#+%&0  29>)!
"_1# l /0*5(W@Q1"_1O@ %-"
F!$#!/0>)%@0`C2(W1*!

/ !$#&5


B 32&)".1*#%@ %@?(D1"%O@Q1%@v".@  P !@Q1;(W/M!<A)5(1*>)f1*#L/M!#3  P !]7>0#9> 1>0L P !@Q1;"%o19(!E 30&0".1*#%@
! %@)(W1*9".#@Q1[".@!O1*>)!6MJO@)O&0 1DC/M7%[
"_^2#=&0 1DC/?EKFH>)7#@0#=&0 1DC/?V32&09"_1*#%@@)(W1*9".#@1[aQ&0#*5(1*>)".1G%@?
1>0: P !@Q1=(W1"%W19(!S1*>0  P !@Q1==&?(D1=@).1=@)3{6M-R%;"i!!*1".#@{O@)O&0 32&09"_1*#%@Z[]7>0!"(`"f
"_^2O&0 1DCQ/M 30&0".1*#%@
!%@)(W1*9".#@Q1UaQ&0#*5(U1*>)".1J%@)!\1*>0 P !@Q1J(W1".*1(S1*>) P @Q1H&)(W1H@)36?!-R%"
!*1"%O@
"_^2#=&0 30&0".1*#%@!$I"./)(*(E
5



  

* 2)+

  
 




       %

/  

  *-   

ud:#$O$#&)(W1*9"_1
1*>032ObM*@1$I"%((W5(.-71O#@0+n@)(W1*9".#@19(6Cc&?(W#@0+L1>0:!^2"%/0$O5(-R% "f1*$O/0>0@0:(*C(W1* 32#(&?(*(*3
#@j sEc (9>0!
"_1#:32#"%+%9". .-J"f1*$O/0>0@0 (*C2(D1! #(=+% P !@{#@y#+)E )E
%1*
1>)"_1q>)" P 
#@Q1*!@Q1O@)".$#$OCe329"h]7@{".@
$#3Y(D1DC$#3y1*!$#!/)>0%@0S6M!"%&)(*O1(/?".1*#%@yI("(W#!1*d&0@)30!9(D19".@)"
3 YJ!%SG1*>01!$#!/0>0@0>)".@)3)(W!1
"%@)3{1>0LT&06)$OI
]7O19>)3LF!$#!/0>0@0 !1D]*8ctT0F 7"%*@)(*#32*53f"%(J!%@)(W1*O1*&21O@)+1*>0=!%/0&21!4(*C2(D1! ".@)31>0&)(*!9(J"%(H-R*#@0+
1>0V@ P #%@0!@Q15EqX@:1*>0V-R%$#$#_]7O@0+?S]V+% P V"=-R!](W#/0$O\^0"%/)$O\%/M!9"_1O@)(%-1*>0\1!$#!/0>0@0,(WC2(W1*! 1#$O$#&)(W1*9"_141>0
32Obk!!@Q171DC/?5(H.-1*##@0+;!%@)(W1*9".#@Q1(E

Version 2 CSE, IIT Kharagpur

1<:#*3"9-5)! / 2#*=!&

#@{":"%$<Ns1*#(*C2(D1!
(*/?@)(*V1DC/M%E

qX@=1*>0-R%$#$O_]7#@0+?S]UU30#(&)((Z-R%&0K32ObM*@11DC/?5(%-)32"32$#O@0U@)(D1"%O@Q19('1*>?"_1K"hC,6MI32@1<A?3
30!/M!@)32#@0+L@c]7>0!1*>0,1*>01D]Uf P @Q1(\O@ P %$ P 3nO@{"f325"%32$#O@)!%@)(W1*9".#@Q1,"%*(W1*#=&0$#&)(\1DC/?


!$#&%< 0 !#:%(3* 8 00< qX@1>0#(G!"%(*%S.1*>07325"%32$#O@)7#([32!A)@0536M1D]U!@=1D]U(D1O&0$#mE[FH>0I(K#(["\6M!>)" P #%9".$2@)(W1*9".#@15S


(W#@)!41>0\!%@)(W1*9".#@Q1UI(UO/M(*3:%@;1>0(W5@)3; P !@Q1H]7>0I9>:I(U"(W1*#=&0$#&)(EJ@:!^0"./0$#V%-".@f01DC/M,.-325"%32$##@0
@)(D1"%O@Q1H#(U1>0,-R%$#$#_]7O@0+8(
7 =Rs 2=v7}22 17 =$R-   1

 7;=}-;R 8--2 7}12$
;2;;28
 - --;; v22}  12-=}

qX@:1>0I(7^0"./0$#%S1>0`32I".$#O@)+1D]@)(W5&21 P 32O+<19(H*/0(*!@Q1(U1>0,1D](W1*#=&0$#'1*1>0,1*$O/0>0@0(WC2(W1*!fE

!$#&%<   5 "8 0

< qX@,1*>0I(Z"%(*%S!1*>0G30"%30$O#@0I(32!A)@03,@\1*>0(*/M%@)(*[ P !@Q1S5"%(*&034-R* 1>02!!&0*!@?


.-U1*>0 %(*/?@)32#@0+(W1*#=&)$O&)(` P @Q1E FH>)#(I(="f/M!*-R%
".@)!
%@?(D1"%O@Q1S(W#@)!1*>0:!%@)(W1*9".#@Q1#(#/?Q(W53d%@{"
*5(W/M%@?(W\ P !@Q1E[J@L!^0"./0$#\%-"%@L l 1DC/M.-[32"32$O#@0@)(W1*9".#@17I(U1*>0,-R$O$#_]7#@0+

(
7 ; 2 ; R2--22;2;-W vs 7v2; ' =R2-=;-  v7vR
$$ ; ; }28< ; -=; 1;=$;;242-7; 11=;  ;8;- 2;  ;

qX@1*>)#(^0"%/)$OSh1*>0$OO-B1*#@0+\.-01>0!! P Z>)"%@)3`(*1!/)*5(W@19(Z"\(D1O&0$#&)(1J1>0G1!$#!/0>)%@0H(WC2(W1*"%@)3/0232&)1*#%@
.-1*>0`32I".$1*%@)\I(U1*>)*5(W/M%@)(*%E

  50!$#&%<  8QA0<

J*;1*>0:30"%30$O#@0;I(`@e1*>0 /0*232&?o1*#%@e%-J*5(W/M%@)(*;&0@Q1*53d-R* *1 >) *(*/M%@)32#@0+


D( 1O&0$#&)(!E\FH>0I(4I(V":6?>)" P O"%$Z@)(W1*9".#@15S?(*O@?`1>0%@?(D1"%O@Q14I(4#/?Q(W53L%@i1*>0(D1O&0$O&?(4 P ! @Q15EVJ@c^0"./0$#
.-K".@ l :1DCQ/M.-[325"%32$#O@),!%@)(W1*9".#@Q17#(U1>0,-R%$#$O_]7#@0+

8(
7 ; 7}2} ;1 1;7<28R7v77R4 =v 7}1R-$1; ;}28< ; -=; 2
v8v2R;12-7 ; v2-v2-2;}v2; 42;=;

  5    5 $ 8xA<2 J@ lJl 1DCQ/M.-H32"32$O#@0


@)(W1*9".#@1\#(30A)@053d%@i1D]U*5(W/M%@)(* P @Q1(EqX@c1*>0I(!"(WS


%@)!41>0\A)9(D17(*/?@)(W\ P !@Q172!&)(SQ1*>0(*@)3 *5(W/M%@)(*\ P @Q1U&)(D172!!&0H6?!-R%"!!*1"%O@32"32$O#@0EFH>0#(HI(H"


/?W-R*
"%@)=!%@)(W1*9".#@Q1S'(*O@)!`1>01*##@0+f@)(D1"%O@Q14>?"%(\6?!@d32A)@)3i@c":*5(W/M%@)(*= P @15EJ@n!^0"./0$#%-G".@
lJl 1DCQ/M.-[325"%32$#O@),!%@)(W1*9".#@Q17#(U1>0,-R%$#$O_]7#@0+

8(
 7; =$2} =R2;2 ;111 - ;-122R ;28$4=$ ; ' =v =R;2
2}1-=R$- ; ;;8<-2-}  ;-2;}<$ ;2

J*,O@0+6)"981*@0`".@)3:1*>)`%(*/?@)32#@0+#@0+1*%@),"%*\1>0,1D](*/?@)(*V P ! @Q19(!E

1& ) ` 5! / 2#*=!

ud4!"%@#32@Q1*O-RC@0$OC%@)H1DCQ/MJ%-k32$#"hC@)(D1"%O@Q1Jm)1DC/?hKO@1>071*$O/0>0@04(*C(W1* !^2"%/0$OJ1*>)".1G]J"%*7!%@)(*#30!O@0+?E
4_] P !5S%#@.1*>)!U/0*60$#!
(U<1H
"hC
6?\/?Q(*(*#60$OV1*I32!@Q1*O-RC;32ObM*@Q1U1DC/M(U.-32!$I"hC
%@?(D1"%O@Q1(EKJ@)
1DC/MV%-"30!$I"hC
!%@)(W1*9".#@Q1UI(J"6?>)" P O*I".$'!%@)(W1*9".#@Q1E[J@f^0"%/)$O,.-K".@i0:1DC/?%-32$#"hC %@?(D1"%O@Q1H#(H1>0,-R%$#$#_]7O@0+

=;7=$ -8}1-s  8=RR2;8- 7}11-2--1 R; };2

1;=$ ;;242-7; 11=; ;R=};2-2}8 ;2  ;2 ;-

8(

 --; 

4!1>0
32!$I"hCn!%@)(W1*9".#@Q1\I(`32!A)@03c%@d1>0 P @Q1,%-H30#"%$O$#O@)+%-G1>0
@0^1=32#+%O1;t(W1*#=&0$#&)(9,"_-B1!`"f32#+%O1`#(32I".$#$#3
m".$I(W
"(D1O&0$#&)(E
5

/ !$#&5 B

3 &09"_1O@n@)(D1"%O@Q14@c"%@i P !@Q1\(*/?5OA)(V1>0=1OO@Q1! P "%$ P !V]7>0#9>n1*>0 P !@Q1\"o19(!EJ@c^0"./0$#=%-G" 30&0".1*#%@


2
!%@)(W1*9".#@Q1UI(H1*>),-R%$#$O_]7#@0+

(
2;2  - 112}-  ;28}--  - ;; ;;8<nRW;; v7 2-  ;;2-2-2;

 2;2  - 112}-;-2;=};- v=$ - ;21} ;;2 <nRW;;12 v7 2


$2; -=v; '; --2-
 2; 21;212;12 1;-- =-22;1} ;;2 < }}211 
R ;8-12-=} 7}2} 

*;*

Version 2 CSE, IIT Kharagpur

Timing Constraints
Performance Constraints

Delay

Deadline

RR SR SR

RR

Behaviorial Constraints

Duration Delay

RS

SS

Deadline

SS

Duration

RS

#+%&)*  [$I"%((*<A?"_1O@ %-FH##@0+ @)(D1"%O@Q19(

$I"%((WOA?"_1*#%@Y.-J1>0L32ObM*@11DC/M(.-V1*##@0+{@)(W1*9".#@19(`1>)"_1
]U30#(&)((*3#@Y1*>0I(
(W5o1O@yI(
(W>0_]7@yO@ O+?E
%1*;1>)"_1"L/?W-R*
"%@):!%@)(W1*9".#@Q1=!"%@{!O1*>0=6M 32$#"hCS325"%32$##@0%SK%32&09"_1O@)".$[1DC/M%EnFH>):32!$I"hCd%=325"%32$##@0
 E
!%@)(W1*9".#@Q1(H%@f/M!*-R%
".@)!,".@f!O1*>)!J6M lJl % l 1DCQ/M%EUO#$#"%*$#C%S01*>0`6M!>?" P #%I".$@)(W1*9".#@19(H!".@f<1>0!J6M=32$#"hCS
325"%32$##@0%S?%V30&0".1*#%@)"%$'1DC/?E7FH>032$#"hC %430"%30$O#@0=!%@)(W1*9".#@Q1(7@L6?>)" P OJ.-[!@ P #*@0!@Q14!"%@L!O1*>046M l fV0
1DC/M%E

q)) ) )  `


  L3

qX@y1*>0I((W5o1*#%@Y]32(#6?>0_]1*>) 1O#@0+e%@?(D1"%O@Q1(=#30!@Q1*OA)3Y#@ 5.E E E n".@6Mf30!$#$O53'E+@L232!$#$#O@0+c1*#


!%@)(W1*9".#@Q1(`I( P !CdO/M%*1".@Q1(W#@) %@)! "n232$H.-71*>):1O !%@)(W1*9".#@Q1(=O@ "n(*C(W1* #(@)(D1*&?o1*53'S[O1".@(*! P 
"(\":-R%
".$[(*/?5OA?!".1*#%@d.-G1>0
(WC2(W1*E0&0*1*>)!5S'<-7".$#$1*>01*#O@)+f!%@)(W1*9".#@Q1(\#@d"(WC2(W1* ".=232!$#$#3d"%!!&09"_1*$OCS
1>0!@fO14
"hC; P !@f6?&?(W53:1;".&21%
"_1#".$#$OC:+%!@)!9"_1*,232,-R%}<15EGU(*#30(7(*! P #@0+
"%(7"
(*/MOA?"_1*#%@ZS030!$#$O#@0+1*#
!%@)(W1*9".#@Q1(H!"%@ >0$O/1 P !O-RC:".@)3 &0@)30!9(D19".@)3"*5".$ONm1O(WC2(W1*E



bC C

7C

FH>0232$O$#O@)+;"./0/0"9> ]U`32I(*!&)((7>0!I(76)"%(*3@   

    t[ @n(EU4@iK@ #(V"/?_]U!*-R&0$k1*$
]7>0I9>;>)"($#%@0+=6?!@;&)(*3
1*=232$)1"32<1O@)".$M(WC2(W1*(EqX@:".@:[ @SQ"`(W1".1*V#(U32A?@03
#@
1!(G.-'1>0 P ".$#&05("(*(*&03
6C
(WV"_1*1*O6)&21*5(!E[0!^0"./0$#%SQ1*>0,(W1"_1(.-"%@;!$# P ".1*%
"hC6M,32!@0%1*53;#@;1**
(.-O1(H32#*5o1O@)(G%-.1*#%@ZEK4!
32#o1O@ I(H1>0`"_1*1*O60&01*%S26?"%(*3%@]7>0I9>:1>0`(D19"_1(7&0/ZS032_]7@S)"%@)3 (W1".1*#%@0*C ".\32!A)@053'E
qX@"%@K
@ 30!$sSK".1"%@QCc/?O@Q1.-H1*# "i(*C2(D1! !".@{6M:#@".@Cd%@0:.-J"R/M((*O60$#CeO@0A)@0O1*5`@&0=6M!.-J(D19"_1(E
(W1".1*#(,!/)*5(W@13c6Cn"f#!$OEFH>)(*C2(D1! 9>?".@0+(,(D19"_1;32&01*L P !@Q19(41>)"_1=9>?".@0+=1>0 P ".$#&0(,%-DSZ%,!$I"_1O@)(
"%@0+ 1*>0;(W1".1* P ".#"%60$O5(!E(D19"_19>?".@0+I(".$I(Wf!"%$O$#3d"f(D19"_11"%@)(*<1O@E 1"%@)(WO1*#%@e!"%&)(*O@0+ P !@Q1
"hCL!O1*>0
6M".@:#@Q1*W-t"\ P @Q11>)"_1J".V1*9".@)(*<1*1*3 6M1D]U!!@:1*>0,@ P #*@0!@Q17".@)3;1*>0/0&21*7(WC2(W1*! %U<1J&0$I3 "%$#(*=6M".@
#@Q1*!@)"%$ P !@Q1\1*>)".1\I(\+%@0!9"_13i"%@)3i@)(*&03n(*%$#!$#Cf]7<1>0#@n1>0(*C2(D1!fE` 1*9".@)(*<1O@L-R%%@)(W1".1*`1"%@0.1>0!\I(
!/0(*!@Q13`6C=30"h]7#@0+,"\30O1*3".9-R*w1*>)H(*%&)!G1,1*>07325(D1O@)".1*#%@ft(*!J#+)E .EFH>07 P @1[!"%&)(*O@0+"V1*9".@?(WO1*#%@
I(V"%@0@0%1"_13f@f1*>0".9.EJud=8!!/L&0V30#(&)((*O@)(J%-[[ @ 1*
1>0=6?".`O@0#=&) (W#@)=]"%((W&01>)"_1V1*>0*5"%32JI(
-t"%#$##"%7]7<1>6?"%(*#,[ @ 30!$#$O#@0+
.-1*9"%32O1*#%@?".$(*C(W1*
(!E

 C ;C 

C
 bC


=C

ud;&)(*:".@ %  

   e*G[ @c,1*n232$1O !%@)(W1*9".#@Q1(E [ @ ^1*@)30(`1*>0:1*9"%32O1*#%@)"%$
[ @ 6C#@)*/M%9"_1O@0+c1*>)i"%o1O@Y%-,(*1*1*#@0+{"d1*#!;".@?3y1>0L^2/0#C P !@Q1
.-\"c1O!5E FH>0L@0%1".1*#%@)(]Uf&)(Wf-R
!%@)(W1*&)o1O@i.-G[ @i(,".(*#/)$O".@)3c(D1"%O+>Q1W-R%]H".93'EVFH>0*!-R%=9"_1>0!V1*>)"%@n#@Q1*30&)#@0+ 1*>0 -R%"%$O$#C%S']U=>?" P 
#$O$#&)(W1*9"_13 1*>0 1>0*&0+%>f".@^0"%/)$O#@L#+)E %0E[FH>0!^2"%/0$O`(*>0_]7@ O@i#+)E .325(*!*#6M(U1*>?"_1JO-K"%@ P @17 2&09(
]7>0@f1*>0&0!@Q1V(W1"_1`.-K1>0=(*C(W1* #(V( S01*>)!@n"%@i"%o1O@f]7O$#$6M19".8%@L6C(*1*1*#@0+:"1O!V1*:^2/0#*#@L1*>)=@0!^Q1 .
#$O$#Z(*@)30(7"%@)3;1>0`(*C(W1* 1"%@)(WO1(U1
(D19"_1*( 2E

*

I*

*.

Version 2 CSE, IIT Kharagpur

e1/set timer(20 ms)

s1

s2

* 2(

#+%&0 . G@ P ! @Q1*#%@?( V(W53O@A49"h]7#@0+


".@AG[ @

(

udJ>)" P J".$#*5"%32C32#(&?(*(*31*>?"_1 P @19(!"%@


6?V%@?(WI32!31`6?V.-k1D]U,1DCQ/M( K(D1O&0$O&?( P !@Q1(".@)3(*/M%@)(*7 P !@Q1(E
ud=>)"3i".$I(*;32#(&?(*(*3i30<bk!!@Q141DC/M(4.-[1*#O@)+ @)(W1*9".#@19(J#@c5o1*#%@ E 2E )E _w
] ]U`^2/0$I".#@i>0_] 1>0(*=@)(W1*9".#@19(
".@6?232!$#$#36C;&)(*O@0

+ [ @i(E

!#:%(3* 0!$#&%< A8 00<k9-5)! / 2#*=!& !1V&)(\@)(*#32J1>0!^0"./0$#=.-G"%@c0L1DCQ/M=%-G32"32$#O@0@)(D1"%O@Q14]U=>?"%3


2o1O@ E E 2(  =; 7R8v7=R2 ' 1;7}11; 21;1 } 4 ;8;-k 1
7=$2=v 7}R-$  1  <}1 ; ;}28
FH>0I(=>?"%(6?!@232!$#$#3#@Y#+)E * EdqX@y#+)E *
6)(W P ,1*>)".1V"%(V(W@i"%(H1>0`A)9(W1V32#+%O1VI(432I".$#$O53'S?1*>0=(*C2(D1! !@Q1*(J1*>0+>*4]U"%<1V5@)3.4#+%O1wK (D19"_1=".@)31>0`1O4I(
(*1J1.* #$O$#K(W5%@?30(!EHqr-K1*>)=@0!^Q1\32O+<1\32(J@).1V"%/0/?5".J]7O1*>)O@+*%O$#$OK(*@)30(S01>0!@f1>0`1O!\".$I". !^/)O(J"%@)3
1>0;(WC2(W1* !@Q1!9(\1*>0 > J]H".O1U".$#$O`V
@2Ns>)Q8 K (W1".1*;".@?3c"f6M!/0O@)+i(W&0@)3d#(,/)*232&)!3'E:qr-1>0:(*@)3d32O+<1`2&09(
6M-R*.* #$O$#Z(*@)30(S1*>0@1*>0`(*C2(D1!1"%@)(WO1(U11*>0> J]H".O1 ^1VO+<1I
K (D19"_1*E
0

32I(&)((W53O@

second digit/
set timer (5 ms)

Await
Next
Digit

timer alarm/beeping
first digit/
set timer (5 ms)

Await
Second
Digit

Await
Caller
Onhook

* ( @i30!$%-".@L0FCQ/M.- 45"%32$##@0%@)(W1*9".#@Q1
$ 5 $0 !#:%(3* 8Q 0< 9;5 )! /  *# =! qX@v%E E E 0S]Uf>)"%3 @)(WI32*531>0-R%$#$O_]7#@0+d^0"./0$#f.-\"%@ l 1DC/M
%-325"%32$#O@),!%@)(W1*9".#@Q1(  =}- 7}2;2}1 1-8< 7R8v7=$2=v 7}-R=$1; ;;8<
- ;;4 v7vR;2;7 ; v2v2;2;2; v22;2-412-=}

FH>0 K@ 232$k-R%71>0#(7!%@)(W1*9".#@Q17#(7(*>0_]7@O@LO+?E*;0


* EqX@fO+?E*;0* S0"%(7(*Q@"(732I".$k1*@0"./0/M"%(S0"1*#!JI(7(W!1
1!^/)OV#@f%(W5%@?30("%@)3:1*>0(*C(W1*1*9".@)(*O1(1*1*>0> J]H".O1H#(W14V#+%O1w
K (D19"_1%EKqr-Z1>0\1*#7^2/0#*5(G6M-R*V1*>)VA?(W1
32#+%O1U"%* P (S_1>0!@
1>0,(WC2(W1*! 1*9".@?(WO1(1*"%@
#30$O\(D19"_1*V]7>0!4"%@;#30$O71%@0V#(/0232&)53'Es4
1*>0*]7I(WSO-'1*>)V32#+%O1U"%/0/?5".9(
A)9(W1S1*>)!@f1*>),(*C2(D1! 1*9".@)(*<19(U1*1*>)%K J]H".O14!%@)3AVO+<1I
K (D19"_1*E
0 !#:(
% 3*    5 $" 8 0 <2 qX@n%E E 2E )S0]U`>)"%3f!%@)(*#30!3 1*>0=-R%$#$O_]7#@0+
!^2"%/0$O%-".@n l 1DC/M`.-325"%32$#O@)=@2N
(W1*9".#@Q1(  7; 2 ; R2-2 }2;-W v2-s 7}1; ' =v -=;- v7v2$
R=$
1; ;;8< -- --; 1; ;;1 12-=} 17;  ;2 ;- 2;8- ;

FH>0 G[ @232$)-RG1>0#(H!%@)(W1*9".#@Q1G#(U(*>0_]7@


O@O+?E %* 0EK4(U(W@:"%(G1*>0V>)".@?30(W!1I(G$#O-B1*3S0"1*#!U#(U(*1U1*=!^2/0O
".-B1*!,
* (W57".@)31>0J(WC2(W1* 1"%@)(WO1(1 *> 4]U"%<1BVI".$)F%@0$K (D19"_1%Eqr-M1>0432I".$01*%@)J"./0/M"%(KA?(W1S%1*>0@1*>04(*C2(D1! 1*9".@)(*<19(
#+%&0

*

Version 2 CSE, IIT Kharagpur

Await
Second
Digit
first
digit

dial tone /
set timer
(30 s)

Await
First
Digit

Idle

*-*(,@L232!$Z.-[".@

O+&0*

A>

IK

timer alarm / idle tone

l FGC/M\%- V"32$#O@0@)(W1*9".#@1

>

1 J]H".O1J#9(D1VO+<1 (D19"_1*E 41*>0*]7I(*%S2O171*9".@)(*<19(U1* *4]U"%<1 l 5 P ! V@2Nr>0%8 (D19"_1*E

Await
First
Digit
dial tone

handset lift /
set timer
(2 s)

* 2(

timer alarm / beeping

Await
Dial
Tone

O+&0* % ,@L232!$Z.-[".@L l

Await
Receiver
Onhook

FGC/M\%- V"32$#O@0@)(W1*9".#@1

 $ 5 $  5 "8Q < qX@ 5.E E E 0S=]>?"%3w@)(*#32*53 1*>0y-R%$#$O_]7#@0+v!^2"%/0$Oy.-:".@ l4l 1DC/?%-:@2N
(W1*9".#@Q1(  =; =2;  =R2}2- ;1  ;-2 R }27$ =$ 2 2; ' 7v 7R2;
2 ;1--R=$ ; ;}28< ; -=; 2}1 2-}< -2

FH>0 G[ @ 232$Z-RJ1*>)#(,@)(W1*9".#@1V#(\(W>)_]7@LO@n#+)E*  E4qX@cO+?E*  Sk"%(4(*%@i"(J1>0=O@)+


1*@0=I(4/)*232&)!3'SM1>0
(*C2(D1!1"%@)(WO1(V1f"h]H".O1,*#@0+.Nr6)"98 1%@0
(W1".1*".@)3d" 1*##((*1,1!^2/0OO@ f
* (!Eqr-G1>0*#@0+.Nr6)"98 1%@0
"%/0/?5".9(
A)9(W1S1*>)`(WC2(W1*! 1*9".@)(*<19(1* *> 4]U"%<1JO9(W1 V#+%O1w
K (D19"_1%S2!$I(*\O1J!@Q1!9(`> J]H".O1 l !! P !V @2Nr>0%8K (D19"_1%S0".@?3;1>0!".$#$'I(
1!#@)".1*3E

1& `5 ! / 2# =!
( 2-7 7RW8}  17 =RR }8- 7}- ;1; ; ; R4<;12; ;;8
s*;,
*-,
>
K
5  / !$#&
5 <  `5 )! / 2*# =! qX@"%(*G.-M"432&09"_1O@)".$@)(W1*9".#@15S_".@` P !@Q1K#(aQ&0#*53\1*\2!&)Z-RK"V(W/M!<AM32&)".1*#%@EFH>0
!^2"%/0$O%-K"
30&0".1*#%@)"%$@)(D1"%O@Q17]U>)"%3f@)(*#32*53:#@n5.E E 2E I(H1*>)-R%$#$O_]7#@0+8(  2}12 1'21112;
  ;8;-;- 14 ;
; };28R;}1 v8'2  ;} -2--
 2}12 1'21112;
-;--=}; v=  -21;
21; ;;8<nRW;; v7 2- $2-- -=}} '; -2;2-

2; 21}- 12;12 1;--=-22;1; ;;8< }}1 1$ R ; -2;=; 7}1
5
)  
 32!$I"hCn@)(W1*9".#@1`6M1D]U!@d1D]L P !@Q19(,#(=%@0
]7>0*;".-B1*=".@e P !@Q1`2!!&0(S"f#@0#=&0 1*#
&)(D1\!$I"./)(*`6M-R*1>0=%1*>04 P !@Q1V".@i2&05E7uc>)"%3n%@?(WI32!3 1>0`-R$O$#_]7O@)+;^0"./0$#`%-G32!$I"hC!%@)(W1*9".#@Q1JO@d%E





E 2E 
FH>0#
 G[ @ 232!$M-R%HO1UI(7(*>0_]7@;#@#+)E 0EqX@O+?E 2SO-Z1*>)V@0!^1730O+<17"./0/M"%(6M-R%V1*>0".$I".fSQ1*>0@;1*>)\6M!/0#@0+
(*%&0@?3:I(7/0232&)53 "%@)3 1*>0(*C2(D1! 1"%@)(*<19(U1* *"h]H".O1H".$#$O7%@2Nr>0%8 (D19"_1%E

*;,

Version 2 CSE, IIT Kharagpur

Await
First
Digit
ringback tone

ring tone /
set timer
(2 s)

*  (

#+%&0

timer alarm / terminate call

Await
Ringback
Tone

Await
Receiver
Onhook

@i30!$%-".@

FCQ/M.- 45"%32$##@0%@)(W1*9".#@Q1

lJl

Await
Next
Digit
timer
alarm

first digit /
set timer
(10 ms)

*;,2(

#+%&0

2;

next digit / beeping

Await
Next
Event

Await
Caller
Onhook

@i30!$%-K"%@f0FC/?,.-,V!$I"hC%@)(W1*9".#@Q1

"*

FH>0 G[ @ 232$-R%\1*>0I(\^0"./0$#=I(,(W>)_]7@iO@dO+?E 0E .1*1*>?"_1,]>)" P =O@Q1*232&)!3L1D]U:#@Q1**30#".1*(D19"_1*5(


 P @1 ".@?3 J]H".O1  P @1 =1232$Z"32&09"_1O@)".$!%@)(W1*9".#@Q1E

>J]H".O1

K

4>

*;K



FH>0
".#@L".# .-K1>0#(\>)"./21!J]H"%(U1
O@Q1*232&)!C%& 1;(W P !C;6)"(WI@)/21(4".@)3 1**#@0%$#%+O5(H"%((W2I"_13
]7<1>f*5".$ONm1O,(WC2(W1*!
(H1>)"_17]U%&0$I36?&?(W53;1>0*&0+%>)%&21H1*>)#(76M%8kE

g(*C(W1*}I(\(*"%#31;6?
.-1*>0`(*C2(D1!fE

w".$ONs1*#`1"%(*8:I(4!$#"(*(*OA)3f#@Q1*;<1>0!V>)".93'S0A?*fSM%4(*.-B14"%$<Ns1*#1DC/?32!/M!@)30O@0+ %@f1>0=@)(*aQ&0!@?(J.-"
1"(W8
-t"%O$##@0+1*!1JO1(71*##@0+;!%@)(W1*9".#@Q1(E

(*".-R1DCQNX<1#".$[(WC2(W1* I(%@0]7>0I9>{32(@).1`>)" P "-t"%O$ONr("_-R


(W1".1*;".@?3d"%@CL-t".#$O&)*.-U1*>):(WC2(W1*
(W P *,30".
"%+%%E @i"%@QC:>)".93:"%$<Ns1*#(WC2(W1*!
(7"%*("_-R1DCQNX<1#".$k#@@?"_1*&)*E

FH>0f1DC/0I!".$V9>)".9"%1*!I(D1# -R".1*&0(;.-"e>)".93 *5".$ONm1Oi(*C(W1* #@)$#&)32n!=6M3)323'SU-R326)"98Y"%@)3v32I(D1*#60&213


(D1*&?o1*&)*S".@?3{(*".-R1DCQNr!*O1*I!"%$OO1DC%E:qr1=#(`/?Q(*(*O6)$O1>0%&0+>e1*>)".1=(W
>)".93d*5".$ONm1O;(*C(W1*
(
"hCn@0%1=>)" P 1>0(*
-R".1*&0(E

DMC    
^C7]7>0@naQ&)".@Q1*O1".1* P !^/)*5(*(*O@)(7%-1O".`@0!((*"%*C;1* 30(O6M1*>)`6?>)" P O

*5".$ONm1O\1"(W8;I(7@0\1*>)".1J#(7"(*(*2I"_1*53:]7O1*>L(*%\1*#`%@?(D1"%O@Q1(E

!"%@e".&)(*

*

Version 2 CSE, IIT Kharagpur

Local
Operator
button
release
button
press
set
alarm
(15sec)

Await
Event1
button
release

Inter
national
Operator

timer
alarm

set
alarm
(15sec)

Await
Event2

timer
alarm

*  (

#+%&)*

Dial
Tone

button
release
dial tone
Await
Button
Release

@i30!$%-K" V&0".1*#%@)"%$%@)(W1*9".#@Q1

(

FH>0!"%*G1D]\
".#@"_1*+%*#(Z.-01O7@)(D1"%O@Q19(Z#@==6M303253=>?".93`".$ONs1*#U(WC2(W1*( /M!*-R%
".@)!@)(W1*9".#@19(
".@)36?>)" P O"%$G@)(D1"%O@Q19(!EnTKW-R*
"%@);!%@)(W1*9".#@Q1(="%*;1*##@0+d%@?(D1"%O@Q1(=O/M(*3{@{1*>):(*/?@)(W .-71>0
@1*$O$##@0+;/)&21*V(*C(W1*fS?]7>0*5"%(46?>)" P O*I".$Z!%@)(W1*9".#@Q1(J"%*`1*##@0+%@?(D1"%O@Q1(4O/M(*3L@f1*>06?>)" P O
.-1>0\!@ P O%@0@15E[FH>0V/M!*-R%
".@)!V!%@)(W1*9".#@Q1("hC
@).1H6?,+%&?".9".@Q1*3O-Z1*>)V6M!>)" P #%#"%$M!%@)(W1*9".#@Q1(U".4@0%1
(*".1*I(DA?3'E

ucU32I(*!&)(*(*3`>0_]e1*\30!$1*>0U/?W-R*
"%@)G"%@)3`6M!>?" P #%I".$_1DC/M(.-)!%@)(W1*9".#@Q1(&?(W#@0+V"%@ [^1!@)3253=#@0<1H1"_1
@i"%9>)O@0* G[ @cK1*>?"_1H^1*@)30(G1*>041*9"%32O1*#%@)"%$?[ @]7O1*>:1*>0\@)/21(.-Z(*1*1*#@0+="1OU"%@)31*>)V*(*/M%@)32#@0+
+%@0!9"_1O@%-Z",1*#!H".$I".  P @15E&)9>:"232$?#@:"%3)32<1O@
1*(W P 4"%("`(*/?5OA?!".1*#%@
19>0@0IaQ&0%S!"%@:".$I(*`>0!$#/
O@ P *&0-R&)!".1*#%@f".@)3".&21%
"_1#!232,+%!@)!9"_1*#%@ZE

 
 
E4Q1".1*;]7>)1*>)!C%%&{!%@)(*#30!`1>0
-R$O$#_]7O@)+n(D19"_1!!@Q1(`1*i6M
!"(WE

"


%

  
0

E  &?(D1<-RCeC%&0="%@)(W]U!=O@5"%9>

t"Q:>)"%3 ".$ONs1*#"%/0/0$##"_1*#%@I(H"32&0/f.-%@0$#C;>)"%3 ".$ONs1*#\19"%(*8(E


R6?  P !C;("_-R1DCQNX<1#".$k".$ONs1*#(*C2(D1! >)"(7"-t".#$<NX(*".-R(D19"_1*E
t 32"32$#O@0@)(D1"%O@Q146M1D]U!@L1D]U (W1*#=&0$#[!".@n6?%@?(WI32!3L1*:6M":6?>)" P O*I".$@)(D1"%O@Q14@L1*>)@ P ON
%@0@17%-1>0`(WC2(W1*E
t3)V".932]U"%*V-t".&)$<1*Nm1%$#!9".@)!419>0@0IaQ&0(4!".@"(W#$#C;6?`"30"./01*3:1*/0 P #30,(*.-B1D]H".V-t".&0$O1WNs1*$O"%@)E
R5 +%23;"%$O+%<1>0 -R%7(*9>)32&0$##@0+>?".93
*5".$ONm1OV1"(W82(=&)(W1H1*C1*%/0$#1V5"%9>
19"%(*8
O@ 1*>)\(*>0%*1*5(D1U1*#
/M((W#60$#%E
B-f4$O$>?".93:"%$<Ns1*#,(*C2(D1!
(7".(*".-R1DCQNX<1#".$kO@f@)".1*&0%E

*

Version 2 CSE, IIT Kharagpur

R +:TKW-R*
".@?7@)(D1"%O@Q19([%@;""%$<Ns1*#J(WC2(W1* @)(W&)*H1>)"_11*>0J@ P #%@0!@Q1G%-k1*>04(*C2(D1! #(G]$O$ONr6?>)" P 53'E
R>?f%-B1J*5".$ONm1O\1"(W82(7"%*V1*>0Q(W]7>)#9>f32@0.1J>?" P ,".@C
1*#6?&0@)30(4"%((W2I"_13:]7<1> 1>0!fE
tI @L#@0#Op5"_1*#%@c.-G" P !9".+%,19"%(*8f*5(W/M%@)(*1O(\I(J1>0%62zD5o1* P =.-"%@QC+%23L>)"%3i*5".$ONm1O`19"%(*8QNr(9>030&0$O#@0+
"%$O+%<1>0fE
z* qr1(*>0&0$#3e6M
1>0;+%Q".$%-H"%@Cn+%23d*5".$ONm1O
/?".1*#@0+i(WC2(W1* 1i%/0$#1; P !Ci>)"%3e"%$<Ns1*#1"%(*8c"(
"%>0"3:%-O1(7325"%32$##@0`"%(H/M((W#60$#%E

*0E7uv>)"_1[32\C%&=&0@)30!9(D19".@)3=6QC,1>0U1** >**5".$ONm1OK 3;4_]#(1>0H%@?!/01K%-)".$ONs1*#H32ObM*@Q1-R%1>0U1*9"%32O1*#%@)"%$


@0.1O@ %-Z1O 3?[^2/0$I".#@ C%&07"%@)(W]U!H&)(*#@0+;"(W&0O1"%60$#\!^0"./0$#%E

)E7uv>)"_1J325(H1*>0,1!

>W"%$K#@f""%$<Ns1*#,(*C2(D1!

(*#+%@0O-RC 3.[^2/0$I".#@ ]7>?"_1J32


C%&:"%@f6QC ""%$<Ns1*#(WC2(W1*!fE

E 4(*O@)+"60$#298:32I".+%9".(*>0_]v1>0O/M%*1"%@1H>)"%32]H".V!%/M%@0@19(H.-K"="%$<Ns1*#,(*C2(D1!
[^2/0$I".#@;1>0*$O5(H.-1*>0`32Obk!!@Q14/M%@)!@Q1(E

"%@)3;1>0!#7#@1!9"%1*#%@)(E

,0E7qX@Y"c*5".$ONm1O(WC2(W1*!fS9"h]

(*!@)(*%(W#+%@?".$I(=@031*d6?f/0!/025(*(*3e6M-R* 1*>0C!"%@y6M&?(W536C"n!%/0&21!5E
uv>C:I(7<1V@0!((*"%*C1
/0*/0!((U1*>0="h] (W@)(W7(W#+%@)"%$#(J6?!-R%,1*>0C !"%@f6?&)(*3f6C"
%/0&01*! 3!^2/0$#"%O@1>0
32ObM*@1,1DC/M(%-/0!/025(*(*O@)+;1*>?"_1=".@0%
".$#$OCi".*#3n%&21@e(*!@?(W,(*#+%@)"%$#(V1*f
".81*>0 (*&0<19".60$#1*L6M
&)(*332O1*$#C;6C "/0&21*E

)E7qD32!@Q1<-RCL1>08%Ci32<bk!!@?(,6M1D]U!@n>)"%3c".$ONs1*#S(W%-B1*5".$ONm1O%S"%@)3LA?* "%$<Ns1*#(*C2(D1!
(E\ P 
"_1,$O5"%(W1
%@0\^0"%/)$O\.-*5".$ONm1OJ19"%(*82(U!%*5(W/M%@?32O@)+`1*1>0(*41>0!!".1*!+%O5(!EqD32!@Q1<-RC
1>0\1*#O@0+
!%@)(W1*9".#@Q1(O@C%&0
1"(W82(H".@)3zD&)(W1*O-RC:]7>C
1>0,1"(W82(7(*>0%&)$#36M`!"_1!+%Op3
#@Q1*1*>)`!"_1!+%O5(GC%&>)" P \O@?32#"_13'E
2E [
 ^2/0$I".#@d1*>0 8%!Ce32ObM*@)5(=6M1D]U!@e1*>09>)".9"%1**I(D1#(,.-4"i(*.-B1*5".$ONm1O
19"%(*8d(*&)9>"(`]U!6{60_]J(W#@0+i"%@)3{"
@0%@0Ns"%$<Ns1*#419"%(*8:(W&?9>"(HNr"%O$30!$# P !C%E

)E\ P :".@y^0"./0$#:%-4"n(*.-B1"%$<Ns1*#;19"%(*8d"%@)3"i@)%@2Nr*5".$ONm1O
19"%(*8kE([^2/0$I".#@e1*>) 8!Ce32<bk!!@?6?!1D]!@{1>0
9>)".9"%1**I(D1#(G%-Z1>0(*,1D]1DC/M(H.-1"(W82(E


E

"%".@Cf1D]U #/?W19".@Q1(W@)(W\30 P #!(,".@?3L1D]U"o1*&?"_1*\30 P #!(\&)(*3cO@d".$ONs1*#"./0/)$OI!".1*#%@)(,".@?3i^2/0$I".#@


1*>0/)>QC2(*#".$k/0O@?#/0$O5(76M!>0#@)3 1*>0O4]*8#@0+)E

 9"h]w" (9>0".1*I`232!$[(*>0_]7#@0+
1*>)#/?W19".@Q1,!%/M%@0@19(4%-G";1DC/0I!"%$>?".93L*5".$ONm1O(WC2(W1*!fE [^2/0$I".#@L1>0
0E 4
]*8#@0+:%-1>0
%&01*/0&21`#@Q1*W-t"&)(*O@0+L"f(*&0<19".60$#
(*9>)!
"_1#32#+%9".fE;[^2/0$I".#@n&)(*#@0+i"f(W&0O1"%60$#!O9&)<1=32I".+"%
>0_]30O+<19".$k1*
"%@)".$#%+f* J4HH!%@ P (*#%@ ".@6?`"9>0# P 53;#@L".@f%&21/0&21J#@Q1*!*-t"%!%E
 9"h]w" (9>0".1*I`232!$[(*>0_]7#@0+
1*>)#/?W19".@Q1,!%/M%@0@19(4%-G";1DC/0I!"%$>?".93L*5".$ONm1O(WC2(W1*!fE [^2/0$I".#@L1>0
 E 4
]*8#@0+.-'1>04#@0/0&01U#@Q1*!*-t"%!4&)(*#@0+="=(*&0O1"%60$O\(*9>)!
"_1#J30O+"%E [^2/0$I".#@;&)(*#@0+"`(*&0O1"%60$O\#!&0O1U32I".+"% >0_]
".@)"%$O+`1;32O+<19".$m
H7@ P !9(W#%@:#(J"9>0# P 53;#@L".@O@0/)&214#@1!*-t"%!%E

2EHqX@c" >)".93i"%$<Ns1*#(*C2(D1!fS'I(VO1@0!((*"%*C1>)"_1 P !C1"%(*8L#@i1*>)(*C2(D1!6M.->?".93L*5".$ONm1O1DC/?3 ^/)$#"%O@


C%&07".@)(*]H&)(W#@0+
"(W&)<19".60$#^0"./0$#%E
0EHqX@;1>0\!%@Q1*!^1U%-Z/0 P I32#@0+(*C2(D1!Nr$O P !$?-t".&)$<1*Nm1%$#!9".@)!%S]7>C"%*\>)"%32]H".7-t"%O$#&0(*\/032Io19".60$#V"%@)3;5"%(*O
1*i>?".@)32$#:!%/)".3d1n(*.-B1D]H".-t".#$O&0(43 ^/)$#"%O@e1>0
N P !9(W#%@{(9>0!
1i/0 P I32;(*.-B1D]H".-t".&0$O1WNs1*$O"%@)E
uv>)"_1".1*>0(W>)%*1O@0+Q(4%-G1>0#(,(9>0!3 J_] 32(V1*>0! P !C60$O298f19>0@0IaQ&0"_1W1!/21,1* P !%`O143
45(H<14(*&)!!!5
3 3.[^2/0$I".#@C%%&)H"%@)(*]E

 ^2/0$I".#@=1>049>0598/?O@Q1*#@0+".@?3*$O$#6)"%98! P *C`(9>0!H1/0* P I32U-t".&0$O1WNs1*$O"%@Q1*5".$ONm1O7/)&21*#@0+)E,^/)$#"%O@


E [
1*>0`1DCQ/M(4.-K-t".&)$<19(4O1V!"%@L>0!$#/L1%$#!9"_1*`"%@)31*>)`-t".&)$<19(JO1\!"%@f@0.1V1*%$#!9"_1%E4[^2/0$I".#@f1*>0(WO1*&)".1*#%@)(4O@n]7>0#9>f1>0I(
1*59>0@0Ia&)\I(7&)(*-R&)$mE

2E7J@)(*]U!U1*>0,-R$O$#_]7#@0+
a&)(W1*#%@)(7!%@)!!@0O@)+=-t"%&0$<1*Nm1%$#!9".@)!,.-"%$<Ns1*#(WC2(W1*!
(E
t"Q^/)$#"%O@]7>C;>)".932]H".4-t"%&0$O1WNs1*%$#!9".@?\#(75"%(*OU1*;"%9>)O P ,%/)"%*53
1;(W%-B1D]U"%*V-t".&0$O1WNs1*$O"%@)E

*

Version 2 CSE, IIT Kharagpur

R6? ^/)$#"%O@ 1*>0


"%O@1*59>0@0IaQ&0(7" P ".#$I".60$#41;"%9>0# P V>?".932]U"%*V-t".&)$<171%$#!9".@)!%E
t uv>)".1\"%*1>0=
"%O@L19>0@)#aQ&05(V" P ".#$I".60$#,1*"%9>0# P =(W%-B1D]U"%*,-t"%&0$O1WNs1*%$#!9".@? 3{uv>)"_1".1*>)(*>0%*1!%O@)+(
%-1>0(*\1*9>)@0#aQ&05( 3
0E7U*#)C
!^2/0$#"%O@ >0_] >)"%30]U"%*7-t"%O$#&0(t%E +)EK/0!((W-t"%O$#&0(9".@ 6?\1*$O".1*53;#@("_-R!1DCNXO1*I!".$M>)"%3:*5".$ONm1O
"./0/)$OI!".1*#%@)(E[@)(*#321>04-t"o11*>)".1U>)"%3"%$<Ns1*#J19"%(*8(G>)" P V(D1*#@0+%@Q1U325"%32$#O@)(]7>)#9> =&)(W16MV!1&0@)30!H".$#$
#!&0
(D19".@)!(E

n>

K

EHuv>)"_1\32;C%&L&0@)32(W1"%@)3f6C:1>0 W-t".#$<NX("_-R (W1".1*`%-G";(WC2(W1* 3y2"_-R!1DCNXO1*I!".$Z*5".$ONm1O`(*C(W1*


(432;@).14>)" P `"
-t".#$<NX("_-R,(D19"_1*E[uv>)"_1JI(H1>0O/0$#I!"_1O@ %-1>0I( 3
 ^2/0$I".#@
]7>C("_-R!1DC
".@)3
!$#I".60#$OO1DC
".J@0%1U#@)32/?@)32!@Q1H#((*&0(O@ (*".-R1DCQNr!*O1*I!"%$)>)"%3;*5".$ONm1O4(*C2(D1!
(!E,^/)$#"%O@
0E [
1*>06?"%(*#V1*59>0@0IaQ&0(HC%&]&0$#3"%30%/21H1*;30 P $O/ "
(*.-B1D]H".4/0232&)171*>)".1J#(HaQ&0#*53;16?>0#+%>)$OC *$OI".60$#%E

E qD(<1/?Q(*(*#60$O 1*d>)" P  ".@Y^1*!$OC("_-R60&21


&0@0!$#I".60$#(*C2(D1! 3 qr-\C%%&)"%@)(W]U!I(".
*
"_1 P %SK1>0!@ +% P ".@
 H
^0"./0$#.-[(*&)9>i"
(WC2(W1*EUqr-[C%&f"%@)(*]7O@f1>0`@0+"_1 P %S21>0!@zD&?(D1<-RCf]7>C:O14I(J@0%1J/?Q(*(*O6)$O-R4(*&)9>L"
(WC2(W1*!
1*^2I(D15E

*%0EHuv>)"_1JI(J"("_-R1DCQNX<1#".$(*C2(D1!

3 \ P `"-R!]/09"%1*I!"%$'^0"./0$#(7("_-R!1DCNXO1*I!".$k>)"%3"%$<Ns1*#,(*C2(D1!
(EGJ".$#$
>)".93 *5".$ONm1O(WC2(W1*(4(*".-R1DCQNr!*O1*I!"%$ 3Lqr-K@).1S)+% P "_14$#"(D17@0^0"./0$#.-[">)"%3 *5".$ONm1O`(*C2(D1! 1>)"_1JI(7@0%1
(*".-R1DCQNX<1#".$sE

 ^2/0$I".#@e]7<1>{1*>0:>0!$#/{.-J"i(9>0!
".1*I;32I".+%9". >0_] 1*>0;! P *Ci6)$O298c(9>0 !".@{6M;&)(*3d1n"%9>)O P -t".&)$<1*N
E [
1*$O"%@).-U*5".$ONm1O1"%(*82(!Euv>)".1=".=1>0;(W>)%*1O@0+Q(\.-G1>0I((*9>0 3 [^2/0$I".#@e(WO1*&)".1*#%@)(\]7>0*O1=!"%@c6M
(*".1*I(D-t"o1%O$#C
6?&?(W53 "%@)3f(WO1*&)".1*#%@)(H]7>)!\O14!"%@ @).1J6M&)(W53'E

*-*2EHqD32!@Q1<-RC".@)3!/)*5(W@1G1*>071O#@0+!%@)(W1*9".#@Q1([#@1*>)J-R%$#$#_]7O@0+`"%O*NX32-R@)(WJ(*C2(D1!6C5".@)([%-Z".@
!^Q1!@)303
(W1"_1

"%9>0#@032I".+%9".fE$#"(*(*O-RC;"9>!%@)(W1*9".#@Q1U#@Q1*
!O1*>)!7/M!*-R%"%@),U6M!>?" P #%I".$'@)(D1"%O@Q15E
 P !C{O@)!%#@0+eI((W#$OL&)(W1;6?n301*5o13 ]7<1>0#@ 0E\d
* 2@)30(
%-VO1(:!@Q1**#@0+d1*>0L9"%3)".
 P !9".+%".")E FH>0
O@Q1!9!/014#((W#$#(*>0%&0$I3L6M=@0+"%+%3f]7O1*>)O@+
, !%@)3)(J.-G301*5o1O@i.-[1>0=19".+%!14#((W#$#%E4FH>0O@Q1!9!/01V#((*O$#
*%0E

(W>)%&0$I3:6M,A)3"_-B1!4)E !%@)3)(H.-K<19(7!@0+Q".+!!@Q1H60&21J@0
$I"_1!U1*>)"%@ 2.E

l ! /)*5(W@17"]U"(W>0Ns
"%9>)O@0V>)" P O@)+=1>0\-R%$#$O_]7#@0+(W/M!<A?"_1O@ 6C;"%@)(U.-K".@^1*@)323(W1"_1,"9>0#@032#"%+%9".fE
FH>0]U"(W>2Nr
"%9>0#@0 ]U"%<19(`-R1>0
e(W]7O19>y1*d6?f/0((W53'E7-B1!1>0f&)(W/)*5(*(*(=1*>0
e(*]7<199>S1>0

"%9>0#@0A)$#$#(\1>0
]U"(W>c1*&)6d]7O1*>e<1>0!`>).1%`!%$I3n]H"_1!`32/?@)32#@0+L&0/M%@c1*>0;(*1*1*#@0+L.-1*>0   i(W]7O19>ZE
FH>0J]H"_1![A)$#$#O@0+%@Q1O@&05(&0@Q1*#$?1*>0J>)O+>
$O P !$?#((W@)(*3'E[FH>0J
"9>0O@)4(D19".*1(K1>0V"%+%O1".1*#%@.1*"%@)3
@1O@&05(
".+<19"_1*#@0+L1>0]U"(W>e1&06y&0@Q1O$H!O1*>)!1*>0/0(*1=1O!^/)O(=%1*>0&)(*!=/)*5(*(*(`1*>0
{(W]7O19>ZEdJ-B1*!1>0
".+<19"_1*#%@ (W1*%/?(!SU1*>)L"9>0#@0L]U"%<19(-R%;1*>0i&?(W
1*{/0((1*>)

(*]7<199>EJ-B1*;1*>)i&)(*!
/0((W5(
1*>0


(W]7O19>S?1*>)=
"%9>0#@0=(W1"%W19(71>0=>0%1V".#46)$O_]U!4"%@)3i!%@Q1*#@&0(76)$O_]7#@0+;>0%1\"%OJ#@Q1*:1*>032*C#@0+
9>)".6?H&0@Q1*#$!O1*>071*>)&)(W7/0((W5(G1>0
:(*]7O19>%H1*>)/0*5(W!1H1*#J^2/0#(E

Av-1

v-1 1=$

*

Av2-
- 2 R
+v;

v-1 11=

?v2}

*-,2E

EHqX@d""%$<Ns1*#(*C2(D1! ]7>?"_1#(1*>0;32Obk!!@)!6M1D]U!@d"/M!*-R%
".@)!!%@)(W1*9".#@Q1,"%@)3d" 6M!>?" P #%I".$[@)(D1"%O@Q1 3
\ P ,/0"o1#".$k^0"./0$#(H%-5"%9> 1DC/?,.-[@)(W1*9".#@15E
l ! /)*5(W@1K1>0H1*#O@0+`!%@)(W1*9".#@Q1(#@"!%$#$OI(*O@" P % I30".@)!19"%(*8=#@"%@"%O(*&0 P O$#$#"%@)H(*C(W1* "([".@^1*@)323A?@0<1
(D19"_1\
"9>0O@) G[ @nH30#"%+%9".fE[FH>0%$#$##(*O@" P % I30".@?V1"%(*8:!%@)(*#(W1(U%-1>0,-R%$#$O_]7#@0+"%1* P O1*#(E

FH>0HA?(W1G(W&)621"(W8@)".39"%30"%(W#+%@)"%$2/0!((WK/0*2!((W5(Z1>0J9"%30"%[(W#+%@)"%$2%@
",(W#+%@?".$0/025(*(*%1*+!@0".1*
1>0,1*9"%98;!%93;#@1*!
(H.-1*>0,19".+%15x (H$#2!".1*#%@f".@)3 P $O2O1DC;]7O1*>0#@ ;5\.-K*5!#/217.-1*>)`(W#+%@)"%$mE
FH>0V1*9"%98
!%93#(1"%@)(WO1W13:1*1*>0,30"_19"=/)*25(*(*%]7<1>0#@ ;\"_-B1!U1*>0\1"98!%93
I(U301**#@03E
v(*&06219"%(*8`%@1*>0730".1"\/02((*%[*!$I"_1(Z1*>07!! P 3`1*9"%98!%93`]7O1*>1*>0U1"98`*530(.-M.1>0!K19".+%19(
1>)"_14!%$#(*V1;3211J/?%1*!@Q1#"%$%$#$##(*O@:1>)"_1J#+%>Q172!&)7]7<1>0O@1>0@0^1 %%
2.E
qr-" $O$##(*#%@LI(V"%@1#!O/?"_1*53'SM1*>0@i1>0!%*5o1* P `"o1O@i#(\32!1*!O@)3i]7O1*>)O@
;5`6CL".@0%1*>0\(*&06219"%(*8
&0@0@0#@0+%@1>0`30"_19"/0*2!((WE

q,

*

Version 2 CSE, IIT Kharagpur

*-,
2.E

FH>0`!%*5o1 P \"o1*#%@I(U1*9".@)(*<1*1*3 11>0,1*9"%98 %o1O@;19"%(*8;]7<1>0#@

* 0E4%@)(*I32!U1*>),-R%$#$O_]7#@0+LR/)"%W1#"%$IU(*/?5OA?!".1*#%@.-["*5".$ONm1O(WC2(W1* (

FH>0 P !$#2O1DCe.-V"d(W/?"%!Nr!".-B1&)(D16Mf("./0$#3y6C"c!%/0&21!%@2Nr6M".93d1*>)f(*/)"NX9"_-B1"_1$O5"%(W1@)  P !C


(W5@)3vB1>0 ("./0$#O@)+i P !@Q1I(=32@0.13{6C0EJ-B1*!("./0$#O@0+i1*>0 P $O2O1DC%S1*>)!&0*!@Q1=/M(*O1*#%@{I(!%/0&213
t32@0.13f6C: P @1\H7]7<1>0O@ %%
(W5.S2/)"%"%$O$#!$#$OC:1*>0=^2/?5o13f/M(*<1O@%-K1*>0=(*/)"NX9"_-B17I(J1*# P 3:-R* 1>0
30"_19".6)"(W:]7<1>0O@ ..
(W5it30!@0%1*3y6Cd P @1 l E V(W#@0+n1*>05(Wf30"_19"0SK1>030 P #".1*#%@{-R% 1>0 @)%"%$U!%&09(*;.1*>0,(*/)"%!NX9"_-B1G&)(D1H6M,301**#@03:]7<1>0#@ %
(*t32@0.13;6C
 P !@Q4
1 \U".@?3:*1* P  P !$#2O1DC"3hzD&)(W1*!@Q19(
=&)(W1H6?,!"%*O53
%&01U6M-R*\"=@0] P $O2!<1DC P ".$#&0\#(H("./0$#3;#@cR1*>0 P !$#!<1DC
"3hzD&)(W1*!@Q1H P @Q1UI(H32!@0%1*53;6C
VoE
U".$I&0$I"_13/?Q(WO1*#%@?([=&)(W16M71*9".@)(*<1*1*53=1,1*>075".*1*>
(W1"_1O@".1$O5"%(W1%@)!7 P !C`O@&21`R/M(*<1O@1"%@)(*I((W#%@
 P !@Q17#(732@0.136C
1*>) P @Q17FJE

qD32!@Q1<-RCL1>0;32ObM*@Q11*##@0+L@)(W1*9".#@19(\O@d1*>);(WC2(W1*!fE:$I"%((WO-RCf1*>05(W
#@Q1*f!O1*>)!/M!*-R%"%@)%6M!>?" P #%I".$
@)(D1"%O@Q19(!E%@)(W1*&)17"%@ [ @ 1*
232!$k1>0`(WC2(W1*E

*QE4%@)(W1*&)1U1>0G[

232!$%-K"1!$#!/0>0@0(WC2(W1*

0(

]7>0Q(W
R/?".*1*I".$BG6M!>?" P #%HI(J325(*!*#6?53:6M!$#_]

*

7-B1!=$#O-B1*#@0+i1>0:!! P !>?".@)30(*15S1*>0:30#"%$G1%@0:(*>0&0$#3{"%/0/M".=]7<1>0O@ .L(*@)30(Efqr-4"L32#"%$G1%@0 !".@e@0%16M


+% P @i]7<1>0#@ %:(*@)30(SM1*>0@d"%@nI32$O1*@0#(\/0232&)!3'E`J-B1*!,1>032#"%$1*%@)"%/0/?5".9(!SM1>0A)(W132O+<1(*>0%&0$I3L1
6?
32I".$#$#3i]7O1*>)O@ (*@)30(\".@)3n1*>)(*&06)(*aQ&0@Q1\A P 32O+<19(,]7<1>0#@ (W5@)30(\.-U"%9>c.1>0!5E=qr-1*>0
32I".$#$O#@0+.".@C:%-[1*>032#+%O1(JI(\32!$I"hC%53'S01>0!@n"%@L#30$O=1*%@)`#(4/030&)53'E4FH>0`I32$#`1%@0%@Q1O@&05(7&0@Q1*#$Z1>0=!! P J>)".@?30(W!1
#(H!/)$#"3E

*0EHuv>)"_1J"%*\1*>)`32<bk!!@Q171DC/M(H.-1*#O@)+;%@?(D1"%O@Q1(1>)"_14".@&07#@L"(WC2(W1*!fE

\ P ,^0"%/)$O5(H.-5"%9>E

;  

)(
   2D
&H "H H vDMC  =CIC D
F(
,
*h=Q1 P `4".1*>E 
 ^GIC ;C 8E  C  LC    )E G$#(* P #!5S2*.%0E
_`U*I".@L2"%@1)E,6?5303253 6?"_1W1$O,_C"%$OE     C  :DFB S/)".+(7    *2S 45=6M!q*%% E

`\E \"%(".9"_1>C%E7FHO#@0+ !%@)(W1*9".#@Q1(7%-[*5".$ONm1O=(*C2(D1!


( 4@)(D1*&?o1(7-R%\^2/0((W#@0+1*>)!fSk!1*>0230(J-R% P ".$##30".1*#@0+
1*>)!f
E
         
   .S0[$mE % ?E %  0S  "%@Q&?".C   2E

Version 2 CSE, IIT Kharagpur

You might also like