From e83914a338aa5fb8fb90cddbf306eca8f90365b5 Mon Sep 17 00:00:00 2001 From: jeanpouget-abadie Date: Fri, 5 Dec 2014 16:04:31 -0500 Subject: lagrangian function convex_optimization --- jpa_test/algorithms.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'jpa_test/algorithms.py') diff --git a/jpa_test/algorithms.py b/jpa_test/algorithms.py index 0d5f154..5d28300 100644 --- a/jpa_test/algorithms.py +++ b/jpa_test/algorithms.py @@ -35,11 +35,11 @@ def greedy_prediction(G, cascades): return G_hat -def recovery_l1obj_l2constraint(G, cascades): +def recovery_l1obj_l2constraint(G, cascades, floor_cstt, passed_function, + *args, **kwargs): """ - Returns estimated graph from following convex program: - min |theta_1| + lbda | exp(M theta) -(1- w)| - where theta = log (1 - p); w = 1_{infected}; lbda = lagrange cstt + Returns estimated graph from convex program specified by passed_function + passed_function should have similar structure to ones in convex_optimation """ G_hat = cascade_creation.InfluenceGraph(max_proba=None) G_hat.add_nodes_from(G.nodes()) @@ -47,9 +47,9 @@ def recovery_l1obj_l2constraint(G, cascades): print node try: M, w = cascade_creation.icc_matrixvector_for_node(cascades, node) - p_node, __ = convex_optimization.l1obj_l2constraint(M,w) + p_node, __ = passed_function(M,w, *args, **kwargs) G_hat = cascade_creation.add_edges_from_proba_vector(G=G_hat, - p_node=p_node, node=node, floor_cstt=.01) + p_node=p_node, node=node, floor_cstt=floor_cstt) except timeout.TimeoutError: print "TimeoutError, skipping to next node" return G_hat @@ -75,14 +75,14 @@ def test(): """ unit test """ - G = cascade_creation.InfluenceGraph(max_proba = .5) + G = cascade_creation.InfluenceGraph(max_proba = .8) G.erdos_init(n = 100, p = .3) import time t0 = time.time() - A = cascade_creation.generate_cascades(G, .2, 100) - - G_hat = recovery_l1obj_l2constraint(G, A) - + A = cascade_creation.generate_cascades(G, .2, 10000) + G_hat = recovery_l1obj_l2constraint(G, A, + passed_function=convex_optimization.l1obj_l2penalization, + floor_cstt=.1, lbda=100) correctness_measure(G, G_hat, print_values=True) -- cgit v1.2.3-70-g09d2