s1 #1 M=matrix( [ [1,1,3,-1,3],[1,-7,1,0,1],[-2,2,-2,1,-2],[-5,1,2,-1,13],[-4,-5,-3,1,-1]]) filas = [min(M[x]) for x in range(5)] #minnimo en filas columnas = [max(M[:,x]) for x in range(5)] #maximo en columnas print(filas) print(columnas) sillas = [(c1,c2) for c1 in filas for c2 in columnas if c1==c2] print(sillas) #1.2 M=matrix( [ [1,1,3,-1,3],[1,-7,1,0,1],[-2,2,-2,1,-2],[-5,1,2,-1,13],[-4,-5,-3,1,-1]]) indices = [(col1,col2) for col1 in range(5) for col2 in range(5) if col1!=col2] dominadas=[] for c1,c2 in indices: domina=True for e1,e2 in zip (M[:,c1],M[:,c2]): if e1e2: domina=False break if domina: dominadas.append((c2,c1)) print(dominadas)#se quitan las 2 y la 4. #2 #2 M=matrix( [ [-6,-2, 1 , 0, -1 ], [5,-3,-1,0,360] ]) indices = [(col1,col2) for col1 in range(5) for col2 in range(5) if col1!=col2] dominadas=[] for c1,c2 in indices: domina=True for e1,e2 in zip (M[:,c1],M[:,c2]): if e1e2: domina=False break if domina: dominadas.append((c2,c1)) print(dominadas) #por filas hay que maximizar M=matrix( [ [-6,-2], [5,-3] ]) p=MixedIntegerLinearProgram(maximization=True) x=p.new_variable() v=p.new_variable() p.add_constraint(v[1]-v[2]<= -6*x[1] +5*x[2]) p.add_constraint(v[1]-v[2]<=-2*x[1]-3*x[2]) p.add_constraint(x[1]+x[2]==1) p.set_objective(v[1]-v[2]) print(p.solve()) print(p.get_values(x[1])) print(p.get_values(x[2])) #por columnas #por filas hay que maximizar M=matrix( [ [-6,-2], [5,-3] ]) p=MixedIntegerLinearProgram(maximization=False) x=p.new_variable() v=p.new_variable() p.add_constraint(v[1]-v[2]>= -6*x[1] -2*x[2]) p.add_constraint(v[1]-v[2]>=5*x[1]-3*x[2]) p.add_constraint(x[1]+x[2]==1) p.set_objective(v[1]-v[2]) print(p.solve()) print(p.get_values(x[1])) print(p.get_values(x[2]))