annotate COBRAxy/utils/CBS_backend.py @ 397:de4a373e338b draft default tip

Uploaded
author francesco_lapi
date Fri, 05 Sep 2025 13:35:35 +0000
parents 0a3ca20848f3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
381
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
1 from swiglpk import *
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
2 import random
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
3 import pandas as pd
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
4 import numpy as np
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
5 import cobra as cb
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
6
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
7 # Initialize LP problem
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
8 def initialize_lp_problem(S):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
9
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
10 len_vector=len(S.keys())
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
11 values=list(S.values())
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
12 indexes=list(S.keys())
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
13 ia = intArray(len_vector+1);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
14 ja = intArray(len_vector+1);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
15 ar = doubleArray(len_vector+1);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
16
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
17 i=0
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
18 ind_row=[indexes[i][0]+1 for i in range(0, len(values) )]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
19 ind_col=[indexes[i][1]+1 for i in range(0, len(values) )]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
20 for i in range(1, len(values) + 1):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
21 ia[i]=ind_row[i-1]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
22 ja[i]=ind_col[i-1]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
23 ar[i] = values[i-1]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
24
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
25 nrows=S.shape[0]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
26 ncol=S.shape[1]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
27
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
28 return len_vector, values, indexes, ia, ja, ar, nrows, ncol
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
29
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
30
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
31
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
32 # Solve LP problem from the structure of the metabolic model
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
33 def create_and_solve_lp_problem(lb,ub,nrows, ncol, len_vector, ia, ja, ar,
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
34 obj_coefs,reactions,return_lp=False):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
35
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
36
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
37 lp = glp_create_prob();
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
38 glp_set_prob_name(lp, "sample");
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
39 glp_set_obj_dir(lp, GLP_MAX);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
40 glp_add_rows(lp, nrows);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
41 eps = 1e-16
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
42 for i in range(nrows):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
43 glp_set_row_name(lp, i+1, "constrain_"+str(i+1));
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
44 glp_set_row_bnds(lp, i+1, GLP_FX, 0.0, 0.0);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
45 glp_add_cols(lp, ncol);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
46 for i in range(ncol):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
47 glp_set_col_name(lp, i+1, "flux_"+str(i+1));
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
48 glp_set_col_bnds(lp, i+1, GLP_DB,lb[i]-eps,ub[i]+eps);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
49 glp_load_matrix(lp, len_vector, ia, ja, ar);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
50
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
51 try:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
52 fluxes,Z=solve_lp_problem(lp,obj_coefs,reactions)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
53 if return_lp:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
54 return fluxes,Z,lp
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
55 else:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
56 glp_delete_prob(lp);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
57 return fluxes,Z
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
58 except Exception as e:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
59 glp_delete_prob(lp)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
60 raise Exception(e)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
61
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
62
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
63 # Solve LP problem from the structure of the metabolic model
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
64 def solve_lp_problem(lp,obj_coefs,reactions):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
65
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
66 # Set the coefficients of the objective function
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
67 i=1
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
68 for ind_coef in obj_coefs:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
69 glp_set_obj_coef(lp, i, ind_coef);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
70 i+=1
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
71
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
72 # Initialize the parameters
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
73 params=glp_smcp()
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
74 params.presolve=GLP_ON
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
75 params.msg_lev = GLP_MSG_ERR
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
76 params.tm_lim=4000
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
77 glp_init_smcp(params)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
78
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
79 glp_term_out(GLP_OFF)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
80
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
81 try:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
82
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
83 # Solve the problem
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
84 glp_scale_prob(lp,GLP_SF_AUTO)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
85
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
86 value=glp_simplex(lp, params)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
87
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
88 Z = glp_get_obj_val(lp);
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
89
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
90 if value == 0:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
91 fluxes = []
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
92 for i in range(len(reactions)): fluxes.append(glp_get_col_prim(lp, i+1))
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
93 return fluxes,Z
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
94 else:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
95 raise Exception("error in LP problem. Problem:",str(value))
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
96 except Exception as e:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
97 # Re-enable terminal output for error reporting
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
98 glp_term_out(GLP_ON)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
99 raise Exception(e)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
100 finally:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
101 # Re-enable terminal output after solving
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
102 glp_term_out(GLP_ON)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
103
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
104 # Create LP structure
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
105 def create_lp_structure(model):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
106
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
107 reactions=[el.id for el in model.reactions]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
108 coefs_obj=[reaction.objective_coefficient for reaction in model.reactions]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
109
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
110 # Lower and upper bounds
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
111 lb=[reaction.lower_bound for reaction in model.reactions]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
112 ub=[reaction.upper_bound for reaction in model.reactions]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
113
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
114 # Create S matrix
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
115 S=cb.util.create_stoichiometric_matrix(model,array_type="dok")
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
116
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
117 return S,lb,ub,coefs_obj,reactions
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
118
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
119 # CBS sampling interface
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
120 def randomObjectiveFunctionSampling(model, nsample, coefficients_df, df_sample):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
121
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
122 S,lb,ub,coefs_obj,reactions = create_lp_structure(model)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
123 len_vector, values, indexes, ia, ja, ar, nrow, ncol = initialize_lp_problem(S)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
124
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
125 for i in range(nsample):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
126
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
127 coefs_obj=coefficients_df.iloc[:,i].values
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
128
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
129 if coefs_obj[-1]==1: #minimize
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
130 coefs_obj= coefs_obj[0:-1] * -1
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
131 else:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
132 coefs_obj=coefs_obj[0:-1]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
133
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
134 fluxes,Z = create_and_solve_lp_problem(lb,ub, nrow, ncol, len_vector,
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
135 ia, ja, ar, coefs_obj,reactions,return_lp=False)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
136 df_sample.loc[i] = fluxes
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
137 pass
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
138
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
139 def randomObjectiveFunctionSampling_cobrapy(model, nsample, coefficients_df, df_sample):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
140
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
141 for i in range(nsample):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
142
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
143 dict_coeff={}
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
144 if(coefficients_df.iloc[-1][i]==1):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
145 type_problem = -1 #minimize
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
146 else:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
147 type_problem = 1
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
148
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
149 for rxn in [reaction.id for reaction in model.reactions]:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
150 dict_coeff[model.reactions.get_by_id(rxn)] = coefficients_df.loc[rxn][i] * type_problem
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
151
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
152 model.objective = dict_coeff
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
153 solution = model.optimize().fluxes
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
154 for rxn, flux in solution.items():
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
155 df_sample.loc[i][rxn] = flux
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
156
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
157 pass
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
158
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
159 # Create random coefficients for CBS
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
160 def randomObjectiveFunction(model, n_samples, df_fva, seed=0):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
161
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
162
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
163 #reactions = model.reactions
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
164 reactions = [reaction.id for reaction in model.reactions]
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
165 cont=seed
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
166 list_ex=reactions.copy()
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
167 list_ex.append("type_of_problem")
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
168 coefficients_df = pd.DataFrame(index=list_ex,columns=[str(i) for i in range(n_samples)])
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
169
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
170 for i in range(0, n_samples):
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
171
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
172 cont=cont+1
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
173 random.seed(cont)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
174
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
175 # Genera un numero casuale tra 0 e 1
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
176 threshold = random.random() #coefficiente tra 0 e 1
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
177
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
178 for reaction in reactions:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
179
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
180 cont=cont+1
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
181 random.seed(cont)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
182
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
183 val=random.random()
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
184
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
185 if val>threshold:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
186
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
187 cont=cont+1
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
188 random.seed(cont)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
189
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
190 c=2*random.random()-1 #coefficiente tra -1 e 1
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
191
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
192 val_max = np.max([abs(df_fva.loc[reaction,"minimum"]), abs(df_fva.loc[reaction,"maximum"])])
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
193
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
194 if val_max!=0: #solo se la fva รจ diversa da zero
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
195 coefficients_df.loc[reaction,str(i)] = c/val_max #divido per la fva
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
196 else:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
197 coefficients_df.loc[reaction,str(i)] = 0
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
198
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
199 else:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
200 coefficients_df.loc[reaction,str(i)] = 0
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
201
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
202 cont=cont+1
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
203 random.seed(cont)
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
204
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
205 if random.random()<0.5:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
206 coefficients_df.loc["type_of_problem",str(i)] = 0 #maximize
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
207 else:
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
208 coefficients_df.loc["type_of_problem",str(i)] = 1 #minimize
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
209
0a3ca20848f3 Uploaded
francesco_lapi
parents: 342
diff changeset
210 return coefficients_df