Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Доступ к элементам множества — функция @FOR

Закладка LINK | Создание источника пользовательских данных | Экспортирование данных из LINGO | Закладка I N T E R F A C E | ЗАКЛАДКА GENERAL SOLVER | Закладка NONLINEAR SOLVER | ЗАКЛАДКА INTEGER SOLVER | Функции импорта файлов | Вероятностные функции | Другие функции |


Читайте также:
  1. B. частина програми, де змінна оголошена або, де до неї можна отримати доступ за допомогою операції надання видимості.
  2. I. Первым (и главным) принципом оказания первой помощи при ранениях верхней конечности является остановка кровотечения любым доступным на данный момент способом.
  3. I. Первым (и главным) принципом оказания первой помощи при ранениях нижней конечности является остановка кровотечения любым доступным на данный момент способом.
  4. I. Поэтому первым (и главным) принципом оказания первой помощи при ранениях является остановка кровотечения любым доступным на данный момент способом.
  5. Rights of foreign citizens and persons without citizenship in the Russian Federation. [Электронный ресурс]. – Режим доступа: http://www. PetersburgCity.com/safety guide.
  6. Аксиомы теории поведения потребителя. Предпочтения. Функция полезности.
  7. Алгоритм 2.36. Доступ к информации о задаче

 

Теперь, когда вы умеете определять множества и атрибуты для хранения информации, вам необходимо иметь способ доступа к элементам этих множеств. Функция поэлементной обработки множеств @FOR позволяет получить доступ ко всем элементам множества и их атрибутам и выполнять над ними операции. Когда вы используете @FOR, LINGO создает и закрепляет за каждым элементом множества указатель и выполняет над ними указанные вами операции. Кроме того, вы можете использовать указатель в качестве индекса для доступа к конкретным элементам множества. Индексы для выражения типа Xi в LINGO записываются в виде X(I).

 

Синтаксис функции @FOR для поэлементной обработки множеств следующий:

 

@FOR(множество (список_индексов_множества) | квалификатор_условия:выражение);

Квалификатор_условия является необязательным. Если он используется, ему должен предшествовать символ вертикальной черты (|). По крайней мере должно присутствовать хотя бы одно выражения, хотя их может быть сколько-угодно и они должны отделяться друг от друга точкой с запятой.

Список_индексов_множества является необязательным. Если вы не используете его, то LINGO применяет выражение ко всем элементам множества. Если же вы его определили, то индексы отображаются на элементы множества, которое вы обрабатываете. Когда список_индексов определен, то эти индексы можно использовать в квалификаторе_условия. Приведенный ниже пример призван пояснить этот принцип.

Следующая модель иллюстрирует простое использование функции @FOR. Сама по себе модель не выполняет ничего сколь-нибудь полезного, за исключением, будем надеяться, иллюстрации того, как LINGO выбирает элементы из множества. В действительности модель просто возвращает результат вычитания 1 из каждого из чисел от 1 до 5.

 

MODEL

SETS:

NUMBER/1..5/:X;

ENDSETS

@FOR(NUMBER(I): X(I) = I -1);

END

 

Вольным переводом на русский работы этой функции @FOR будет примерно следующий:

Для каждого NUMBER (числа от 1 до 5) присвоить результат операции NUMBER – 1 переменной X(от 1 до 5).

 

LINGO перебирает все элементы множества, выполняя вычитание для каждого элемента.

После решения модели будет получен следующий результат:

 

VARIABLE VALUE

X(1).0000000

X(2) 1.000000

X(3) 2.000000

X(4) 3.000000

X(5) 4.000000

 

Без сомнения вы и так знаете, что уменьшая 1 на единицу, получим 0. Тем не менее, сам продемонстрированный здесь принцип является достаточно мощным. Вы можете использовать функцию @FOR для выполнения арифметических операций, для включения или исключения из множества элементов, основываясь на выбранном вами условии, и, что самое важное в LINGO, выполнять линейную и нелинейную оптимизацию над множеством. Когда вы видите, что более или менее реальная модель имеет множества со многими элементами, то возможность использования единственного оператора @FOR для записи ограничения, применимому к каждому из многих элементов множества, оказывается чрезвычайно полезным свойством.

 


Дата добавления: 2015-11-16; просмотров: 58 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Пример для Windows| Использование других функций поэлементной обработки множеств с условиями

mybiblioteka.su - 2015-2024 год. (0.006 сек.)