0

Numpy には、float の配列の IRR を計算できる関数があります。私の問題は、PuLP の問題で使用しようとしていて、関数に渡したい配列が問題の変数で構成されていることです。ここで私は

    problem = pulp.LpProblem("TIR_MINIMIZE", pulp.LpMaximize)
    price_ppa = pulp.LpVariable("price_ppa")
    price_production = []

    for i in range(10):
        price_production.append(price_ppa * annual_production[i])
        # anual_production is an array of values calculated outside the function

    irr = numpy.irr(price_production)

    # CONSTRAINTS #####################################################################################
    problem += irr>= 0.075

    objective_function = -irr
    problem += objective_function

    #####################################################################################################
    problem.solve()

そして、このコードは機能しません。これは、numpy.irr が float の配列を想定しているのに対し、LpAffineExpressions の配列を渡しているためです。私の質問は、これをやや簡単な方法で実装する方法はありますか? アルゴリズムを手動で実装しようとしましたが、PuLP 制約定義内では実行できません。

4

1 に答える 1