gams:get_an_ordered_set_from_a_set_which_is_not_ordered

This shows you the differences between two versions of the page.

Both sides previous revision Previous revision Next revision | Previous revision | ||

gams:get_an_ordered_set_from_a_set_which_is_not_ordered [2008/10/15 14:17] support |
— (current) | ||
---|---|---|---|

Line 1: | Line 1: | ||

- | ====== How do I get an ordered set from a set, which is not ordered? ====== | ||

- | |||

- | ''Ord()'' only works on ordered sets. Sets with elements, which have been introduced earlier, may not be ordered. Below is an example, how to get an ordered set in such a situation. | ||

- | |||

- | Note: The functions ''sameas'', ''.pos'', and ''.val'' will also work, if the set is not ordered. | ||

- | |||

- | <code> | ||

- | set i ordered / 1*10 / | ||

- | j not ordered / 0*9 /; | ||

- | |||

- | * j is not ordered since UEL (unique element) '0' which is first in j | ||

- | * enters the universe out of order (after 1 to 9). | ||

- | |||

- | parameter ordj(j) faked ord(j); | ||

- | * this does not work | ||

- | * ordj(j) = ord(j); | ||

- | * this always works | ||

- | scalar cnt /0/; loop(j, cnt=cnt+1; ordj(j) = cnt); | ||

- | |||

- | set first_j(j) first element of j | ||

- | last_j(j) last element of j; | ||

- | |||

- | first_j(j) = ordj(j) = 1; | ||

- | last_j(j) = ordj(j) = card(j); | ||

- | |||

- | * This has 1 as first and 0 as last element. If the actual order is of no | ||

- | * importance this is just fine | ||

- | display first_j, last_j; | ||

- | |||

- | alias (*,u); | ||

- | |||

- | * In case you need the actual order, the following piece of code does it | ||

- | cnt=0; loop((u,j)$sorteduels(u,j), cnt=cnt+1; ordj(j) = cnt); | ||

- | |||

- | first_j(j) = ordj(j) = 1; | ||

- | last_j(j) = ordj(j) = card(j); | ||

- | |||

- | * Now we have 0 as first and 9 as last element. | ||

- | display first_j, last_j; | ||

- | </code> | ||

- | |||

- | Output: | ||

- | <code> | ||

- | ... | ||

- | ---- 21 SET first_j first element of j | ||

- | |||

- | 1 | ||

- | |||

- | |||

- | ---- 21 SET last_j last element of j | ||

- | |||

- | 0 | ||

- | |||

- | |||

- | ---- 32 SET first_j first element of j | ||

- | |||

- | 0 | ||

- | |||

- | |||

- | ---- 32 SET last_j last element of j | ||

- | |||

- | 9 | ||

- | </code> | ||

- | |||

IMPRESSUM / LEGAL NOTICE
PRIVACY POLICY
gams/get_an_ordered_set_from_a_set_which_is_not_ordered.1224073063.txt.gz ยท Last modified: 2008/10/15 14:17 by support