Порядок (последовательность) элементов набора, импортированных в GAMS

Я хочу импортировать элементы или элементы в набор GAMS из других источников, например из базы данных SQL. Например, установите p plant /p1,p2,p3.../ Эти элементы успешно импортированы, однако кажется, что они не упорядочены, поскольку при использовании условного предложения, такого как ord(p) > 3, в ограничениях будут выдаваться сообщения об ошибках. .

Я знаю, что элементы упорядочены так, как они изначально созданы. Таким образом, эти импортированные элементы должны следовать той же последовательности, что и импортированные. Когда я показываю этот набор, элементы отображаются как p1, p2, p3...

Поэтому я действительно запутался в упорядочении импортированных элементов. Я хочу выяснить причину и, если есть способы исправить их порядок. Спасибо.

Взгляните на $onUELlist, чтобы отобразить порядок в вашем файле листинга. И встроенные SortedUELs(,) для получения естественного порядка. См.: gams.com/latest/docs/…

Berenger 05.06.2019 21:47

Спасибо Беренгер!

Harry 06.08.2019 18:50
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
80
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете добавить следующее после загрузки данных

ALIAS(*,universe);
display universe;
$exit;

Затем вы должны увидеть порядок загруженных элементов набора и места, где мог появиться неправильный порядок. Если вы абсолютно не можете заказать набор в исходном запросе (sql db), хак должен был бы инициировать вспомогательный набор перед загрузкой фактических данных.

set helper /p1*p100000/;

Привет Маттес, спасибо за ваш ответ. Этот метод для меня новый. Это должно быть очень полезно. Я понимаю, что проблема у меня связана с элементами. Я выбираю числа, скажем, от 1 до 1000, чтобы представить элементы во всех наборах. Как только первый (большой) набор импортирован, порядок всех элементов в значительной степени определен. Таким образом, для набора, импортированного позже, скажем, 1, 3, 5, 6, может быть невозможно использовать ord для этого набора. Это мое понимание, и оно может быть неправильным. Я попробую помощника, чтобы увидеть, может ли он решить проблему.

Harry 06.08.2019 18:50

Да, GAMS отслеживает каждый элемент набора внутри универсального набора. Этот набор заполняется в порядке появления элементов. Итак, если ваш первый загруженный набор содержит элементы {1,5,10}, то это первые три элемента в универсальном наборе. если вы добавите второй набор с элементами {1,2,3,4,5}, тогда универсальный набор будет следующим: {1,5,10,2,3,4}. В этом случае второй набор выглядит «неупорядоченным» по сравнению с универсальным набором, потому что элемент «2» находится перед элементом «5» во втором наборе. Функция ORD() не будет работать для неупорядоченных наборов.

matthes 07.08.2019 19:10

Другие вопросы по теме