Veda2.0 Released!

constraining NCAP

Let us assume, we have 100 processes, all producing the same commodity A. These processes are divided into 4 groups with 25 process in each group. Now, we would like to constrain the NCAP share for each of these 4 groups to certain given shares. I have tried to modify the UC examples given in the Demo, to achieve this, but was not successful.

I would be thankful, if anyone can help. Especially please also let me know, if there is any other way besides the forum, how one can find out about such information, e.g. a documentation. Thanks!

Can anyone please help/reply? Thanks!

Hmm... “we would like to constrain the NCAP share for each of these 4 groups to certain given shares”.  

I am not at all sure that I fully understand the question or the problem you have. The problem would probably become much clearer if you would explain what you have tried so far, but you are not giving any clue as to why your attempts have failed.

But OK, I will try to give some help anyway. I am assuming that you would like to specify a constraint consisting solely of a set of NCAP variables for a single period, or similar constraints for several individual periods.

The general form for such a constraint is the following (for a single period):

i Ai ×NCAPi ≤ 0

The constraint is thus basically very simple: It consists only of certain NCAPi variables, each of which have a coefficient Ai, and the right hand side (RHS) is zero.  With constraints of this general form you could define any share constraints (UP/LO) for any groups of NCAP variables in the total sum of the NCAP variables over all i, by defining the appropriate coefficients Ai that will define exactly the constraint desired.

In order to define these kind of constraints in VEDA, you just need to define the coefficients Ai and the zero RHS value.  However, I don’t see any benefit of using an example with 100 processes, it is unnecessarily large.  Let's assume for simplicity that an example constraint involves only 6 processes. For six processes, the straightforward specification of the constraint would look like this (this is just one possible layout out of numerous different layouts available under VEDA):

In the example above, I have used 2020 as the period for the input data specification (see the Year column). The process names are specified in the Pset_PN column. The coefficients Ai for the NCAP variables are defined by the UC_NCAP attribute.  The values are thus specified in the UC_NCAP column in the figure above (shown by the <An> placeholders). The zero RHS value is specified under the UC_RHSRT column header, and I have also included an interpolation option for the RHS value, which is specified under the UC_RHSRT~0 column.  The option 5 extrapolates the zero RHS value to all periods after 2020, and that will cause the same constraint to be generated for all those later periods as well.

As you can see, the specification is very simple and straightforward, and therefore it is difficult to imagine why you did not succeed to define such a constraint. Specifying different Ai coefficients for different periods is equally simple: Just add more lines for the coefficients in different periods. And the generalization to 100 processes would be equally straightforward.

However, with a set of 100 processes, the straightforward specification will obviously become a bit cumbersome, and therefore I would suggest to utilize process name filters as well. In my next post I will show another example utilizing process name filters for an easier specification with a large number of processes.


OK, here is another example, utilizing process name filters, when defining NCAP share bounds for certain groups of processes in a larger set of processes.  For the purposes of illustration, assume that the larger set of processes includes only 12 processes, and is divided into four groups, three processes each.

Let us assume that these 12 processes are named as follows:

  • Group A:   SPrcA1, SPrcA2, SPrcA3
  • Group B:   SPrcB1, SPrcB2, SPrcB3
  • Group C:   SPrcC1, SPrcC2, SPrcC3
  • Group D:   SPrcD1, SPrcD2, SPrcD3

The figure below illustrates four NCAP share constraints for each period between 2020 and 2050, one share constraint for each group (A, B, C and D).

This example could be easily generalized to 100 processes split into groups of 25 processes, basically without any change in the specification.  As you can see, by naming the processes in a way that supports the efficient use of process name masks, you can make the constraint specification quite compact.

I hope the examples can be of at least some help, even though I am not sure I have understood the problem at all.

Thanks for the reply.

I have tried out the second method you proposed with process name filters, as due to the large number of processes it seems more suitable. However I get the following errors in "Import Logs" when adding this constraint (all of which point to exactly the added constraints):

Do you have any idea, what these errors could indicate or where I could look this up?

If the example you provided runs at your side (and you still have the files), can you please send the whole model? Thanks!

Yes, sure I tested my examples myself, and they worked well. 

I would indeed be curious to see what you have tried so far. But if you are not willing to post your test model here, I cannot help about the errors.  Please contact the Kanors staff about them.  I am myself not affiliated with Kanors, and don't know so much about VEDA; I am just another regular VEDA user.

OK, I uploaded a tiny test model for you (the results are meaningless, but one can verify the equations in the listing file): uploads/30/birmodel.rar

Attached Files
.rar   birmodel.rar (Size: 50.87 KB / Downloads: 15)

Thanks for your help!

While there was a problem in VEDA-FE for loading the TestScenario file, the model worked fine. Your approach certainly furthered my knowledge about usage of UC in VEDA-FE (e.g. separate declaration of both sides of the equation). I am sharing also my current approach, which is also works now (share of the 4th technology group implicitly constrained):

I have the same problem as birmi had .
I have already tried both specification of UC_T, but I still recieve the VI: Dimension check fail for [UC_NCAP] error.
I do not understand, what Ia m doing wrong. The Demo model is attached with my UC.

I would be thankful, if anyone can help.

Attached Files
.zip (Size: 1.11 MB / Downloads: 8)
Col header should be PSET_PN not PSET_N
Thank you! I made some changes in the table made a typo. I am blind to such things sometimes.

Forum Jump:

Users browsing this thread: 1 Guest(s)