что мне делать, чтобы scipy мог оптимизировать мой 2d массив (древовидная структура)? - PullRequest
0 голосов
/ 20 мая 2019

У меня есть дерево данных S (см. На картинке)

Структура дерева:

enter image description here

, а также дерево стратегии хеджирования H (такая же структура, как у другого дерева).

Теперь я хочу вычислить денежный поток от моих операций хеджирования и найти оптимальный массив хеджирования H, который возвращает максимальную прибыль.

Правила расчета денежного потока: 1. для года 0, H [0,0] * S [0,0] 2. одна цена акции в прошлом году имеет 3 возможных результата в следующем году. в плане материнского узла 3 дочерних узла. (видно на картинке) 3. для года x (x> 0) денежный поток для каждого дочернего узла равен (H [childnode, x] -H [mothernode, x-1]) * S [childnode, x] 4. в конце я подведу итоги движения каждого пути и максимизирую его.

Идеальная функция суммирования денежных потоков должна выглядеть следующим образом:

def денежный поток (H):

расчет денежного потока здесь, уже сделано

возврат (конечный денежный поток)

У меня уже есть правильный расчет. но когда я попытался использовать оптимизацию в scipy, scipy solver не получает не-1D массив в качестве входных данных. Если мне придется сгладить мой текущий массив деревьев в одномерный массив, я потеряю индекс времени (столбца). Это разрушит вычисления между материнскими узлами и дочерними узлами.

Так есть ли рекомендация для получения оптимального массива H? Новый решатель или новая структура данных?

PS: Excel Solver может легко решить эту проблему, но мне нужно создать подпрограмму в Python.

...