2014-10-10 5 views
-1

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

В комплект набора для театра должен быть 4 участника. Аудитория должна состоять из 10 человек.

Существует только театр, в котором есть только 4 места. Но есть 10 человек, которые хотят посмотреть театр. Только 4 из них могут иметь место. Остальное вернется домой. Я в беде. Не могли бы вы мне помочь?

Заранее спасибо.

EDIT

Вот мой код:

module Example 
sig Audiance{ 
    result: lone Seat 
} 

some sig Seat {} 

pred validassignment { 
    '#'Seat=4 
    '#'Audiance=10 
    all a:Audiance | lone a.result 
} 

run validassignment 

EDIT

Как можно устранить эту проблему? (Рабочий на том же самом месте)

С уважением

ответ

4

Вы могли бы хотеть, чтобы показать нам, что вы уже сделали, и точно определить, где вы застряли точно. Смутный ответ на этот неопределенный вопрос: подумайте «декларативно».

EDIT

Здесь не работает по двум причинам:

Первый, что вы написали синтаксически неправильно. Оператор мощности равен # и не '#'. (перенаправить вас туда: http://www.monperrus.net/martin/alloy-quick-ref.pdf за хороший обзор основных концепций и связанных с ними синтаксис в сплаве)

Тогда, область по умолчанию при запуске команды равен 3. Значение каждого набора определяется сигнатура имеют мощность не более 3. Вам необходимо, чтобы в вашем случае до увеличьте область действия, чтобы найти соответствующие экземпляры.

Вы можете указать количество мест и audiances непосредственно в объеме, следующим образом:

run validassignment for exactly 4 Seat, exactly 10 Audiance 

Есть еще и другие проблемы в вашей модели. В его нынешнем состоянии, возможно, чтобы все в аудитории сидели на одном и том же месте. Думаю, вы не хотите, чтобы это произошло.

Удача

+0

Как я могу устранить эту проблему? (Размещение на одном и том же месте) – stackalreadyoverflowed

+0

добавление ограничений –

+0

спасибо за помощь – stackalreadyoverflowed

 Смежные вопросы

  • Нет связанных вопросов^_^