


# Documentation
* Add explaination about the weighting formula
* frag.Graph.Reduce: preciser qu 'est pour un graph avec 2 layers

# new features

* quand X,Y,Z n'est pas numérique erreur sans message
* frag.graph.reduce() : 
    * ajouter param  'conserve.objects.balance'
    * ajouter param  'conserve.aggregation'
* frag.layers.cohesion() : bug lorsque 1 layer ne contient qu'1 fragment
* frag.get.parameters() :  
	* distinguer (en assurant retrocompatibilité) : 
		* frag.balance.estimated = actuelle mesure de 'balance'
		* frag.balance.observed: = ratio du nbre de fragments in 1st layer.    table(igraph::V(g)$layer)[1] / igraph::gorder(g)
		* objects.balance.estimated = actuelle mesure de 'components.balance'
		* objects.balance.observed: = ratio du nbre d'objects
		* disturbance.observed = 
		* disturbance.estimated = 
	* étudier l'effet du remplacement de sd() par mad() dans le calcul de l'aggrégation
* frag.simul.compare() : ajouter les variables supplémentaires générées par frag.get.parameters (n.object,  disturbance, etc.)
* frag.graph.plot() : permettre de modifier les couleurs?
* add a function (or parameter in `frag.layers.admixture()`) to handle similarity relationships, return result as a distance object

* une mesure globale de 'cohesion' pour l'ensemble des paires (par exemple : moyenne + SD  ou median + mad)
* ajouter une limite maximum de fragments par objet
* pour init.layers=2, répartir le nombre d'arêtes en utilisant la  proportion de "frag.balance"  


# bugs

* si une colonne du tableau frag contient des nombres, meme formatés en texte, ceux ci sont transformés en nombre par  read.csv dans archeofrag.gui (donc les éventuels leading zero sont supprimés). Pas vraiment de solution
* si le tableau CR a > 2 colonnes, erreur sans alerte.  
* ajouter un warning dans make_cr_graph, make_crsr_graph, make_sr_graph quand le graphe généré contient des loops et/ou multiple edges -- 20241208 : je ne l'observe plus
* Traiter le cas des valeurs d'admixture négatives. (par ex: data du tai) -- 20241208 : je ne l'observe plus
* Le paramètres initial.layer, selon qu'il soit 1 ou 2, donne des résultats tres differents concernant la distribution des valeurs de cohésion et d'admixture. Elles sont bcp plus variées avec initial.layer=1 (est-ce un pb?)

# sur le modèle

## balance

* la définition de balance est peu clair "Proportion of fragments to generate in the first layer before applying disturbances."
  car c'est un paramètre ni à propos de l'état initial ni à propos de l'état final
  (mais d'un état intermédiaire)
  
  Il est plus intéressant de contrôler la proportion finale 
  
  Autre interpétation possible :  Si il n'y avait pas eu de déplacements par perturbation, alors le différentiel de nbre de fragment aurait dû être celui ci

## Disturbance

* un fragment ne peut pas être déplacé 2 fois (car sample(replace = FALSE) )
* Note: l'admixture est maximale avec disturbance = 0.5 (et non avec disturbance = 1)
* proposer deux modalités de disturbance:
    1. intercalé avec la fragmentation (adéquat pour simuler les fragmentation de céramique, os)
    2. à la fin de la fragmentation (adéquat pour simuler les fragmentations lithiques)
