优化覆盖型问题的Python实现

2024-05-16 22:59:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否可以使用scipy.optimize或其他Python包来构建优化问题。 这就是问题所在。 我有两个0和1的矩阵

import numpy as np
from numpy import random
event1 = random.choice([0, 1], size=(20,10), p=[9./10, 1./10])
event2 = random.choice([0, 1], size=(20,10), p=[5./10, 5./10])

我想找到一个最佳的行子集(如果我为矩阵event1选择了行x,那么我也必须为矩阵event2选择行x),这样:

sum(event2[rows_select].sum(axis=0) > 0)是最小值

服从

mean(event1[rows_select].sum(axis=0) > 0) >= p --where 0<p<1

在本例中,行选择是随机的,但这实际上是需要优化的

rows_select = random.choice([False, True], size=(20,), p=[5./10, 5./10])

Tags: importnumpysizeas矩阵randomscipyselect