-

+; "...\\\";
.(" !") .


:





:      |   |   | 


: 03.12.08.

(******************************************************************************)
(* .                *)
(* .                                    *)
(******************************************************************************)
+;

  "...\\\",
  "...\\\",
  "...\\\",
  "...\\\",
  "...\\\",
  "...\\\",
  ;


  W1, W2, DW1, DW2: ;
  B1, B2, DB1, DB2: ;
  X, Y, Z, H, 1, 2: ;
  , , , , : ;
  , : ;
  , : ;
  : ;
  , , , : ;


  = 0.5;

;

  : ;
  : .;
  : 8 ;

  (W1, *);
  (B1, );
  (W2, *);
  (B2, );
  (DW1, *);
  (DB1, );
  (DW2, *);
  (DB2, );
 
    := .(".");
    = .(": ."); (0) ;
    := 0 (W1^)-1
      .(, , 8);
      .(.(), .(W1[]), 8);
      DW1[] := 0.0
    ;
    := 0 (B1^)-1
      .(, , 8);
      .(.(), .(B1[]), 8);
      DB1[] := 0.0
    ;
    := 0 (W2^)-1
      .(, , 8);
      .(.(), .(W2[]), 8);
      DW2[] := 0.0
    ;
    := 0 (B2^)-1
      .(, , 8);
      .(.(), .(B2[]), 8);
      DB2[] := 0.0
    ;
    .()
 
    := 0 (W1^)-1
      W1[] := 0.1*.();
      DW1[] := 0.0
    ;
    := 0 (B1^)-1
      B1[] := 0.1*.();
      DB1[] := 0.0
    ;
    := 0 (W2^)-1
      W2[] := 0.1*.();
      DW2[] := 0.0
    ;
    := 0 (B2^)-1
      B2[] := 0.1*.();
      DB2[] := 0.0
   
  ;
  (X, );
  (H, );
  (Z, );
  (Y, );
  (2, );
  (1, );
  := 0;
  (, , );
  (, , )
;

(x: ): ;
1.0/(1.0+.exp(-x))
;

();

  1, 2, 3: ;

  3 := 0;
  1 := 0 -1
    H[1] := B1[1];
    2 := 0 -1
      H[1] := H[1] + W1[3] * X[2]; (3)
    ;
    H[1] := (H[1]);
  ;
  3 := 0;
  1 := 0 -1
    Z[1] := B2[1];
    2 := 0 -1
      Z[1] := Z[1] + W2[3] * H[2]; (3)
    ;
    Z[1] := (Z[1]);
 
;

;

  1, 2, 3: ;

  1 := 0 -1
    2[1] := Z[1] - Y[1];
    := + 0.5*2[1]*2[1]/
  ;
  1 := 0 -1
    1[1] := 0.0
  ;
  3 := 0;
  1 := 0 -1
    2 := 0 -1
      1[2] := 1[2]+2[1]*Z[1]*(1.0-Z[1])*W2[3]; (3)
   
  ;
  3 := 0;
  1 := 0 -1
    DB2[1] := -*2[1]*Z[1]*(1.0-Z[1]) + *DB2[1];
    B2[1] := B2[1]+DB2[1];
    2 := 0 -1
      DW2[3] := -*2[1]*Z[1]*(1.0-Z[1])*H[2] + *DW2[3];
      W2[3] := W2[3]+DW2[3]; (3)
   
  ;
  3 := 0;
  1 := 0 -1
    DB1[1] := -*1[1]*H[1]*(1.0-H[1]) + *DB1[1];
    B1[1] := B1[1]+DB1[1];
    2 := 0 -1
      DW1[3] := -*1[1]*H[1]*(1.0-H[1])*X[2] + *DW1[3];
      W1[3] := W1[3]+DW1[3]; (3)
   
 
;

;

  : ;

  .("^ :       ");
  := 0 -1 .(" [%g]", X[], 0, 0, 0) ;
  .("^ :        ");
  := 0 -1 .(" [%g]", Z[], 0, 0, 0) ;
  .("^ : ");
  := 0 -1 .(" [%g]", Y[], 0, 0, 0) ;
;

;

  , 1, 2: ;
  : .;
  : 8 .;

  := 0;
 
    := 0;
    .("...");
    1 := 0 -1
      2 := 0 -1
        X[2] := [1, 2]
      ;
      2 := 0 -1
        Y[2] := [1, 2]
      ;
      ;
    ;
    ();
    .("^ %d; %g.^", , , 0, 0);
  ( >= ) ( < 0.005);
  .(".");
 
    := .(".");
    = .(": ."); (0) ;
    1 := 0 (W1^)-1
      .(.(W1[1]), .(), 8);
      .(, , 8)
    ;
    1 := 0 (B1^)-1
      .(.(B1[1]), .(), 8);
      .(, , 8)
    ;
    1 := 0 (W2^)-1
      .(.(W2[1]), .(), 8);
      .(, , 8)
    ;
    1 := 0 (B2^)-1
      .(.(B2[1]), .(), 8);
      .(, , 8)
    ;
    .()
 
;

;

  1, 2: ;

  1 := 0 (^)-1
    .("^ :^");
    2 := 0 -1
      X[2] := [1, 2];
      .("%d ", X[2], 0, 0, 0)
    ;
    ;
    .("^:^");
    2 := 0 -1
      .("%g ", Z[2], 0, 0, 0)
   
 
;

;

  : .;
  : 100H ;
  , : 20H ;
  : ; 1, 2, 1, 2, 3: ;
  ;
  .(" ."); .(); (0)
  ;

  := ; := ;
  := ; := ;
  := .(".");
  = .(": ."); (0)
    .(":^");
    .()
      .(, );
      1 := 0;
      [1] # "["
        (1); 1 = ()
      ;
      2 := 0; (1); 1 = () ;
     
        [2] := [1];
        (1); (2);
        (2 = ()) (1 = ())
      [1] = "]";
      [2] := 0X;
      (1); (1 >= ()-1) ([1] # "=") ;
      (1); 2 := 0;
      1 < ()
        [2] := [1];
        (2); 2 = () ;
        (1)
      ;
      [2] := 0X;
      .(); 1 := 0;
      = ""
        := .(, 1);
        .(" : %d^", , 0, 0, 0)
      = ""
        := .(, 1);
        .(" : %d^", , 0, 0, 0)
      = " "
        := .(, 1);
        .(" : %d^", , 0, 0, 0)
      = ""
        := .(, 1);
        .(" : %d^", , 0, 0, 0)
      = ""
        := .(, 1);
        .(" : %g^", , 0, 0, 0)
      = ""
        := ;
        := .(, 1);
        .(" : %d^:^", , 0, 0, 0);
        ;
        2 := 0 -1
          .("[ ");
          .(, );
          2 := 0;
          1 := 0 -1
            3 := 0;
           
              [3] := [2];
              (2); (3);
              (2 = ()) (3 = ())
            ([2] = " ") ([2] = ";") ([2] = "#0009");
            [3] := 0X; 3 := 0;
            [2, 1] := .(, 3);
            .("%g ", [2, 1], 0, 0, 0);
           
              (2); 2 = ()
            ([2] # " ") ([2] # "#0009")
          ;
          .("] [ ");
          [2] # ":" ;
         
            (2); 2 = ()
          ([2] # " ") ([2] # "#0009");
          1 := 0 -1
            3 := 0;
           
              [3] := [2];
              (2); (3);
              ((1 < -1) (2 = ())) (3 = ())
            (2 = ()) ([2] = " ")
               ([2] = ";") ([2] = "#0009");
            [3] := 0X; 3 := 0;
            [2, 1] := .(, 3);
            .("%g ", [2, 1], 0, 0, 0);
            1 < -1
             
                (2); 2 = ()
              ([2] # " ") ([2] # "#0009")
           
          ;
          .("]^")
       
      = " "
        .();
        = ""
          := ;
          .(" ^")
        = ""
          .(" ^")
       
      = " "
        .();
        = ""
          := ;
          .(" ^")
        = ""
          .(" ^")
       
      = ""
        := ;
        (, .(, 1), );
        .(" : %d^:^", (^), 0, 0, 0);
        2 := 0 (^)-1
          .(, );
          2 := 0;
          1 := 0 -1
            3 := 0;
           
              [3] := [2];
              (2); (3);
              ((1 < -1) (2 = ())) (3 = ())
            (2 = ()) ([2] = " ")
               ([2] = ";") ([2] = "#0009");
            [3] := 0X; 3 := 0;
            [2, 1] := .(, 3);
            .("%g ", [2, 1], 0, 0, 0);
            1 < -1
             
                (2); 2 = ()
              ([2] # " ") ([2] # "#0009")
           
          ;
          .("^")
       
     
    ;
    .()
  ;
 
;


  ;
  ;
 

.


=================================
( "" - , ).
=================================

[]=3
[]=3
[ ]=18
[]=100
[]=0,5
[ ]=
[ ]=
[]=10
1 2 3   : 1 0 0
2 5 10  : 1 0 0
3 7 15  : 1 0 0
15 7 3  : 0 0 1
10 5 2  : 0 0 1
3 2 1   : 0 0 1
1 1 1   : 0 1 0
3 3 3   : 0 1 0
4 7 2   : 0 1 0
1 4 3   : 0 1 0
[]=3
2 3 4
4 3 2
1 5 3
    .