-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sigmoid and legacy economic model running in parallel
- Loading branch information
1 parent
e26ff33
commit 93dc509
Showing
10 changed files
with
431 additions
and
328 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
from core.components.parameters import Parameters | ||
from prometheus_client import Gauge | ||
|
||
BUDGET_PERIOD = Gauge("budget_period", "Budget period for the economic model") | ||
DISTRIBUTIONS_PER_PERIOD = Gauge("dist_freq", "Number of expected distributions") | ||
TICKET_PRICE = Gauge("ticket_price", "Ticket price") | ||
TICKET_WINNING_PROB = Gauge("ticket_winning_prob", "Ticket winning probability") | ||
|
||
class Budget: | ||
def __init__( | ||
self, | ||
period: float, | ||
distribution_per_period: float, | ||
ticket_price: float, | ||
winning_probability: float, | ||
): | ||
self.period = period | ||
self.distribution_per_period = distribution_per_period | ||
self.ticket_price = ticket_price | ||
self.winning_probability = winning_probability | ||
|
||
@property | ||
def period(self): | ||
return self._period | ||
|
||
@property | ||
def distribution_per_period(self): | ||
return self._distribution_per_period | ||
|
||
@property | ||
def ticket_price(self): | ||
return self._ticket_price | ||
|
||
@property | ||
def winning_probability(self): | ||
return self._winning_probability | ||
|
||
@period.setter | ||
def period(self, value): | ||
self._period = value | ||
BUDGET_PERIOD.set(value) | ||
|
||
@distribution_per_period.setter | ||
def distribution_per_period(self, value): | ||
self._distribution_per_period = value | ||
DISTRIBUTIONS_PER_PERIOD.set(value) | ||
|
||
@ticket_price.setter | ||
def ticket_price(self, value): | ||
self._ticket_price = value | ||
TICKET_PRICE.set(value) | ||
|
||
@winning_probability.setter | ||
def winning_probability(self, value): | ||
self._winning_probability = value | ||
TICKET_WINNING_PROB.set(value) | ||
|
||
@classmethod | ||
def fromParameters(cls, parameters: Parameters): | ||
return cls( | ||
parameters.period, | ||
parameters.countsInPeriod, | ||
parameters.ticketPrice, | ||
parameters.winningProbability, | ||
) | ||
|
||
@property | ||
def delay_between_distributions(self): | ||
return self.period / self.distribution_per_period |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.