Files
graph_recognition_w_attn/__pycache__/generate_data_consensus.cpython-312.pyc

56 lines
8.5 KiB
Plaintext
Raw Normal View History

2025-07-31 01:12:53 -04:00
<EFBFBD>
<00><><EFBFBD>h<EFBFBD><00> <00>b<00>ddlZddlZddlZddlZddlmZddlZddlZ ddl
m cm Z ddlmZddlZdej j"dededee j*eej,ffd<07>Zde j*defd <09>Zd
ej4d eded edej4f
d <0A>Zd<0E>Zedk(re<1D>yy)<10>N)<01>tqdm<64>rng<6E>
num_agents<EFBFBD>
graph_type<EFBFBD>returnc<00><00>d}|dk(rd}tj|||<00><04>}n<>|dk(rd}d}tj||||<00><04>}nj|dk(r/d}||k\rtd |d z
<00>}tj|||<00><04>}n6|d
k(r1d }d}||k\rtd |d z
<00>}tj
||||<00><04>}|j t|<01>D<00>cgc]}||f<02><02>c}<07>tj|tj<00> <0C>}|||fScc}w) a
Generates a random, undirected, unweighted, connected graph.
It randomly selects a NetworkX algorithm and retries until the graph is connected.
Returns:
A tuple containing the networkx Graph object, the algorithm name, and the adjacency matrix.
N<> erdos_renyig<00>?<3F><01>seed<65>watts_strogatz<74>g<><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>barabasi_albert<72><00>powerlaw_cluster<65>)<01>dtype) <0B>nx<6E>erdos_renyi_graph<70>watts_strogatz_graph<70>max<61>barabasi_albert_graph<70>powerlaw_cluster_graph<70>add_edges_from<6F>range<67>to_numpy_array<61>np<6E>float32) rrr<00>G<>p<>k<>m<>i<>
adj_matrixs <20>E/home/letpon/code/graph_recognition_w_attn/generate_data_consensus.py<70>generate_connected_graphr%s<00><00> <0A>A<EFBFBD><12>]<5D>"<22> <10><01> <0E> <20> <20><1A>Q<EFBFBD>S<EFBFBD> 9<><01> <13>'<27> '<27> <0A><01> <0F><01> <0E> #<23> #<23>J<EFBFBD><01>1<EFBFBD>3<EFBFBD> ?<3F><01> <13>(<28> (<28> <0A><01> <0C>
<EFBFBD>?<3F><03>A<EFBFBD>z<EFBFBD>A<EFBFBD>~<7E> 6<>A<EFBFBD> <0E> $<24> $<24>Z<EFBFBD><11><13> =<3D><01>
<14>*<2A>
*<2A> <0A><01> <0F><01> <0C>
<EFBFBD>?<3F><03>A<EFBFBD>z<EFBFBD>A<EFBFBD>~<7E> 6<>A<EFBFBD> <0E> %<25> %<25>j<EFBFBD>!<21>Q<EFBFBD>S<EFBFBD> A<><01><06><14><14>e<EFBFBD>J<EFBFBD>&7<>8<><11>q<EFBFBD>!<21>f<EFBFBD>8<>9<><13>"<22>"<22>1<EFBFBD>B<EFBFBD>J<EFBFBD>J<EFBFBD>7<>J<EFBFBD> <0C>j<EFBFBD>*<2A> $<24>$<24><>9s<00> Drc<00><><00>i}|j<00>}|j<00>}||d<||d<|dkDrd|z|z nd|d<tj|<00>|d<tj|<00>|d<tj
|<00>|d<tj |<00>|d <tj|<00>|d
<|drN|d krItj|<00>|d <tj|<00>|d <tj|<00>|d<nd|d <d|d <d|d<d|cxkrdkrnnnk ttj|<00><00>}||d<|d|d<|dkDr3 tj|d<14><15>}tj ||<05>|d<|Sd|d<|Sd|d<d|d<d|d<|S#t$r d|d<d|d<Y<00>ewxYw#t$r d|d<Y|SwxYw)a%
Calculates and returns a dictionary of key graph metrics.
This function computes basic properties, connectivity, clustering,
community structure, and spectral properties of the graph.
Computationally expensive metrics are skipped for larger graphs to ensure performance.
<20>number_of_nodes<65>number_of_edgesrr <00>average_degree<65> edge_density<74> is_connected<65>number_connected_components<74>average_clustering_coefficient<6E>clustering_coefficient<6E><74><00>average_shortest_path_length<74>diameter<65> eccentricityNri<><00>laplacian_eigenvalues<65>algebraic_connectivity<74>{r
<00>
modularity)r'r(r<00>densityr+r,<00>average_clustering<6E>
clusteringr0r1r2<00>sorted<65>laplacian_spectrum<75> Exception<6F>nx_comm<6D>louvain_communitiesr6)r<00>metrics<63> num_nodes<65> num_edgesr3<00> communitiess r$<00>calculate_graph_metricsrC6s5<00><00><11>G<EFBFBD><11>!<21>!<21>#<23>I<EFBFBD><11>!<21>!<21>#<23>I<EFBFBD>"+<2B>G<EFBFBD> <1D><1E>!*<2A>G<EFBFBD> <1D><1E>?H<>1<EFBFBD>}<7D><11>Y<EFBFBD><1D><19>!:<3A>RS<52>G<EFBFBD> <1C><1D> <20>j<EFBFBD>j<EFBFBD><11>m<EFBFBD>G<EFBFBD>N<EFBFBD><1B>!<21>o<EFBFBD>o<EFBFBD>a<EFBFBD>0<>G<EFBFBD>N<EFBFBD><1B>-/<2F>-K<>-K<>A<EFBFBD>-N<>G<EFBFBD> )<29>*<2A>13<31>0E<30>0E<30>a<EFBFBD>0H<30>G<EFBFBD> ,<2C>-<2D>(*<2A> <0A> <0A>a<EFBFBD>(8<>G<EFBFBD> $<24>%<25><0F>~<7E><1E>9<EFBFBD>s<EFBFBD>?<3F>24<32>2Q<32>2Q<32>RS<52>2T<32><07>.<2E>/<2F> <20>k<EFBFBD>k<EFBFBD>!<21>n<EFBFBD><07>
<EFBFBD><1B>"$<24>/<2F>/<2F>!<21>"4<><07><0E><1F>37<33><07>.<2E>/<2F>"<22><07>
<EFBFBD><1B>"&<26><07><0E><1F> <09>9<EFBFBD><1A>s<EFBFBD><1A> 5<>$*<2A>2<EFBFBD>+@<40>+@<40><11>+C<>$D<> !<21>/D<>G<EFBFBD>+<2B> ,<2C>0E<30>a<EFBFBD>0H<30>G<EFBFBD>,<2C> -<2D> <15>q<EFBFBD>=<3D> -<2D>%<25>9<>9<>!<21>#<23>F<> <0B>(/<2F>(:<3A>(:<3A>1<EFBFBD>k<EFBFBD>(J<><07> <0C>%<25> <13>N<EFBFBD> %)<29>G<EFBFBD>L<EFBFBD> !<21> <13>N<EFBFBD> ,0<><07>'<27>(<28>,0<><07>(<28>)<29> $<24><07> <0C><1D> <12>N<EFBFBD><4E>%<19> 5<>/3<>G<EFBFBD>+<2B> ,<2C>04<30>G<EFBFBD>,<2C> -<2D> 5<><35><1D> -<2D>(,<2C><07> <0C>%<25> <13>N<EFBFBD> -<2D>s$<00>(+F#<00>0F<<00>#F9<03>8F9<03><G<03> G<03>key<65>num_sims<6D> max_rangec<00>N<00>tjj|||f| |<03><01>S)z@Generate a batch of unique random initial states for the agents.)<03>shape<70>minval<61>maxval)<03>jax<61>random<6F>uniform)rDrErrFs r$<00> generate_multiple_initial_statesrNys1<00><00> <0E>:<3A>:<3A> <1D> <1D> <0B><17><1A>$<24><19>z<EFBFBD><18> <1E> <06><06>c
<00><><00>gd<01>}tddd<02>}d}|t|<00>z}d}d}ttj<00><00>}tj
j |<06>}tj
j|dz<00><07>}td<08>td |<05>d
<EFBFBD><03>tj|d <0B> <0C>t|d <0A><0E>D<00>]} tjj|d| <09><00><02>}
tj|
d <0B> <0C>tt|<02>d| <09><00>d<11><12>D<00>]<5D>} | |z} tj j#<00>} | | _|| _t)|| j$|| <00>\}}}t+j,|<10>}t/|<0E>}||d<tj
j1|<07>\}}t3|| j&| j$| j4<00>}tj j7||| <0A>}| j$| j&| j8| j:| j4| j<| j>d<14>||jA<00>|jA<00>|jA<00>d<15>}tjj|
d| d<17>d<18><03>}tC|d<19>5}tEjF||d<1A><1B>ddd<1C><00><01><><00><02>td|<05>d<1E><03>y#1swY<00><01><>xYw)zBMain script to generate and save the consensus simulation dataset.)r rrr <00><00>3<00>dzdatasets/consensus_datasetrr
u 🚀 Starting data generation...zSaving dataset to directory: 'z/'T)<01>exist_okzOverall Progress)<01>desc<73>agents_z Graphs for N=F)rU<00>leaver)rrE<00>num_time_steps<70> step_sizerF<00>directed<65>weighted)<05>simulation_config<69> graph_metrics<63>adjacency_matrix<69>initial_states<65> trajectories<65>graph_<68>02dz.json<6F>wr )<01>indentNu*
✅ Data generation complete! Check the 'z ' folder.)$r<00>len<65>int<6E>timerKrL<00>PRNGKeyr<00> default_rng<6E>print<6E>os<6F>makedirsr<00>path<74>join<69>sims<6D> consensus<75>ConsensusConfigrrEr%<00>jnp<6E>arrayrC<00>splitrNrF<00>run_consensus_simrXrYrZr[<00>tolist<73>open<65>json<6F>dump)<19>GRAPH_GEN_ALGOS<4F> AGENT_COUNTS<54>GRAPHS_PER_AGENT_COUNT<4E>GRAPHS_PER_GRAPH_ALGO<47>SIMS_PER_GRAPH<50>
OUTPUT_DIRr <00> main_jax_key<65> numpy_rng<6E>n_agents<74> agent_folder<65> graph_idx<64>graph_algo_idx<64>configrr<00> adj_matrix_np<6E>adj_matrix_jaxr]<00>
states_keyr_r`<00>log_data<74> file_path<74>fs r$<00>mainr<6E><00>s<><00><00>_<01>O<EFBFBD><18><11>B<EFBFBD><01>?<3F>L<EFBFBD> <20><1A>2<>c<EFBFBD>/<2F>6J<36>J<><19><18>N<EFBFBD>-<2D>J<EFBFBD> <0F>t<EFBFBD>y<EFBFBD>y<EFBFBD>{<7B> <1B>D<EFBFBD><16>:<3A>:<3A>%<25>%<25>d<EFBFBD>+<2B>L<EFBFBD><12> <09> <09>%<25>%<25>4<EFBFBD>!<21>8<EFBFBD>%<25>4<>I<EFBFBD> <09> ,<2C>.<2E> <09> *<2A>:<3A>,<2C>b<EFBFBD>
9<EFBFBD>:<3A><06>K<EFBFBD>K<EFBFBD>
<EFBFBD>T<EFBFBD>*<2A><19><1C>,><3E>?<3F>31<><08><19>w<EFBFBD>w<EFBFBD>|<7C>|<7C>J<EFBFBD>'<27>(<28><1A>0D<30>E<> <0C>
<EFBFBD> <0B> <0B>L<EFBFBD>4<EFBFBD>0<><1D>e<EFBFBD>$:<3A>;<3B>M<EFBFBD>RZ<52>Q[<5B>B\<5C>di<64>j<>/ 1<>I<EFBFBD>&<26>*?<3F>?<3F>N<EFBFBD><1A>^<5E>^<5E>3<>3<>5<>F<EFBFBD>&<26>F<EFBFBD> <1D>*<2A>F<EFBFBD>O<EFBFBD>,D<01>I<EFBFBD>v<EFBFBD>O`<60>O`<60>bq<62>sA<02>cB<02>,C<02> (<28>A<EFBFBD>z<EFBFBD>=<3D> <20>Y<EFBFBD>Y<EFBFBD>}<7D>5<>N<EFBFBD>3<>A<EFBFBD>6<>M<EFBFBD>*4<>M<EFBFBD>,<2C> '<27>(+<2B>z<EFBFBD>z<EFBFBD>'7<>'7<> <0C>'E<> $<24>L<EFBFBD>*<2A>=<3D><1A>F<EFBFBD>O<EFBFBD>O<EFBFBD>V<EFBFBD>-><3E>-><3E><06>@P<>@P<><0E>N<EFBFBD>
 <20>><3E>><3E>;<3B>;<3B>N<EFBFBD>N<EFBFBD>\b<>c<>L<EFBFBD>#)<29>"3<>"3<> &<26><0F><0F>&,<2C>&;<3B>&;<3B>!'<27>!1<>!1<>!'<27>!1<>!1<> &<26><0F><0F> &<26><0F><0F> &<12>"/<2F>$1<>$8<>$8<>$:<3A>"0<>"7<>"7<>"9<> ,<2C> 3<> 3<> 5<><0E>H<EFBFBD>$<1B><07><07> <0C> <0C>\<5C>V<EFBFBD>I<EFBFBD>c<EFBFBD>?<3F>%<25>3P<33>Q<>I<EFBFBD><15>i<EFBFBD><13>%<25> 1<><11><14> <09> <09>(<28>A<EFBFBD>a<EFBFBD>0<> 1<> 1<>]/ 1<> 31<>j
<EFBFBD> 7<>
<EFBFBD>|<7C>9<EFBFBD>
M<EFBFBD>N<> 1<> 1<>s <00>3K*<07>*K4 <0B>__main__)rkrxrgrK<00> jax.numpy<70>numpyrrr<00>networkxr<00>networkx.algorithms.community<74>
algorithms<EFBFBD> communityr=rrorL<00> Generatorrf<00>str<74>tuple<6C>Graph<70>ndarrayr%<00>dictrC<00>Array<61>floatrNr<><00>__name__<5F>rOr$<00><module>r<>s<><00><01> <09> <0B> <0B>
<EFBFBD><17><12><15>/<2F>/<2F><15> <0B>&%<25>"<22>)<29>)<29>"5<>"5<>&%<25>3<EFBFBD>&%<25>TW<54>&%<25>\a<>bd<62>bj<62>bj<62>lo<6C>qs<71>q{<7B>q{<7B>b{<7B>\|<7C>&%<25>PA<13>r<EFBFBD>x<EFBFBD>x<EFBFBD>A<13>D<EFBFBD>A<13>F<06>#<23>)<29>)<29><06>s<EFBFBD><06>PS<50><06>`e<><06>jm<6A>js<6A>js<6A><06>IO<01>V <0C>z<EFBFBD><19><08>F<EFBFBD>rO