I have a problem with my GAMS-code and the implementation of the GAMS-code in Ruby. I know that GAMS is not the most popular program, but maybe someone can help me.
I have a model, where I try to allocate children optimally to kindergartens. This is a basic example of the code:

```
Sets
          i       Child
          j       Kindergarten
          l       Links
          LI(l,i), LJ(l,j);

Parameters
          a(j)    accessibility
          C(j)    Capacity of Kindergartens
          ch      Capacity for handicapped children
          d(i,j)  distance
          da(i)   distance average
          h(i)    handicapped children
          p(i,j)  preferences
          s(i,j)  siblings;

Binary Variables
          x(i,j)  1 if child i is allocated to kindergarten j;

Free Variables
          ZFW     Zielfunktionswert;

*----- Iclude -----
$include ...

da(i) = sum(j, d(i,j)) / card(j);

*----- Deklaration -----
Equations
         ZF              objective function
         Zuordnung       every child is assigned to one kindergarten
         Kapa            the capacity of the kindergarten must be maintained
         Behin           handicapped children are only assigned to suitable kindergartens;

ZF..               ZFW =E= sum((i,j), x(i,j) * (p(i,j)/s(i,j)) *     (d(i,j)/da(i)));

Zuordnung(i)..     sum(j, x(i,j)) =E= 1;

Kapa(j)..          sum(i, x(i,j) * (1 - h(i))) + sum(i, x(i,j) * h(i) * ch) =L= C(j);

Behin(i,j)..       x(i,j) * h(i) =L= a(j);

Model KiGaOpt /all/;

Solve KiGaOpt using MIP minimizing ZFW;

display x.l;

```

I have also a include file, where I define the parameters. My problem is, that I want to implement this in Ruby and I wanna use links (l) instaed of loops for the relation between i and j. 
I know, that I have to replace all i's and j's in dependence of l. But everytime I try this, I receive an error message. I have written it to this form, where I have replaced each time, when a parameter is dependent on i and j, with a l. But I have problems with the rest.

```
Sets
          i       Child
          j       Kindergarten
          l       Links
          LI(l,i), LJ(l,j);

Parameters
          a(j)    accessibility
          C(j)    Capacity of Kindergartens
          ch      Capacity for handicapped children
          d(l)  distance
          da(i)   distance average
          h(i)    handicapped children
          p(l)  preferences
          s(l)  siblings;

Binary Variables
          x(l)  1 if child i is allocated to kindergarten j;

Free Variables
          ZFW     Zielfunktionswert;

*----- Iclude -----
$include ...

da(i) = sum(l$LI(l,i), d(l)) / card(j);

*----- Deklaration -----
Equations
         ZF              objective function
         Zuordnung       every child is assigned to one kindergarten
         Kapa            the capacity of the kindergarten must be maintained
         Behin           handicapped children are only assigned to suitable kindergartens;

ZF..               ZFW =E= sum(l, x(l) * (p(l)/s(l)) * (d(l)/da(i)));

Zuordnung(i)..     sum(l$LI(l,i), x(l)) =E= 1;

Kapa(j)..          sum(l$LJ(l,j), x(l) * (1 - h(i))) + sum(l$LJ(l,j), x(l) * h(i) * ch) =L= C(j);

Behin(i,j)..       x(l) * h(i) =L= a(j);

Model KiGaOpt /all/;

Solve KiGaOpt using MIP minimizing ZFW;

display x.l;

```

My include file looks as follow:

```
Sets
         i       /i1*i5/
         j       /j1*j2/
         l       /l1*l10/;

LI(l,i) = no;
LJ(l,j) = no;

LI( 'l1', 'i1') = yes;
LJ( 'l1', 'j1') = yes;

LI( 'l2', 'i1') = yes;
LJ( 'l2', 'j2') = yes;

LI( 'l3', 'i2') = yes;
LJ( 'l3', 'j1') = yes;

LI( 'l4', 'i2') = yes;
LJ( 'l4', 'j2') = yes;

LI( 'l5', 'i3') = yes;
LJ( 'l5', 'j1') = yes;

LI( 'l6', 'i3') = yes;
LJ( 'l6', 'j2') = yes;

LI( 'l7', 'i4') = yes;
LJ( 'l7', 'j1') = yes;

LI( 'l8', 'i4') = yes;
LJ( 'l8', 'j2') = yes;

LI( 'l9', 'i5') = yes;
LJ( 'l9', 'j1') = yes;

LI( 'l10', 'i5') = yes;
LJ( 'l10', 'j2') = yes;

Parameters

         a(j)
                /j1      1
                 j2      0/

         h(i)
                /i1      1
                 i2      0
                 i3      0
                 i4      0
                 i5      1/

         C(j)
                /j1      100
                 j2      100/

         ch      /2/;

Table p(i,j)
         j1      j2
i1       10      1
i2       10      1
i3       10      1
i4       10      1
i5       10      1       ;

Table d(i,j)
         j1      j2
i1       1       4
i2       2       1
i3       1       1
i4       1       2
i5       2       10.2    ;

Table s(i,j)
         j1      j2
i1       5       1
i2       1       1
i3       1       1
i4       1       1
i5       1       1       ;

```

Can someone help me to rearrange my model and my include data?

Thank you!