Ñò
	/ÅWc           @   s›   d  d k  l Z d  d k Td  d k Td  d k l Z d  d k l Z d  d k l	 Z	 d  d k
 Z d  d k Z d  d k Z d  d k Z d d	 d „  ƒ  YZ d S(
   iÿÿÿÿ(   t
   Parametres(   t   *(   t   Marche_travail(   t   Marche_biens(   t   MatriceNt	   Programmec           B   s×   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sü   g  } xé t  | i ƒ D]Ø } d } d } x> t  | i ƒ D]- }	 | i | |	 d j o | d 7} Pq8 q8 WxD t  | i ƒ D]3 }	 t }
 | i | |	 d j o | d 7} Pqy qy W| d j o" | d j o | i | | ƒ q | d 7} d GHq W| | f S(   Ni    i   s&   Un TA elimine dans supprimer agents TA(   t   ranget   mt   nt   datat   Truet   append(   t   selft
   matrice_TEt
   matrice_AVt   liste_agents_TAt   nb_TA_eliminest   liste_agents_TA_tmpt   it   compteur_TEt   compteur_AVt   jt   visited(    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   supprimer_agents_TA   s*      
	 
	
	c         C   sT  g  } g  }	 g  }
 g  } g  } g  } xt t  t | ƒ ƒ D]` } | | i d j  o5 |
 i | | ƒ | | | i 7} | d 7} d GHq7 | i | | ƒ q7 Wx‘ t  t | ƒ ƒ D]} } | | i d j  o0 | i | | ƒ | | | i 7} | d 7} q® |	 i | | ƒ | i | | ƒ | i | | ƒ q® W| } | } | | |	 | | | | f S(   Ni    i   s!   Un TA elimine dans faire faillite(   R   t   lent   cashR   (   R   t   dette_totaleR   t   liste_agents_EVt   liste_salaires_effectifst   liste_prix_indicatifsR   t   nb_EV_eliminest   new_liste_agents_TAt   new_liste_agents_EVt   TA_en_faillitet   EV_en_faillitet   new_liste_salaires_effectifst   new_liste_prix_indicatifsR   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   faire_faillite-   s4     
	 c         C   s  t  | ƒ } t  | ƒ } t | | ƒ } g  }	 xŒ t t  | ƒ ƒ D]x }
 | |
 | j oa g  } xG t t  | ƒ ƒ D]3 } | | | j o | i | i |
 | ƒ qp qp W|	 i | ƒ q@ q@ WxJ t | i ƒ D]9 } x0 t | i ƒ D] } |	 | | | i | | <qâ WqÌ W| } | S(   N(   R   R   R   R   R	   R   R   (   R   R   R   R   R   R    R   R   t   new_matrice_TEt	   bloc_datat   at
   ligne_datat   bR   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   reformer_matrice_TEN   s(         !c         C   s  t  | ƒ } t  | ƒ } t | | ƒ } g  }	 xŒ t t  | ƒ ƒ D]x }
 | |
 | j oa g  } xG t t  | ƒ ƒ D]3 } | | | j o | i | i |
 | ƒ qp qp W|	 i | ƒ q@ q@ WxP t t  | ƒ ƒ D]< } x3 t t  | ƒ ƒ D] } |	 | | | i | | <qè WqÏ W| } | S(   N(   R   R   R   R   R	   (   R   R   R   R   R   R    R   R   t   new_matrice_AVR'   R(   R)   R*   R   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   reformer_matrice_AVd   s(         !c         C   sp   |  i  | | | | ƒ \ } } | } |  i | | | | | ƒ } |  i | | | | | ƒ } | } | | | | f S(   N(   R   R+   R-   (   R   R   R   R   R   R   R   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   maj_matrices_initialisationz   s    c
      	   C   sµ   |  i  | | | | ƒ \ }
 } |  i | |
 | | | | |	 ƒ \ } } } } } } }	 |  i | | | | | ƒ } |  i | | | | | ƒ } | } | } | | | | | | | | |	 f	 S(   N(   R   R%   R+   R-   (   R   R   R   R   R   R   R   R   R   R   R   R   R    (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   maj_matrices†   s    6c         C   sf   d } x+ t  t | ƒ ƒ D] } | | | i 7} q Wx+ t  t | ƒ ƒ D] } | | | i 7} qG W| S(   Ni    (   R   R   R   (   R   R   R   t   sommeR   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   calculer_cash_total“   s      c         C   s±   t  i t d d ƒ ƒ } g  } | i d ƒ x1 t t | ƒ ƒ D] } | i d t | ƒ ƒ q> Wx1 t t | ƒ ƒ D] } | i d t | ƒ ƒ qr W| i d ƒ | i | ƒ | S(   Ns   output_cash.csvt   wbt	   Iterations   Agent TAs   Agent EVs   Cash total systeme(   t   csvt   writert   openR   R   R   t   strt   writerow(   R   t   liste_agents_TA_initt   liste_agents_EV_initt   myfile_casht   donneesR   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   initialiser_fichier_cashŸ   s      c
         C   sù   g  }
 |
 i  | ƒ d } d } x[ t t | ƒ ƒ D]G } | | | j o# | d 7} |
 i  | | d ƒ q2 |
 i  d ƒ q2 Wx[ t t | ƒ ƒ D]G } | | | j o# | d 7} |
 i  | | d ƒ q |
 i  d ƒ q W|
 i  |	 ƒ | i |
 ƒ d  S(   Ni    i   iigÿ(   R   R   R   R8   (   R   R;   t	   iterationR9   R   R:   R   t   liste_cash_agents_TAt   liste_cash_agents_EVt   cash_total_systemeR<   t
   curseur_TAt
   curseur_EVR   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   collecter_donnees_cash¬   s$     
 
c         C   sp   t  i t d d ƒ ƒ } g  } | i d ƒ x1 t t | ƒ ƒ D] } | i d t | ƒ ƒ q> W| i | ƒ | S(   Ns   output_salaires.csvR2   R3   s   Salaire effectifs agent EV(   R4   R5   R6   R   R   R   R7   R8   (   R   R:   t   myfile_salairesR<   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   initialiser_fichier_salairesÁ   s     c   	      C   sˆ   g  } | i  | ƒ d } x[ t t | ƒ ƒ D]G } | | | j o# | d 7} | i  | | d ƒ q, | i  d ƒ q, W| i | ƒ d  S(   Ni    i   iÿÿÿÿ(   R   R   R   R8   (	   R   RE   R>   R:   R   R   R<   t   curseurR   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   collecter_donnees_salairesË   s     
c         C   sp   t  i t d d ƒ ƒ } g  } | i d ƒ x1 t t | ƒ ƒ D] } | i d t | ƒ ƒ q> W| i | ƒ | S(   Ns   output_prix.csvR2   R3   s   Prix indic agent EV(   R4   R5   R6   R   R   R   R7   R8   (   R   R:   t   myfile_prixR<   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   initialiser_fichier_prixØ   s     c   	      C   sˆ   g  } | i  | ƒ d } x[ t t | ƒ ƒ D]G } | | | j o# | d 7} | i  | | d ƒ q, | i  d ƒ q, W| i | ƒ d  S(   Ni    i   iÿÿÿÿ(   R   R   R   R8   (	   R   RI   R>   R:   R   R   R<   RG   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   collecter_donnees_prixâ   s     
c         C   s   t  i t d d ƒ ƒ } | S(   Ns   output_temps.csvR2   (   R4   R5   R6   (   R   t   myfile_temps(    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   initialiser_fichier_tempsï   s    c         C   s$   g  } | i  | ƒ | i | ƒ d  S(   N(   R   R8   (   R   RL   t   tempsR<   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   collecter_donnees_tempsô   s    c         C   sH   d } x+ t  t | ƒ ƒ D] } | | | i 7} q W| t | ƒ } | S(   Ni    (   R   R   R   (   R   R   R0   R(   t   moyenne_cash_TA(    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyRP   ú   s     c         C   sH   d } x+ t  t | ƒ ƒ D] } | | | i 7} q W| t | ƒ } | S(   Ni    (   R   R   R   (   R   R   R0   R(   t   moyenne_cash_EV(    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyRQ     s     c         C   sè  t  i t d d ƒ ƒ } g  } | i d ƒ x+ t t | ƒ ƒ D] } | i | | ƒ q> W| i | ƒ g  } | i d ƒ x+ t t | ƒ ƒ D] } | i | | ƒ qŒ W| i | ƒ g  } | i d ƒ x+ t t | ƒ ƒ D] } | i |	 | ƒ qÚ W| i | ƒ g  } | i d ƒ x+ t t | ƒ ƒ D] } | i |
 | ƒ q(W| i | ƒ g  } | i d ƒ x+ t t | ƒ ƒ D] } | i | | ƒ qvW| i | ƒ g  } | i d ƒ | i | ƒ | i | ƒ g  } | i d	 ƒ | i | ƒ | i | ƒ xs t | i ƒ D]b } g  } | i d
 t | ƒ ƒ x/ t | i	 ƒ D] } | i | i
 | | ƒ q;W| i | ƒ qWxs t | i ƒ D]b } g  } | i d t | ƒ ƒ x/ t | i	 ƒ D] } | i | i
 | | ƒ q±W| i | ƒ q~Wd  S(   Ns   input_migrants.csvR2   s   Cash agents TAs   Cash agents EVs   Salaires proposes par EVs   Prix proposes par EVs   Liste benefices entreprisess   Cash total systemes   Dette totales   Mat TE Connexions du TA s   Mat AV Connexions du TA (   R4   R5   R6   R   R   R   R8   R   R7   R   R	   (   R   R   R   R   R   R?   R@   R   RA   R   R   t   liste_benefices_entreprisest   myfile_migrantsR<   R   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   creer_input_migrants
  sn             c         C   s4   g  } x' t  t | ƒ ƒ D] } | i d ƒ q W| S(   Ni    (   R   R   R   (   R   R   t#   liste_salaires_effectifs_precedenteR   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt/   initialiser_liste_salaires_effectifs_precedenteE  s
     c         C   s8   g  } x+ t  t | ƒ ƒ D] } | i | | ƒ q W| S(   N(   R   R   R   (   R   R   RU   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt'   maj_liste_salaires_effectifs_precedenteL  s
     c         C   s4   g  } x' t  t | ƒ ƒ D] } | i d ƒ q W| S(   Ni    (   R   R   R   (   R   R   t    liste_prix_indicatifs_precedenteR   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt,   initialiser_liste_prix_indicatifs_precedenteS  s
     c         C   s8   g  } x+ t  t | ƒ ƒ D] } | i | | ƒ q W| S(   N(   R   R   R   (   R   R   RX   R   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt$   maj_liste_prix_indicatifs_precedenteZ  s
     c   %      C   sv  t  i ƒ  } d GHt d ƒ } | i ƒ  t | ƒ } t | ƒ } | } | } d } d } d }	 t | ƒ }
 t | ƒ } |
 i | | ƒ } t	 i
 t i i | i d ƒ | i d d d d ƒ| i | | ƒ } t	 i
 t i i | i d	 ƒ | i d d d d ƒ|  i | | | | | ƒ \ } } } } t	 i
 t i i | i d
 ƒ | i d d d d ƒt	 i
 t i i | i d ƒ | i d d d d ƒt | ƒ } t | ƒ } |  i | | ƒ } |  i | | ƒ } |  i | ƒ } |  i | ƒ } |  i ƒ  } |  i | d | | | | | | | ƒ	 d GH|  i | ƒ } |  i | ƒ } d t | ƒ GHd t | ƒ GHd t | ƒ GHd GH|  i | ƒ } |  i | ƒ } |
 i | | | | | ƒ \ } } } } } } } | i  d | | | | ƒ \ } } }  }! }" |  i! |	 | | | | | | | | ƒ	 \	 } } } } }	 } } } } t	 i
 t i i | i d t d ƒ ƒ | i d d d d ƒt	 i
 t i i | i d t d ƒ ƒ | i d d d d ƒt | ƒ } t | ƒ } |  i | | ƒ } |  i | d | | | | | | | ƒ	 |  i" | d | | | ƒ |  i# | d | | | ƒ |  i$ | ƒ } |  i% | ƒ } d GHxVt& d | i' ƒ D]B}# d t |# ƒ GH|
 i( | | | | | ƒ \ } } } } } } } |  i! |	 | | | | | | | | ƒ	 \	 } } } } }	 } } } } | i) |# | | | |" | | | | ƒ	 \ } } }  }! }" |  i! |	 | | | | | | | | ƒ	 \	 } } } } }	 } } } } |# d d j p |# | i' d j oz t	 i
 t i i | i d t |# ƒ ƒ | i d d d d ƒt	 i
 t i i | i d t |# ƒ ƒ | i d d d d ƒn t | ƒ } t | ƒ } |  i | | ƒ } |  i | |# | | | | | | | ƒ	 |  i" | |# | | | ƒ |  i# | |# | | | ƒ |  i$ | ƒ } |  i% | ƒ } d GHqKW|  i* | | | | | | |	 | | | |" ƒ d Gt+ | ƒ GHd Gt+ | ƒ GH|  i | ƒ } |  i | ƒ } d t | ƒ GHd t | ƒ GHd t | ƒ GHd t | ƒ GHd t | ƒ GHd t |	 ƒ GHt  i ƒ  | }$ |  i, | |$ ƒ d  S(   Nt   INITIALISATIONs	   input.txti    t   matrice_TE_initialet   fmts   %it	   delimiters   	t   matrice_AV_initialet   matrice_TE0t   matrice_AV0t   Initialisations   
s   moyenne cash TA init : s   moyenne cash EV init : s   cash total systeme : s   ITERATION 0R   R   i   s
   ITERATION i
   s   len liste_agents_TAs   len liste agents_EV : s   moyenne cash TA final : s   moyenne cash EV final : s   cash_total_systeme : s   nb_TA_elimines : s   nb_EV_elimines : s   La dette totale s'eleve a : (-   t   timet   clockR    t   parset   obtenir_liste_agents_TAt   obtenir_liste_agents_EVR   R   t   creer_matrice_TEt   npt   savetxtt   ost   patht   joint   dossierR	   t   creer_matrice_AVR.   t   obtenir_liste_cash_agents_TAt   obtenir_liste_cash_agents_EVR1   R=   RF   RJ   RM   RD   RP   RQ   R7   RV   RY   t   initialiser_marche_travailt   initialiser_marche_biensR/   RH   RK   RW   RZ   R   t   itt
   travaillert   faire_tourner_marches_biensRT   R   RO   (%   R   t   t0t
   parametresR   R   R9   R:   R   R   R   t   marche_travailt   marche_biensR   R   R?   R@   RA   R;   RE   RI   RL   RP   RQ   RU   RX   t   liste_salaires_indicatifst   repartition_heures_travailleurst   liste_total_heurest   liste_production_entreprisesR   t   liste_payes_totales_employesR   t   repartition_cash_acheteurst    somme_repartition_cash_acheteursRR   R>   RN   (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   rune  s¦    
11'11%0*B;;% 0B6B%;?%	+(   t   __name__t
   __module__R   R%   R+   R-   R.   R/   R1   R=   RD   RF   RH   RJ   RK   RM   RO   RP   RQ   RT   RV   RW   RY   RZ   R‚   (    (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyR      s.   		!								
		
							;				(    (   Rx   R    t   agenttat   agentevt   marchetravailR   t   marchebiensR   t   matriceR   t   numpyRi   Rk   R4   Rc   R   (    (    (    s0   /home/kaufmanl/SIMU/Systeme_initial/programme.pyt   <module>   s   

