Я минимизирую целевую функцию, которая составляет -100 * Скорость заполнения (полы) вместе с штрафом L2 на Epsilon и Gamma:
-100 * fill_rate (полы) + L1 * || epsilon || + l2 * || gamma || < /strong>
i имеет ограничения, которые включают оценку функции дохода, которая вычисляется с помощью выборки (Monte Carlo). Следовательно, функция дохода имеет изменчивость. Ограничение доходов:
функциональна >0,95 * Бюджет 0:
served_ao += 1
supply_rev += Y
if Z == 0:
R1 += Y
elif Z == 1:
R2 += Y
elif Z == 2:
R3 += Y
if R1 >= bq_budgets[0]:
bq1_budget_exhausted = True
if R2 >= bq_budgets[1]:
bq2_budget_exhausted = True
if R3 >= bq_budgets[2]:
bq3_budget_exhausted = True
supply_fr = served_ao / num_samples
bq1_fr = bids_above_floor1 / num_samples
bq2_fr = bids_above_floor2 / num_samples
bq3_fr = bids_above_floor3 / num_samples
return supply_rev, supply_fr, [R1, R2, R3], [bq1_fr, bq2_fr, bq3_fr], np.array([X1, X2, X3])
def get_participation_rate(max_bids, floors):
"""
Given bids data, get the participation rate for all bqs
"""
N = len(max_bids[0])
pr = []
for bq_bids, f in zip(max_bids, floors):
rate = np.count_nonzero(np.where(bq_bids < f, 0, bq_bids))
rate = rate / N
pr.append(rate)
return pr
def get_delta_samples(max_bids, floors, gamma, num_samples):
"""
Given bids data, get the bernoulli samples with the participation rate determined by the bids observed
"""
pr_arr = get_participation_rate(max_bids, floors)
temp = []
for pr, g in zip(pr_arr, gamma):
if 0
Подробнее здесь: https://stackoverflow.com/questions/796 ... -sobol-hal
Оптимизация SHGO заканчивается ни от одного. Пробовал все три метода отбора проб: Собол, Хэлтон, Simplicial. Оценка изме ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение