diff --git a/presentation/presentation.pdf b/presentation/presentation.pdf index 021de6c..6f19dbe 100644 Binary files a/presentation/presentation.pdf and b/presentation/presentation.pdf differ diff --git a/presentation/presentation.tex b/presentation/presentation.tex index 4e0d52b..091735f 100644 --- a/presentation/presentation.tex +++ b/presentation/presentation.tex @@ -97,54 +97,69 @@ \section{Contexte du modèle} \label{sec:contexte-du-modele} -\begin{frame} - \frametitle{Contexte écologique} - \begin{itemize} - \item Faire de la détection de structure sur un réseau (SBM, LBM) mais intérêt à le faire sur plusieurs - \item De nombreux réseaux disponibles \parencite{WebLifeEcological} et décrivant des interactions similaires - \item Re-grouper les réseaux selon leur similarité (\emph{clustering} de réseaux) - \item Transférer de l'information grâce à la collection (par exemple reconstitution de données manquantes) - \item Déterminer des structures d'interactions fines de manière agnostique % Pas d'idee preco - %\item Vérifier si le regroupement est lié à des co-variables - \end{itemize} -\end{frame} -\begin{frame} - \frametitle{Réseaux bipartites\footnote{Ou \emph{bipartis}. Voir~\cite{larousseDefinitionsBipartiBipartite}.}} - \begin{columns}[c] - \begin{column}{0.65\textwidth} - \begin{figure}[ht] - \centering - \begin{tikzpicture}[scale=.65] - \input{../tikz/plantpollinatornetwork.tex} - \end{tikzpicture} - \caption{Exemple d'un réseau plantes-pollinisateurs} - \label{fig:plantes-pollin} - \end{figure} - \end{column} - \hfill - \begin{column}{0.35\linewidth} - \centering - \begin{align*} - X = \begin{pmatrix} - 1 & 1 & 1 & 1 & 0 & 0 \\ - 0 & 0 & 0 & 1 & 0 & 1 \\ - 1 & 0 & 0 & 0 & 1 & 0 \\ - 0 & 0 & 0 & 0 & 1 & 0 - \end{pmatrix} - \end{align*} - \footnotesize - Matrice d'adjacence associée +\begin{frame} + \begin{columns} + \begin{column}{0.5\textwidth} + \begin{block}{Contexte écologique} + \begin{itemize} + \small + \item Nombreux réseaux disponibles pour + interactions similaires. + \item Suivi biodiversité, robustesse et risque + d'effondrement \dots + \end{itemize} + \begin{columns} + \begin{column}{0.5\textwidth} + \begin{figure}[ht] + \centering + \begin{tikzpicture}[scale=.45,rotate=270] + \input{../tikz/plantpollinatornetwork.tex} + \end{tikzpicture} + \caption{Exemple d'un réseau plantes-pollinisateurs} + \label{fig:plantes-pollin} + \end{figure} + \end{column} + \begin{column}{0.4\textwidth} + \centering + \begin{align*} + \begin{pmatrix} + 1 & 1 & 1 \\ + 0 & 0 & 0 \\ + 1 & 0 & 0 \\ + 0 & 0 & 0 + \end{pmatrix} + \end{align*} + \footnotesize + Matrice d'adjacence associée + \end{column} + \end{columns} + \end{block} + \end{column} + \onslide<2>{ + \begin{column}{0.45\textwidth} + \begin{block}{Contexte mathématique} + Pour un unique réseau~: variables latentes, + \emph{embedding}, \dots + + Motivations pour proposer des méthodes adaptées aux collections + de réseaux~: + \begin{itemize} + \item Espèces différentes, rôles analogues. + \item Transfert d'informations grands vers petits réseaux. + \item Regrouper les réseaux selon leur similarité (\emph{clustering} + de réseaux). + \end{itemize} + \end{block} + \end{column} + } \end{columns} - \smallskip - Permet de décrire des interactions impliquant deux agents dont les rôles - sont de natures différentes.\\ - Par exemple : hôtes-parasites, plantes-pollinisateurs, graines-disperseurs \dots \end{frame} \begin{frame} - \frametitle{Latent Block Model (LBM\footnotemark[2])} + \addtocounter{footnote}{1} + \frametitle{Latent Block Model (LBM\footnotemark[\thefootnote])} %DONE remplacer i \in bullet par Zi = \bullet Proposé par~\cite{govaertEMAlgorithmBlock2005}. \begin{columns} @@ -154,7 +169,7 @@ \begin{tikzpicture}[scale=0.35] \input{../tikz/lbm.tex} \end{tikzpicture} - \caption{Exemple de LBM\footnotemark} + \caption{Exemple de LBM\footnotemark[\thefootnote]} \label{fig:LBMvisu} \end{figure} \end{column} @@ -172,11 +187,11 @@ \end{column} \end{columns} - \footnotetext{Que j'appellerai par la suite BiSBM} + \footnotetext[\thefootnote]{Que j'appellerai par la suite BiSBM} \end{frame} -\section{Extension de \emph{colSBM} aux réseaux bipartites} +\section{Modèle de collection de réseaux bipartites} \label{sec:extension-de-colsbm-aux-reseaux-bipartites} \begin{frame} \frametitle{Collections bipartites} @@ -234,36 +249,50 @@ \end{block} \end{frame} +\section{Sélection de modèle} \begin{frame} - \frametitle{Sélection de modèle : choix de $(Q_1,Q_2)$ - Approche gloutonne} - % DONE But maximiser un critere le BICL, deplacer voir St Clair dans la note - % VEM a Q1 Q2 fixer - % Choix de Q1 Q2 par maximisation du BICL - % Itemize dans la box : init, explo voisin, arrets - \underline{Le VEM se fait à $Q_1, Q_2$ fixés}, il faut donc déterminer les \enquote*{meilleures} coordonnées. - Nous maximisons un BIC-L\footnote{\emph{Bayesian Information Criterion - Like}, en adaptant les formules de~\cite{chabert-liddellLearningCommonStructures2023}}. + \frametitle{Choix de $(Q_1,Q_2)$ - Approche gloutonne} + \underline{L'estimation de paramètres se fait à $Q_1, Q_2$ fixés}, il faut donc déterminer les \enquote*{meilleures} coordonnées. + Nous maximisons un critère\footnote{ + \emph{Bayesian Information Criterion - Like}, + vraisemblance pénalisée en adaptant les formules + de~\cite{chabert-liddellLearningCommonStructures2024a}}. - Détermination d'un premier mode par approche \emph{gloutonne} \smallskip \begin{columns} \begin{column}{0.5\linewidth} \begin{tikzpicture} \input{../tikz/greedy-exploration.tex} \end{tikzpicture} \end{column} - \begin{column}{0.5\linewidth} - \begin{block}{Exploration gloutonne} - \begin{itemize} - \item Initialisation sur $(1,2)$ et $(2,1)$ - \item Exploration des 4 voisins et déplacement sur le meilleur des 4 - \item Arrêt après 2 étapes successives sans augmentation du BIC-L - \end{itemize} - \end{block} + \begin{column}{0.35\linewidth} + \begin{itemize} + \item Modèle initialisé~:\\ + \begin{tikzpicture} + \draw[fill=gray, draw=gray] circle [radius=0.225cm]; + \end{tikzpicture} + \onslide<2->{ + \item Modèle après \emph{split}~: + \begin{tikzpicture} + \draw[fill=blueind, draw=blueind] circle [radius=0.225cm]; + \end{tikzpicture} + \item Modèle maximisant le critère~:\\ + \begin{tikzpicture} + \draw[fill=white, draw=green, very thick] circle [radius=0.225cm]; + \end{tikzpicture} + } + \onslide<3->{ + \item Modèle après \emph{merge}~: + \begin{tikzpicture} + \draw[fill=red, draw=red] circle [radius=0.225cm]; + \end{tikzpicture} + } + \end{itemize} \end{column} \end{columns} \end{frame} \begin{frame} - \frametitle{Sélection de modèle : choix de $(Q_1,Q_2)$ - Fenêtre glissante} + \frametitle{Choix de $(Q_1,Q_2)$ - Fenêtre glissante} \begin{columns} \begin{column}{0.6\textwidth} \begin{figure} @@ -287,43 +316,18 @@ \end{frame} -\begin{frame} - \frametitle{Clustering de réseaux} - \begin{tikzpicture} - \tikzstyle{instruct}=[font=\small, text justified, rectangle,draw,fill=yellow!50] - \tikzstyle{first_col}=[rectangle, text justified, draw,fill=gray!50] - \tikzstyle{second_col}=[scale=0.55, circle, draw,fill=red!50] - \tikzstyle{test}=[font=\small, text justified, diamond, aspect=2.5,thick, - draw=blue,fill=yellow!50,text=blue] - \tikzstyle{es}=[font=\small, text justified, rectangle,draw,rounded corners=4pt,fill=cyanind!25] - - \node[es] (liste) at (0,4) {Donner une collection à partitionner}; - \node[instruct, text width=5cm, below = 0.45cm of liste] (1-collection) {Ajuster \emph{colBiSBM}}; - \node[first_col, right = 0.5cm of 1-collection] (1-col-obj) {}; - \node[instruct, text width=5cm, below = 0.45cm of 1-collection] (dissimi) {Calculer une matrice de dissimilarité de la collection}; - \node[instruct, text width=5cm, below = 0.45cm of dissimi] (2-sous-collection) {Séparer la \emph{collection en 2 sous-collections} et ajuster les \emph{colBiSBM}}; - \node[second_col, right = 0.25cm of 2-sous-collection] (1-sec-col-obj) {1}; - \node[second_col, right = 0.25cm of 1-sec-col-obj] (1-sec-col-obj) {2}; - \node[test,below = 0.45cm of 2-sous-collection, scale=0.5] (BICL-test) {$\sum_{i=1}^{2} (\text{BIC-L}(\tikz[baseline=-0.25cm]{\node[second_col] {i};} )) > \text{BIC-L}(\tikz[baseline=-0.25cm]{\node[first_col] {};})$?}; - \node[es, right = 0.55cm of BICL-test] (sortie) {Renvoyer \tikz{\node[rectangle, draw, fill=gray!50, rounded corners=0pt] {};}}; - \node[es, left = 0.45cm of dissimi, text width = 2cm] (recursion) {Recommencer sur \tikz{\node[second_col] {1};} et \tikz{\node[second_col] {2};} }; - - \tikzstyle{suite}=[->,>=stealth,thick,rounded corners=4pt] - \draw[suite] (liste) -- (1-collection); - \draw[suite] (1-collection) -- (dissimi); - \draw[suite] (dissimi) -- (2-sous-collection); - \draw[suite] (2-sous-collection) -- (BICL-test); - \draw[suite] (BICL-test) -| node[near start, above, fill=none] {Oui} (recursion); - \draw[suite] (recursion.north) |- (1-collection.west); - \draw[suite] (BICL-test) -- node[near start, above, fill=none] {Non} (sortie); - - \end{tikzpicture} - \blfootnote{Même approche que~\cite{chabert-liddellLearningCommonStructures2023}} -\end{frame} \section{Application} \label{sec:application} +\begin{frame} + \frametitle{Clustering de réseaux} + \begin{tikzpicture} + \input{../tikz/clustering.tex} + \end{tikzpicture} +\end{frame} + + \section{Conclusion} \label{sec:conclusion} \begin{frame} @@ -332,20 +336,24 @@ % Rappeler les modeles avec clustering % Evoquer l'analyse de reseaux corrigés pour l'échantillonnage % Lien vers le package + \begin{block}{Capacités} + \begin{itemize} + \item 4 modèles dont 3 qui ont une flexibilité sur au moins une des + dimensions (adaptabilité aux données). + \item Partitionner un ensemble de réseaux selon leurs structures. + \end{itemize} + \end{block} - \begin{itemize} - \item 4 modèles dont 3 qui ont une flexibilité sur au moins une des dimensions (adaptabilité aux données) - \item Partitionner un ensemble de réseaux selon leurs structures - \item Comparer les \emph{clusterings} de réseaux obtenus entre données brutes et données corrigées (par exemple par la méthode \emph{CoOPLBM}\footnote{~\cite{anakokDisentanglingStructureEcological2022}}) - \end{itemize} + \begin{block}{Perspectives} + \begin{itemize} + \item Investiguer stabilité à la \emph{graine}. + \item Preuve d'identifiabilité du modèle $\pi\rho$. + \end{itemize} + \end{block} \bigskip \centering - Le package est disponible sur GitHub : \faGithub \url{https://github.com/Chabert-Liddell/colSBM} - - \bigskip - \huge - Merci pour votre attention ! + Merci pour votre attention~! \end{frame} \renewcommand{\pgfuseimage}[1]{\scalebox{.75}{\includegraphics{#1}}} diff --git a/references.bib b/references.bib index 9bf5420..5c82514 100644 --- a/references.bib +++ b/references.bib @@ -10,7 +10,7 @@ author = {Anakok, Emre and Barbillon, Pierre and Fontaine, Colin and Thebault, Elisa}, date = {2022-11-29}, eprint = {2211.16364}, - eprinttype = {arxiv}, + eprinttype = {arXiv}, eprintclass = {stat}, url = {http://arxiv.org/abs/2211.16364}, urldate = {2023-06-14}, @@ -79,7 +79,7 @@ author = {Chabert-Liddell, Saint-Clair and Barbillon, Pierre and Donnet, Sophie}, date = {2023-03-27}, eprint = {2206.00560}, - eprinttype = {arxiv}, + eprinttype = {arXiv}, eprintclass = {stat}, doi = {10.48550/arXiv.2206.00560}, url = {http://arxiv.org/abs/2206.00560}, @@ -90,12 +90,29 @@ file = {/home/polarolouis/Zotero/storage/M74TXGCF/Chabert-Liddell et al. - 2023 - Learning common structures in a collection of netw.pdf;/home/polarolouis/Zotero/storage/A35M8KNP/2206.html} } +@article{chabert-liddellLearningCommonStructures2024a, + title = {Learning Common Structures in a Collection of Networks. {{An}} Application to Food Webs}, + author = {Chabert-Liddell, Saint-Clair and Barbillon, Pierre and Donnet, Sophie}, + date = {2024-06}, + journaltitle = {The Annals of Applied Statistics}, + volume = {18}, + number = {2}, + pages = {1213--1235}, + publisher = {Institute of Mathematical Statistics}, + issn = {1932-6157, 1941-7330}, + doi = {10.1214/23-AOAS1831}, + url = {https://projecteuclid.org/journals/annals-of-applied-statistics/volume-18/issue-2/Learning-common-structures-in-a-collection-of-networks-An-application/10.1214/23-AOAS1831.full}, + urldate = {2024-07-01}, + abstract = {Let a collection of networks represent interactions within several (social or ecological) systems. We pursue two objectives: identifying similarities in the topological structures that are held in common between the networks and clustering the collection into subcollections of structurally homogeneous networks. We tackle these two questions with a probabilistic model-based approach. We propose an extension of the stochastic block model (SBM) adapted to the joint modeling of a collection of networks. The networks in the collection are assumed to be independent realizations of SBMs. The common connectivity structure is imposed through the equality of some parameters. The model parameters are estimated with a variational expectation-maximization (EM) algorithm. We derive an ad hoc penalized likelihood criterion to select the number of blocks and to assess the adequacy of the consensus found between the structures of the different networks. This same criterion can also be used to cluster networks on the basis of their connectivity structure. It thus provides a partition of the collection into subsets of structurally homogeneous networks. The relevance of our proposition is assessed on two collections of ecological networks. First, an application to three stream food webs reveals the homogeneity of their structures and the correspondence between groups of species in different ecosystems playing equivalent ecological roles. Moreover, the joint analysis allows a finer analysis of the structure of smaller networks. Second, we cluster 67 food webs according to their connectivity structures and demonstrate that five mesoscale structures are sufficient to describe this collection.}, + keywords = {clustering,ecology,latent variable models,networks,Stochastic block model}, + file = {/home/polarolouis/Zotero/storage/9XBNTTWB/Chabert-Liddell et al. - 2024 - Learning common structures in a collection of netw.pdf} +} + @article{daudinMixtureModelRandom2008, title = {A Mixture Model for Random Graphs}, author = {Daudin, J.-J. and Picard, F. and Robin, S.}, date = {2008-06-01}, - journaltitle = {Statistics and Computing}, - shortjournal = {Stat Comput}, + journaltitle = {Stat Comput}, volume = {18}, number = {2}, pages = {173--183}, @@ -105,7 +122,7 @@ urldate = {2023-06-16}, abstract = {The Erdös–Rényi model of a network is simple and possesses many explicit expressions for average and asymptotic properties, but it does not fit well to real-world networks. The vertices of those networks are often structured in unknown classes (functionally related proteins or social communities) with different connectivity properties. The stochastic block structures model was proposed for this purpose in the context of social sciences, using a Bayesian approach. We consider the same model in a frequentest statistical framework. We give the degree distribution and the clustering coefficient associated with this model, a variational method to estimate its parameters and a model selection criterion to select the number of classes. This estimation procedure allows us to deal with large networks containing thousands of vertices. The method is used to uncover the modular structure of a network of enzymatic reactions.}, langid = {english}, - keywords = {Mixture models,Random graphs,Variational~method}, + keywords = {Mixture models,Random graphs,Variational method}, file = {/home/polarolouis/Zotero/storage/439HK27B/Daudin et al. - 2008 - A mixture model for random graphs.pdf;/home/polarolouis/Zotero/storage/HVVF5MNY/daudin2007.pdf.pdf} } @@ -114,10 +131,9 @@ author = {Desjardins-Proulx, Philippe and Laigle, Idaline and Poisot, Timothée and Gravel, Dominique}, date = {2017-08-10}, journaltitle = {PeerJ}, - shortjournal = {PeerJ}, volume = {5}, pages = {e3644}, - publisher = {{PeerJ Inc.}}, + publisher = {PeerJ Inc.}, issn = {2167-8359}, doi = {10.7717/peerj.3644}, url = {https://peerj.com/articles/3644}, @@ -169,7 +185,7 @@ volume = {39}, number = {3}, pages = {416--425}, - publisher = {{Taylor \& Francis}}, + publisher = {Taylor \& Francis}, issn = {0361-0926}, doi = {10.1080/03610920903140197}, url = {https://doi.org/10.1080/03610920903140197}, @@ -185,7 +201,6 @@ author = {Holland, Paul W. and Laskey, Kathryn Blackmond and Leinhardt, Samuel}, date = {1983-06-01}, journaltitle = {Social Networks}, - shortjournal = {Social Networks}, volume = {5}, number = {2}, pages = {109--137}, @@ -203,7 +218,6 @@ author = {Hubert, Lawrence and Arabie, Phipps}, date = {1985-12-01}, journaltitle = {Journal of Classification}, - shortjournal = {Journal of Classification}, volume = {2}, number = {1}, pages = {193--218}, @@ -225,7 +239,7 @@ volume = {11}, number = {12}, pages = {3392}, - publisher = {{Multidisciplinary Digital Publishing Institute}}, + publisher = {Multidisciplinary Digital Publishing Institute}, issn = {2076-2615}, doi = {10.3390/ani11123392}, url = {https://www.mdpi.com/2076-2615/11/12/3392}, @@ -248,12 +262,12 @@ file = {/home/polarolouis/Zotero/storage/MA2VH6NX/9503.html} } -@article{maeldoreMaelDorePollinationNetworks2020, +@article{maeldoreMaelDorePollination_networksScripts2020, title = {{{MaelDore}}/{{Pollination}}\_networks: {{R}} Scripts for {{Doré}} et al., 2020 - {{Relative}} Effects of Anthropogenic Pressures, Climate, and Sampling Design on the Structure of Pollination Networks at the Global Scale}, shorttitle = {{{MaelDore}}/{{Pollination}}\_networks}, author = {MaelDore}, date = {2020-11-25}, - publisher = {{Zenodo}}, + publisher = {Zenodo}, doi = {10.5281/ZENODO.4290503}, url = {https://zenodo.org/record/4290503}, urldate = {2023-06-21}, @@ -267,8 +281,8 @@ date = {1976}, volume = {90}, pages = {1--568}, - publisher = {{Ottawa Field-Naturalists' Club}}, - location = {{Ottawa}}, + publisher = {Ottawa Field-Naturalists' Club}, + location = {Ottawa}, issn = {0008-3550}, url = {https://www.biodiversitylibrary.org/item/89149}, pagetotal = {568}, @@ -281,7 +295,6 @@ author = {Pavlopoulos, Georgios A and Kontou, Panagiota I and Pavlopoulou, Athanasia and Bouyioukos, Costas and Markou, Evripides and Bagos, Pantelis G}, date = {2018-04-01}, journaltitle = {GigaScience}, - shortjournal = {GigaScience}, volume = {7}, number = {4}, pages = {giy014}, @@ -298,7 +311,6 @@ author = {Ramos-Jiliberto, Rodrigo and Domínguez, Daniela and Espinoza, Claudia and López, Gioconda and Valdovinos, Fernanda S. and Bustamante, Ramiro O. and Medel, Rodrigo}, date = {2010-03-01}, journaltitle = {Ecological Complexity}, - shortjournal = {Ecological Complexity}, volume = {7}, number = {1}, pages = {86--90}, @@ -316,8 +328,7 @@ title = {Estimation and {{Prediction}} for {{Stochastic Blockmodels}} for {{Graphs}} with {{Latent Block Structure}}}, author = {Snijders, Tom A.B. and Nowicki, Krzysztof}, date = {1997-01-01}, - journaltitle = {Journal of Classification}, - shortjournal = {J. of Classification}, + journaltitle = {J. of Classification}, volume = {14}, number = {1}, pages = {75--100}, @@ -335,7 +346,7 @@ title = {A Database of Plant-Pollinator Networks}, author = {Thébault, Elisa and Fontaine, Colin}, date = {2020-12-01}, - publisher = {{Zenodo}}, + publisher = {Zenodo}, doi = {10.5281/zenodo.4300427}, url = {https://zenodo.org/record/4300427}, urldate = {2023-06-21}, @@ -348,7 +359,7 @@ title = {A Database of Plant-Pollinator Networks}, author = {Thébault, Elisa and Fontaine, Colin}, date = {2020-12-01}, - publisher = {{Zenodo}}, + publisher = {Zenodo}, doi = {10.5281/ZENODO.4300427}, url = {https://zenodo.org/record/4300427}, urldate = {2023-06-21}, @@ -360,12 +371,12 @@ @dataset{thebaultelisaDatabasePlantpollinatorNetworks2022, title = {A Database of Plant-Pollinator Networks}, author = {Thébault, Elisa and Fontaine, Colin}, - editora = {Doré, Maël and Parra, Santiago}, - editoratype = {collaborator}, + namea = {Doré, Maël and Parra, Santiago}, + nameatype = {collaborator}, date = {2022-06-10}, - publisher = {{Zenodo}}, - doi = {10.5281/ZENODO.6630184}, - url = {https://zenodo.org/record/6630184}, + publisher = {Zenodo}, + doi = {10.5281/ZENODO.4300426}, + url = {https://zenodo.org/record/4300426}, urldate = {2023-06-21}, abstract = {This database assembles different published datasets of observed interaction networks between plants and pollinators, which were extracted from articles, theses and existing online databases. Each row in the data table corresponds to an interaction between a plant and a pollinator species reported at a given site by a given publication.}, version = {2}, @@ -375,12 +386,12 @@ @dataset{thebaultelisaDatabasePlantpollinatorNetworks2022a, title = {A Database of Plant-Pollinator Networks}, author = {Thébault, Elisa and Fontaine, Colin}, - editora = {Doré, Maël and Parra, Santiago}, - editoratype = {collaborator}, + namea = {Doré, Maël and Parra, Santiago}, + nameatype = {collaborator}, date = {2022-06-10}, - publisher = {{Zenodo}}, - doi = {10.5281/ZENODO.4300426}, - url = {https://zenodo.org/record/4300426}, + publisher = {Zenodo}, + doi = {10.5281/ZENODO.6630184}, + url = {https://zenodo.org/record/6630184}, urldate = {2023-06-21}, abstract = {This database assembles different published datasets of observed interaction networks between plants and pollinators, which were extracted from articles, theses and existing online databases. Each row in the data table corresponds to an interaction between a plant and a pollinator species reported at a given site by a given publication.}, version = {2}, @@ -402,6 +413,6 @@ urldate = {2023-08-06}, abstract = {Insect pollinators of the Mer Bleue peat bog of Ottawa - Biodiversity ...}, langid = {english}, - organization = {{yumpu.com}}, + organization = {yumpu.com}, file = {/home/polarolouis/Zotero/storage/DIXT2PYL/insect-pollinators-of-the-mer-bleue-peat-bog-of-ottawa-biodiversity-.html} } diff --git a/tikz/clustering.tex b/tikz/clustering.tex new file mode 100644 index 0000000..3c35427 --- /dev/null +++ b/tikz/clustering.tex @@ -0,0 +1,26 @@ +\tikzstyle{instruct}=[font=\small, text justified, rectangle,draw,fill=yellow!50] +\tikzstyle{first_col}=[rectangle, text justified, draw,fill=gray!50] +\tikzstyle{second_col}=[scale=0.55, circle, draw,fill=red!50] +\tikzstyle{test}=[font=\small, text justified, diamond, aspect=2.5,thick, +draw=blue,fill=yellow!50,text=blue] +\tikzstyle{es}=[font=\small, text justified, rectangle,draw,rounded corners=4pt,fill=cyanind!25] + +\node[es] (liste) at (0,4) {Donner une collection à partitionner}; +\node[instruct, text width=5cm, below = 0.45cm of liste] (1-collection) {Ajuster \emph{colBiSBM}}; +\node[first_col, right = 0.5cm of 1-collection] (1-col-obj) {}; +\node[instruct, text width=5cm, below = 0.45cm of 1-collection] (dissimi) {Calculer une matrice de dissimilarité de la collection}; +\node[instruct, text width=5cm, below = 0.45cm of dissimi] (2-sous-collection) {Séparer la \emph{collection en 2 sous-collections} et ajuster les \emph{colBiSBM}}; +\node[second_col, right = 0.25cm of 2-sous-collection] (1-sec-col-obj) {1}; +\node[second_col, right = 0.25cm of 1-sec-col-obj] (1-sec-col-obj) {2}; +\node[test,below = 0.45cm of 2-sous-collection, scale=0.5] (BICL-test) {$\sum_{i=1}^{2} (\text{BIC-L}(\tikz[baseline=-0.25cm]{\node[second_col] {i};} )) > \text{BIC-L}(\tikz[baseline=-0.25cm]{\node[first_col] {};})$?}; +\node[es, right = 0.55cm of BICL-test] (sortie) {Renvoyer \tikz{\node[rectangle, draw, fill=gray!50, rounded corners=0pt] {};}}; +\node[es, left = 0.45cm of dissimi, text width = 2cm] (recursion) {Recommencer sur \tikz{\node[second_col] {1};} et \tikz{\node[second_col] {2};} }; + +\tikzstyle{suite}=[->,>=stealth,thick,rounded corners=4pt] +\draw[suite] (liste) -- (1-collection); +\draw[suite] (1-collection) -- (dissimi); +\draw[suite] (dissimi) -- (2-sous-collection); +\draw[suite] (2-sous-collection) -- (BICL-test); +\draw[suite] (BICL-test) -| node[near start, above, fill=none] {Oui} (recursion); +\draw[suite] (recursion.north) |- (1-collection.west); +\draw[suite] (BICL-test) -- node[near start, above, fill=none] {Non} (sortie); diff --git a/tikz/greedy-exploration.tex b/tikz/greedy-exploration.tex index 3da6b30..2102ec2 100644 --- a/tikz/greedy-exploration.tex +++ b/tikz/greedy-exploration.tex @@ -1,26 +1,68 @@ \draw[step=1cm, help lines] (-2,-2) grid (2,2); \foreach \x in {1,...,5} \draw (\x-3,-2 + .1)--(\x-3,-2 -.3) node[below] {\footnotesize $\x$}; \foreach \y in {1,...,5} \draw (-2 + .1, \y-3)--(-2 -.3,\y-3) node[below] {\footnotesize $\y$}; -\draw[fill=gray, draw=gray] (0,0) circle [radius=0.225cm]; -\draw[fill=blueind, draw=blueind] (1,0) circle [radius=0.225cm]; -\draw[fill=blueind, draw=blueind] (0,1) circle [radius=0.225cm]; -\draw[fill=red, draw=red] (-1,0) circle [radius=0.225cm]; -\draw[fill=red, draw=red] (0,-1) circle [radius=0.225cm]; +% \draw[fill=gray, draw=gray] (0,0) circle [radius=0.225cm]; +% \draw[fill=blueind, draw=blueind] (1,0) circle [radius=0.225cm]; +% \draw[fill=blueind, draw=blueind] (0,1) circle [radius=0.225cm]; +% \draw[fill=red, draw=red] (-1,0) circle [radius=0.225cm]; +% \draw[fill=red, draw=red] (0,-1) circle [radius=0.225cm]; -% Légende -\node[font=\tiny, text justified,fill=none, rotate=-45] (Splits) at (0.5,0.5){{\color{blueind} Splits}}; -\node[font=\tiny, text justified,fill=none, rotate=-45] (Merges) at (-0.5,-0.5){{\color{red} Merges}}; +% % Légende +% \node[font=\tiny, text justified,fill=none, rotate=-45] (Splits) at (0.5,0.5){{\color{blueind} Splits}}; +% \node[font=\tiny, text justified,fill=none, rotate=-45] (Merges) at (-0.5,-0.5){{\color{red} Merges}}; -% Splitting -\draw[>=stealth,->,thick, draw=blueind] (0.225,0) -- +(0.55,0); -\draw[>=stealth,->,thick, draw=blueind] (0,0.225) -- +(0,0.55); +% % Splitting +% \draw[>=stealth,->,thick, draw=blueind] (0.225,0) -- +(0.55,0); +% \draw[>=stealth,->,thick, draw=blueind] (0,0.225) -- +(0,0.55); -% Merging -\draw[>=stealth,->,thick, draw=red] (-0.225,0) -- +(-0.55,0); -\draw[>=stealth,->,thick, draw=red] (0,-0.225) -- +(0,-0.55); +% % Merging +% \draw[>=stealth,->,thick, draw=red] (-0.225,0) -- +(-0.55,0); +% \draw[>=stealth,->,thick, draw=red] (0,-0.225) -- +(0,-0.55); % Axes \draw[>=to,->,thick] (-2,-2) -- +(4.3,0); \node[font=\small, fill=none] (Q_1) at (2.6,-2) {$Q_1$}; \draw[>=to,->,thick] (-2,-2) -- +(0,4.3); \node[font=\small, fill=none] (Q_2) at (-2, 2.6) {$Q_2$}; + +% Init +\onslide<1->{ + \draw[fill=gray, draw=gray] (-1,-2) circle [radius=0.225cm]; + \draw[fill=gray, draw=gray] (-2,-1) circle [radius=0.225cm]; + \draw[fill=gray, draw=gray] (-2,-2) circle [radius=0.225cm]; +} +\onslide<2->{ + % New models + \draw[fill=blueind, draw=blueind] (0,-2) circle [radius=0.225cm]; + \draw[fill=blueind, draw=blueind] (-2, 0) circle [radius=0.225cm]; +} +\onslide<2-3>{ + \draw[fill=blueind, draw=green, very thick] (-1,-1) circle [radius=0.225cm]; +} +\onslide<2>{ + % Splits + \draw[>=stealth,->,thick, draw=blueind] (-1 + 0.225,-2 + 0) -- +(0.55,0); + \draw[>=stealth,->,thick, draw=blueind] (-1 + 0, -2 + 0.225) -- +(0,0.55); + + \draw[>=stealth,->,thick, draw=blueind] (-2 + 0.225,-1 + 0) -- +(0.55,0); + \draw[>=stealth,->,thick, draw=blueind] (-2 + 0, -1 + 0.225) -- +(0,0.55); +} + +\onslide<3>{ + % updated models + \draw[fill=blueind, draw=blueind] (-1,-1) circle [radius=0.225cm]; + \draw[fill=red, draw=red] (-2, -1) circle [radius=0.225cm]; + + % merge + \draw[>=stealth,->,thick, draw=red] (-1 - 0, -1 - 0.225) -- +(0,-0.55); + \draw[>=stealth,->,thick, draw=red] (-1 - 0.225, -1 - 0) -- +(-0.55,0); + + %splits + \draw[>=stealth,->,thick, draw=blueind] (-1 + 0.225,-1 + 0) -- +(0.55,0); + \draw[>=stealth,->,thick, draw=blueind] (-1 + 0, -1 + 0.225) -- +(0,0.55); +} + +\onslide<3->{ + \draw[fill=blueind, draw=green, very thick] (-1,0) circle [radius=0.225cm]; + \draw[fill=blueind, draw=blueind] (0,-1) circle [radius=0.225cm]; +} \ No newline at end of file diff --git a/tikz/plantpollinatornetwork.tex b/tikz/plantpollinatornetwork.tex index ac9958e..59bc5ba 100644 --- a/tikz/plantpollinatornetwork.tex +++ b/tikz/plantpollinatornetwork.tex @@ -1,27 +1,20 @@ \tikzstyle{every edge}=[-,>=stealth',shorten >=1pt,auto,thin,draw] -\tikzstyle{every state}=[draw, text=white,scale=0.70, font=\scriptsize, transform shape] - % Upper level \tikzstyle{every state}=[draw=none,text=white,scale=0.55, font=\scriptsize, transform shape] % premier cluster \tikzstyle{every node}=[fill=green!50!blue!20!white] -\node[state] (N1) at (1.1,3) {\includegraphics[width=.15\textwidth]{pollen.png}}; -\node[state, right = of N1] (N2) {\includegraphics[width=.15\textwidth]{pollen.png}}; % at (.75,3) -\node[state, right = of N2] (N3) {\includegraphics[width=.15\textwidth]{pollen.png}}; % at (1.5,3) -\node[state, right = of N3] (N4) {\includegraphics[width=.15\textwidth]{pollen.png}}; % at (2.25,3) +\node[state] (N1) at (0.05,3) {\includegraphics[width=.2\textwidth]{pollen.png}}; +\node[state, right = of N1] (N2) {\includegraphics[width=.2\textwidth]{pollen.png}}; % at (.75,3) +\node[state, right = of N2] (N3) {\includegraphics[width=.2\textwidth]{pollen.png}}; % at (1.5,3) % \node[state] (N5) at (3,3) {\includegraphics[width=.1\textwidth]{pollen.png}}; % \node[state] (N6) at (3.75,3) {\includegraphics[width=.1\textwidth]{pollen.png}}; \tikzstyle{every node}=[shape=rectangle,fill=red!50!blue!20!white] % \node[state, fill = white] (P) at (-1.5, 0) {\includegraphics[width=.08\textwidth]{bee.png}}; -\node[state, tokens=0] (P1) at (-1, 0) {\includegraphics[width=.1\textwidth]{bee.png}}; -\node[state, tokens=0, right = of P1] (P2) {\includegraphics[width=.1\textwidth]{bee.png}}; % at (-.25, 0) -\node[state, tokens=0, right = of P2] (P3) {\includegraphics[width=.1\textwidth]{bee.png}}; %at (.5, 0) -\node[state, tokens=0, right = of P3] (P4) {\includegraphics[width=.1\textwidth]{bee.png}}; % at (1.25, 0) -\node[state, tokens=0, right = of P4] (P5) {\includegraphics[width=.1\textwidth]{bee.png}};% at (2,0) -\node[state, tokens=0, right = of P5] (P6) {\includegraphics[width=.1\textwidth]{bee.png}}; % at (2.75,0) -% \node[state, tokens=0] (P7) at (3.5,0) {\includegraphics[width=.1\textwidth]{bee.png}}; -% \node[state, tokens=0] (P8) at (4.25,0) {\includegraphics[width=.1\textwidth]{bee.png}}; +\node[state, tokens=0] (P1) at (-1, 0) {\includegraphics[width=.2\textwidth]{bee.png}}; +\node[state, tokens=0, right = of P1] (P2) {\includegraphics[width=.2\textwidth]{bee.png}}; % at (-.25, 0) +\node[state, tokens=0, right = of P2] (P3) {\includegraphics[width=.2\textwidth]{bee.png}}; %at (.5, 0) +\node[state, tokens=0, right = of P3] (P4) {\includegraphics[width=.2\textwidth]{bee.png}}; % at (1.25, 0) \tikzstyle{every edge}=[>=stealth,shorten >=1pt,auto,thin,draw] \path (P1) edge (N1); @@ -29,10 +22,4 @@ \path (P3) edge (N1); \path (P4) edge (N2); \path (P4) edge (N1); -\path (P6) edge (N2); \path (P1) edge (N3); -%\path (P7) edge (N4); -%\path (P8) edge (N5); -%\path (P4) edge (N6); -\path (P5) edge (N3); -\path (P5) edge (N4); \ No newline at end of file