That's a really useful site, June!

I can think of all sorts of uses for it.

How about this: http://pastebin.com/m2b4a375c

(Excuse me, Mr Shimura, for uploading your work.)

Ian


On Tue, Dec 22, 2009 at 5:10 PM, June Kim <[email protected]> wrote:
> If there is any problem sending your code through the mailing list, I
> recommend putting them on the wiki site or http://pastebin.com/
>
>
> 2009/12/23 M.Shimura <[email protected]>:
>> I apologize for trouble of e-mail system
>> so  send  Script again
>> using ? only get random numbers
>> sorry I ever  checked  on Mac
>>
>>  m.shimura
>>
>>
>> NB. -----------------------cut here-----------------
>> NB. ------------------------------------------------
>> NB. Title "turtle_circuit.ijs"
>> NB. circuit parade
>> NB. using self driven particle cell and turtle graphics
>> NB. written by SHIMURA Masato /[email protected]
>> NB. 11/Oct./2007
>> NB. last update 09/Oct./2008
>> NB. ------------------------------
>> NB. *usage: asep_run ''       NB. appear dialog_box
>> NB. drive once and  -> enlarge Screen (mouse drag)
>> NB. -----------------------------------------
>> NB. using on shell(ijx)
>> NB. *usage: do_turtle_circuit 0.55 NB. p=. 0.55
>> NB. p is percent of turtle in cells // 0.2<---> 0.8
>> NB. circuit turtle runs clockwise
>> NB. after 1st operation drag mouse enlarge windows
>> NB. ---------------------------------------
>> require 'turtle'
>> NB. -----util---------------
>> bare=: ;("1)@,.
>> bare2=: ;("2)@,.
>> expand=: 4 : ' ((I. x) i. i. # x){y,0'
>> expand_box=:  4 : ' ((I. x) i. i. # x){y'
>> NB. usage:1 0 1 0 1 1 expand_box  ({@> 3 4 5 6),<0
>> loose_box=: 3 : '< |: bare2 |:(L:0) y' NB. remove sikiri
>>
>> NB. -------turtle---------------------------------
>> NB. -------turtle display--------------------
>>  do_turtle_circuit=: 3 : 0
>> NB.  u. 0.5 //p is  from 0.2 to 0.75
>> TMP0=. anal_turtle_circuit y
>> CL0 =. 255 255 255    NB. empty white
>> CL1 =. 0 255 0        NB. A lime
>> CL2 =. 0 172 0         NB. B like Green
>> CL3 =. 255 0 255       NB. change Lane  Fuchsia
>> NB. CL4=. 192 192 192       NB. forward car Silver
>> NB. --------------------------
>> COL0=.(color CL0 fill rt 0),(color CL1 fill rt 0),:color CL3 fill rt 0
>> NB. Lane A
>> COL1=.(color CL0 fill rt 0),(color CL2 fill rt 0),:color CL3 fill rt 0
>> NB. Lane B
>> NB. ----color and figure-------------
>> for_ctr. i. 121 do.        NB.  TIMES do.
>>  TMP=.|."1 ; ctr{ TMP0    NB. last to top
>>  CLR0=. ({.  TMP)  { COL0 NB. 30 column fixed
>>  CLR1=. ({: TMP)  { COL1  NB. 30 column fixed
>> NB. construct program for rectangles
>>  J0=. repeat 6 fd 1 rt 60 NB. Hexagon
>>  CLR2=. CLR0,. >(# CLR0) #<J0
>>  CLR3=. CLR1,. >(# CLR1) #<J0
>> NB. ----position-------------------
>>  R0=.0 4 66 70 +/ j.3+ 2* >:i.30              NB. tate
>>  R1=. (30{. 6+ 2* i. 60)+/ j.>: 0 3 64 68     NB. yoko
>>  A0=. ({."1 R1),({: R0),(|. {: "1 R1),|.{. R0 NB. ourtt lane (oikoshi)
>>  B0=. (1{"1 R1),(2{ R0),(|.2{"1 R1),|.1{ R0   NB. inner lane (soukou)
>>  ht''                                     NB. hide tuirtle
>>  show ;("1),.(B0 start {CLR2),A0 start {CLR3   NB. reverce lane
>> end.
>> )
>> NB. -----calc --main---------------------------------
>>  anal_turtle_circuit=:3 : 0
>> NB. e.g.  u 0.5
>> ANS=. <TMP =.(prob_120 y),:prob_120 y
>> for_ctr. i. 120 do.        NB. 2 min
>>  TMP=. bare y parade_sub {* TMP
>>  ANS=. ANS,<TMP
>> end.
>> ANS
>> )
>>
>> prob_120=: 3 : '(y * 120)> 120?120'
>>
>> NB. ----asep engine----------------------
>> forward_asep_sub1_circuit =: 3 : 0
>> NB. alway same size
>> NB. calc ASEP
>> NB. self forward type
>> NB. x is 0/1 by probability
>> IND=. 2 = 2(+/)\ y,{. y
>> COMPARE=.(bare ({@> 1 2) = L:0 +/ y,:IND),.0
>> +/ ({: COMPARE),: _1|.{. COMPARE
>> )
>>
>> forward_sub2_circuit=: 3 : 0
>> NB. self run engine for circuit
>> NB. forward_sub1 is same as straight
>> TX =.  forward_asep_sub1_circuit y
>> MKR=. ;({: L:0 y),{. y  NB. 0 0,1 0.0 1,1,1-->2 #. is 0/2/1/3
>>  NB. marker
>> select. 2 #.  MKR NB. 2 notation
>>  case. 2 do. NB. 1 0 is 2 --> may go
>>   TX=. ({: TX),}.}:TX NB. remove last to top
>>  fcase. do. TX=. }: TX
>> end.
>>  NB. not forward case// recursive
>> NB. pecurier circuit /over zone--> assume 1
>> )
>>
>> NB. ---zrp engine--------------
>> parade_sub=: 4 : 0
>> NB. calc ASEP and ZRP at once
>> NB. go to forward forside if free
>> NB. Usage: X0  parade_sub TMP
>> NB. x is (<0.55),<{@> 0 1 (top barrier)
>> NB. y is boxed numeric
>> PROB  =. x NB. X0=. (<0.5),<{@> {."1 PX
>> Y0=. y
>> IND_ZRP0=. PROB index_zrp_sub1 * L:0 Y0 NB. can zrp
>> ASEP0=.  forward_sub2_circuit L:0 Y0 NB. done asep = space zrp
>> ZRPIND0=. >:& I. L:0 IND_ZRP0 NB. forward 1
>> ASEPIND=. I. L:0 ASEP0
>> NB. congestion
>> ZRPIND=.(-. L:0 ZRPIND0 e. L:0 |. ASEPIND)# L:0 ZRPIND0 NB. adress to zrp
>>  if. 1=  * +/  ; +/ L:0  ZRPIND e.(L:0) 120 do. NB. position 120 cannot zrp
>>
>> ZRPIND=. (-. L:0  ZRPIND e. (L:0) 120) # L:0 ZRPIND  end.   NB. remove 120
>> NB. amend pair is one to one make many combinations
>> AMEND_IND0=.* ; +/ L:0 * L:0 ZRPIND NB. index exsist ZRP
>> NB. react to oneside null
>> AMEND_IND=.;(AMEND_IND0 #  1;0) , L:0  {@> L:0 AMEND_IND0 # ZRPIND
>>  select. # * +/ AMEND_IND0 NB. both side null
>>  case. 0 do. ANS=. bare ASEP0
>>  fcase. do.  NB. INDEX is both or either
>>    TMP2=. (2)(AMEND_IND)} L:0  bare ASEP0  NB. write 2--> color pink
>>    AMEND_IND2=. |&<: L:0 AMEND_IND
>>    ANS=. (0) (AMEND_IND2)} L:0 TMP2  NB. delete own
>>  end.
>> ($ L:0 ASEP0) {. L:0 { ANS
>> )
>>
>>
>> NB. --------new------------
>> NB. find candidate----
>> NB. using metropolis random number
>> index_zrp_sub1 =: 4 : 0
>> NB. find candidate for lane change
>> NB. x is congestion rate  // y is  TMP (is prob a b lane)
>> CONG=. +/ L:0 INDX=: (1, L:0 }. L:0 -. L:0 y)<;.1 L:0 y   NB. search 
>> congestio
>> m
>> MAX_CONG=.  >./;  bare2 CONG
>> MP=. x metropolis_x MAX_CONG
>>  if. 0= MP do. ANS=. (# L:0 y) # (L:0) 0 NB. all 0
>>  else.
>>  MPIND0=. (i.>: >./ MP) e. MP
>>  MPIND=. |. L:0 (# L:0 INDX) {. L:0 MPIND0
>>  ANS=. { bare > INDX *. L:0 MPIND
>>  end.
>> ANS
>> )
>>
>> NB. -------window-form----------------------
>> ASEP=: 0 : 0
>> pc asep;pn "ASEP&ZRP";
>> menupop "File";
>> menu new "&New" "" "" "";
>> menu open "&Open" "" "" "";
>> menusep;
>> menu exit "&Exit" "" "" "";
>> menupopz;
>> xywh 3 47 51 30;cc PX combobox ws_vscroll;
>> xywh 3 2 56 15;cc board button rightmove;
>> xywh 63 2 40 16;cc draw button;cn "DRAW";
>> xywh 65 48 33 12;cc end button;cn "END";
>> xywh 2 24 84 23;cc pxsmall static rightmove bottomscale;
>> pas 6 6;pcenter;
>> rem form end;
>> )
>>
>> c_name=: 'English'
>> c_head=: '混雑率・小型'
>> c_prob=: '0.2-0.8'
>> c_all=: c_head,LF,c_prob
>>
>> e_name=: '漢字'
>> e_head=: 'Congestion ratio'
>> e_prob=: '0.2-0.8'
>> e_all=: e_head,LF,e_prob
>>
>>
>> asep_draw_button=: 3 : 0
>> asep_test ''
>> )
>>
>> set_px=: 3 : 0
>> wd 'set PX "0.2" "0.3" "0.4" "0.5" "0.55" "0.6" "0.7" "0.8"'
>> wd 'setselect PX 4'
>> )
>>
>>
>>
>>  asep_test=: 3 : 0
>> do_turtle_circuit ". PX
>> )
>>
>> asep_run=: 3 : 0
>> wd ASEP
>> NB. initialize form here
>> wd'setfont board ',font
>> wd'setfont pxsmall ',font
>> btext=: e_name
>> wd'setcaption board *',btext
>> wd'set pxsmall *',e_all
>> set_px ''
>> wd 'pshow;'
>> )
>>
>> asep_board_button=: 3 : 0
>> select. btext
>> case. c_name do.
>>  btext=: e_name
>>  t=. e_all
>> case. e_name do.
>>  btext=: c_name
>>  t=. c_all
>> end.
>> wd'set pxsmall *',t
>> wd'setcaption board *',btext
>> )
>>
>>
>> asep_close=: 3 : 0
>> wd'pclose'
>> )
>>
>> asep_end_button=: 3 : 0
>> asep_close''
>> )
>>
>> asep_run ''
>>
>> NB. ---------random number----------------
>> NB. montecarlo
>> monte0=: 4 : ' ((x* y)> y?y) # i.y'
>> NB. 0.5 monte0 100
>> NB. --motropolis method---
>> metropolis0=: 4 : 0
>> NB. metropolise argolythm
>> NB. 0.7 u 1000
>> NB. not burn-in
>> ANS=.{. TMP1=. 2 {. TMP0=. y ? y
>> for_ctr. (i. y)-2 do.
>>  select.  1< RATE=. %/ |. TMP1  NB. px' / pxt
>>  case. 1 do. NB. take
>>     ANS=. ANS,{: TMP1
>>     TMP1=. (}. TMP1), (2 + ctr){TMP0
>>   fcase. do.
>>      if.  ((? y)%y) < x do. NB. get  prob each time
>> NB.for take using  < (not >)
>>        ANS=. ANS,{: TMP1    NB. take(same)
>>        TMP1=. (}. TMP1), (2 + ctr){TMP0 NB. take(same)
>>       else. TMP1=. (}: TMP1),(2 + ctr){ TMP0
>>      end.
>>  end.
>> end.
>> NB. ---------------------------
>> ANS
>> NB. nub(‾.) adjust head of overrup
>> NB. if null --> find  0=# ans --> 1
>> )
>>
>> metropolis_x=: 4 : 0
>> NB. Usage: 0.55 metropolis_x 6
>> NB. remove  0   --> 0
>> NB. if null --> 0
>> NB. case. 0 -->on using script write skip patarn
>> TMP=. ‾. /:‾ x metropolis0 y NB. not burn_in and sort
>> select.  # TMP
>>  case. 0 do. TMP=. 0                    NB. null -->0
>>  case. 1 do.
>>      if. 1 = TMP do. TMP=. 0 else. TMP=. TMP end.
>>  fcase. do.  TMP=.( -. TMP e. 0 ) # TMP NB. except 0
>>      if. 0 =  # TMP do. TMP=. 0 end.  NB. null --> 0
>> end.
>> TMP
>> )
>>
>>
>> NB. ----------------------------
>> NB. E.O.F.
>>
>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to