-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Population model tariff evaluation is crude, unrealistic #1076
Comments
Here's a proposal for a new tariff-evaluation process for population models: Given a population of size N, mapped to a set of tariffs T. For each tariff t, n_t customers are currently subscribed. At tariff-evaluation time, some subset n_eval of N might potentially switch tariffs such that n_eval / N ~= (1 - inertia). Presumably that subset will be N_t,e = {(1 - inertia) * n_t} forall T. Eval produces a set of utility values U_t Apply rationality -- foreach n_t,e in T, determine allocations to individual tariffs. Some of these will be staying with their existing tariffs, others will be switching. Adjust allocations to conform with minimum cluster size constraint. Some allocations will increase slightly, some will decrease, and some will be too small to carry forward. For each cluster changing from tariff t_a to tariff t_b, carry over the scaled state from regulation and capacity-shifting decision to the new tariff environment. |
Question: Is it valid for a customer (like FrostyStorage) to be treated as INDIVIDUAL capacity types and yet evaluate tariffs as "multi-contracting"? Perhaps not. For populations under 50 (default minimum chunk size), the entire population will always be subscribed to the same tariff. If this is not what we want, the best approach might be to just reconfigure them to create a |
When an individual model evaluates tariffs, it first decides whether to pay attention (inertia), and then whether to switch (preferences and rationality). Population models should approximate this behavior to the extent possible, but they do not. Instead, the UtilityOptimizer first sets a "chunk size" in its TariffEvaluator, than that chunk is treated as an individual for the purpose of processing inertia and switching tariffs. But then, in evaluateAlternativeTariffs(), a different chunk size (which does not appear to be configurable) is used to allocate segments of the population across tariffs.
This scheme is confusing at best, and does not appear to behave in the way laid out in the game specification.
The text was updated successfully, but these errors were encountered: