Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
<<importTiddlers>>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<!--{{{-->
<div class='header' role='banner' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea' role='main'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected {color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
@@bgcolor(orange):Second-order Micromotives and Macrobehaviour@@
Philippe Collard
[[Journal of Computational Social Science|https://link.springer.com/epdf/10.1007/s42001-020-00062-z?author_access_token=7VQyl4iGWCLZxU_dQP-BSfe4RwlQNchNByi7wbcMAY5YaE5AeCqIOwpaVqiJeO9kjCt-DR022wac4UeD74O7bhpkNhdtDegCZ21HyaGz9nNwErUXPS1kVMIeKNLZ58hx2LNumf3Nxmu9FQwbjR7hFw%3D%3D ]], Ed. Springer Nature, janvier 2020. ([[DOI| https://doi.org/10.1007/s42001-020-00062-z]])
----
@@bgcolor(orange):Strong and weak spatial segregation with multilevel discrimination criteria@@
Philippe Collard
[[Complex Systems journal|https://www.complex-systems.com/issues/28-2/]], Volume 28, Issue 2, 2019. 
----
@@bgcolor(orange):lambdaCA: a Peer Learning Cellular Automaton@@
Philippe Collard
[[Cellular Automata Journal|http://www.oldcitypublishing.com/journals/jca-home/jca-issue-contents/jca-volume-14-number-3-4-2019/]], Volume 14, Issue 3-4, 2018.
----
@@bgcolor(orange):The "Two's Company, Three's a Crowd" Game@@
Philippe Collard
[[Complex Systems journal|http://www.complex-systems.com/issues/26-3.html]], Volume 26, Issue 3, 2017. /%[<img[a|./cs25-3.png]]%/
----
@@bgcolor(orange):Information Dissemination in scale-free networks: Profusion versus Scarcity@@
Laurent Brisson, Philippe Collard, Martine Collard, Erick Stattner
International Conference on Complex Networks and Their Applications, ed. [[Springer Verlag| https://link.springer.com/book/10.1007/978-3-319-72150-7?page=5#toc]], pp. 911-920, 2017
----
/%
@@bgcolor(orange):The ~Eternal-Return model of human mobility and its impact on information flow@@
Martine Collard, Philippe Collard, Erick Stattner
[[Graph Theoretic Approaches for Analyzing Large Scale Social Networks | http://www.igi-global.com/book/graph-theoretic-approaches-analyzing-large/178732]], 2017, ed. IGI
----
@@bgcolor(orange):Segregation Landscape: A new view on the Schelling segregation space@@
Philippe Collard, Teodor Ghetiu
[[Complex Systems journal|http://www.complex-systems.com/issues/25-3.html]], Volume 25, Issue 3, 2016  /%[<img[a|./cs25-3.png]]
----
@@bgcolor(orange):Emergence of Frontiers in networked Schelling segregationist models@@
Philippe Collard, Salma Mesmoudi, Teodor Ghetiu, and Fiona Polack
[[Complex Systems journal|http://www.complex-systems.com/issues/22-1.html]], Volume 22, Issue 1, 2013 %/
----
@@bgcolor(yellow):Systèmes Complexes : une introduction par la pratique@@
Philippe Collard, [[Sébastien Verel|http://www-lisic.univ-littoral.fr/~verel/]], Manuel Clergue
[[EPFL Press, Lausanne|http://www.ppur.com/en/product/612/9782880749910/Systemes%20complexes]],  [[ISBN : 978-2-88074-991-0|http://www.systemescomplexes.fr]], 306 pages, 2013
[[Préface]] [[Marco Tomassini|http://www.hec.unil.ch/people/mtomassini]] /%[<img[a|./couverturePPUR_V2.png]]%/
*Membre de la commission de réflexion et d'action du PRES euro-méditerranéen de l'UNS
*Expert auprès de ''l’Agence d’évaluation de la recherche et de l’enseignement supérieur'' ([[AERES|http://www.aeres-evaluation.fr/]]) (2008-2010)
*Directeur de ''l'Institut Universitaire professionnalisé MIAGE'' (2003-2008)
*Coordinateur de la Maitrise MIAGE (2001-2002)
*Membre du conseil de l'UFR sciences (2002-2005)
*Membre du Comité des Projets du laboratoire I3S (2002-2004)
*Membre de la Commission de Spécialistes 27ème section (2002-2004)
!1 -- Format des données
|!Option|!Syntaxe|!Résultat|!Anglais|h
|texte en gras|{{{''gras''}}}|''gras''|''bold''|
|texte en italique|{{{//italique//}}}|//italique//|//italic//|
|texte souligné|{{{__souligné__}}}|__souligné__|__underlined__|
|texte barré|{{{--barré--}}}|--barré--|--strikethrough--|
|texte mis en exposant|{{{texte^^exposant^^}}}|texte^^exposant^^|text^^super^^|
|texte mis en indice|{{{texte~~indice~~}}}|texte~~indice~~|text~~sub~~|
|texte mis en évidence|{{{@@mis en évidence@@}}}|@@mis en évidence@@|@@highlighted@@|
|texte en de taille fixe|{{{ {{{taille fixe}}} }}}|{{{taille fixe}}}|{{{monospaced}}}|
|texte bleu|{{{@@color:#00f;texte bleu@@}}}|@@color:#00f;texte bleu@@| .|
|fond vert|{{{@@bgcolor:#0f0;fond vert@@}}}|@@bgcolor:#0f0;fond vert@@| .|
/***
|''Name:''|AnnotationsPlugin|
|''Description:''|Inline annotations for tiddler text.|
|''Author:''|Saq Imtiaz ( <b style="color: black; background-color: rgb(160, 255, 255);">lewcid</b>@gmail.com )|
|''Source:''|http://tw.<b style="color: black; background-color: rgb(160, 255, 255);">lewcid</b>.org/#AnnotationsPlugin|
|''Code Repository:''|http://tw.<b style="color: black; background-color: rgb(160, 255, 255);">lewcid</b>.org/svn/plugins|
|''Version:''|2.0|
|''Date:''||
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.2.3|

!!Usage:
*{{{((text to annotate(annotation goes here)}}}
* To include the text being annotated, in the popup as a title, put {{{^}}} as the first letter of the annotation text.
** {{{((text to annotate(^annotation goes here)}}}

!!Examples:
Mouse over, the text below:
* ((banana(the best fruit in the world)))
* ((banana(^ the best fruit in the world)))

***/
// /%
config.formatters.unshift({name:"annotations",match:"\\(\\(",lookaheadRegExp:/\(\((.*?)\((\^?)((?:.|\n)*?)\)\)\)/g,handler:function(w){
this.lookaheadRegExp.lastIndex=w.matchStart;
var _2=this.lookaheadRegExp.exec(w.source);
if(_2&&_2.index==w.matchStart){
var _3=createTiddlyElement(w.output,"span",null,"annosub",_2[1]);
_3.anno=_2[3];
if(_2[2]){
_3.subject=_2[1];
}
_3.onmouseover=this.onmouseover;
_3.onmouseout=this.onmouseout;
_3.ondblclick=this.onmouseout;
w.nextMatch=_2.index+_2[0].length;
}
},onmouseover:function(e){
popup=createTiddlyElement(document.body,"div",null,"anno");
this.popup=popup;
if(this.subject){
wikify("!"+this.subject+"\n",popup);
}
wikify(this.anno,popup);
addClass(this,"annosubover");
Popup.place(this,popup,{x:25,y:7});
},onmouseout:function(e){
removeNode(this.popup);
this.popup=null;
removeClass(this,"annosubover");
}});
setStylesheet(".anno{position:absolute;border:2px solid #000;background-color:#DFDFFF; color:#000;padding:0.5em;max-width:15em;width:expression(document.body.clientWidth > (255/12) *parseInt(document.body.currentStyle.fontSize)?'15em':'auto' );}\n"+".anno h1, .anno h2{margin-top:0;color:#000;}\n"+".annosub{background:#ccc;}\n"+".annosubover{z-index:25; background-color:#DFDFFF;cursor:help;}\n","AnnotationStyles");


// %/
/***
|Name|CalendarPlugin|
|Source|http://www.TiddlyTools.com/#CalendarPlugin|
|Version|1.5.1|
|Author|Eric Shulman|
|Original Author|SteveRumsby|
|License|unknown|
|~CoreVersion|2.1|
|Type|plugin|
|Description|display monthly and yearly calendars|
NOTE: For //enhanced// date popup display, optionally install:
*[[DatePlugin]]
*[[ReminderMacros|http://remindermacros.tiddlyspot.com/]]
!!!Usage:
<<<
|{{{<<calendar>>}}}|full-year calendar for the current year|
|{{{<<calendar year>>}}}|full-year calendar for the specified year|
|{{{<<calendar year month>>}}}|one month calendar for the specified month and year|
|{{{<<calendar thismonth>>}}}|one month calendar for the current month|
|{{{<<calendar lastmonth>>}}}|one month calendar for last month|
|{{{<<calendar nextmonth>>}}}|one month calendar for next month|
|{{{<<calendar +n>>}}}<br>{{{<<calendar -n>>}}}|one month calendar for a month +/- 'n' months from now|
<<<
!!!Configuration:
<<<
|''First day of week:''<br>{{{config.options.txtCalFirstDay}}}|<<option txtCalFirstDay>>|(Monday = 0, Sunday = 6)|
|''First day of weekend:''<br>{{{config.options.txtCalStartOfWeekend}}}|<<option txtCalStartOfWeekend>>|(Monday = 0, Sunday = 6)|

<<option chkDisplayWeekNumbers>> Display week numbers //(note: Monday will be used as the start of the week)//
|''Week number display format:''<br>{{{config.options.txtWeekNumberDisplayFormat }}}|<<option txtWeekNumberDisplayFormat >>|
|''Week number link format:''<br>{{{config.options.txtWeekNumberLinkFormat }}}|<<option txtWeekNumberLinkFormat >>|
<<<
!!!Revisions
<<<
2011.01.04 1.5.1 corrected parameter handling for {{{<<calendar year>>}}} to show entire year instead of just first month.  In createCalendarMonthHeader(), fixed next/previous month year calculation (use parseInt() to convert to numeric value).  Code reduction (setting options).
2009.04.31 1.5.0 rewrote onClickCalendarDate() (popup handler) and added config.options.txtCalendarReminderTags.  Partial code reduction/cleanup.  Assigned true version number (1.5.0)
2008.09.10 added '+n' (and '-n') param to permit display of relative months (e.g., '+6' means 'six months from now', '-3' means 'three months ago'.  Based on suggestion from Jean.
2008.06.17 added support for config.macros.calendar.todaybg
2008.02.27 in handler(), DON'T set hard-coded default date format, so that *customized* value (pre-defined in config.macros.calendar.journalDateFmt is used.
2008.02.17 in createCalendarYear(), fix next/previous year calculation (use parseInt() to convert to numeric value).  Also, use journalDateFmt for date linking when NOT using [[DatePlugin]].
2008.02.16 in createCalendarDay(), week numbers now created as TiddlyLinks, allowing quick creation/navigation to 'weekly' journals (based on request from Kashgarinn)
2008.01.08 in createCalendarMonthHeader(), 'month year' heading is now created as TiddlyLink, allowing quick creation/navigation to 'month-at-a-time' journals
2007.11.30 added 'return false' to onclick handlers (prevent IE from opening blank pages)
2006.08.23 added handling for weeknumbers (code supplied by Martin Budden (see 'wn**' comment marks).  Also, incorporated updated by Jeremy Sheeley to add caching for reminders (see [[ReminderMacros]], if installed)
2005.10.30 in config.macros.calendar.handler(), use 'tbody' element for IE compatibility.  Also, fix year calculation for IE's getYear() function (which returns '2005' instead of '105'). Also, in createCalendarDays(), use showDate() function (see [[DatePlugin]], if installed) to render autostyled date with linked popup.  Updated calendar stylesheet definition: use .calendar class-specific selectors, add text centering and margin settings
2006.05.29 added journalDateFmt handling
<<<
!!!Code
***/
//{{{
version.extensions.CalendarPlugin= { major: 1, minor: 5, revision: 1, date: new Date(2011,1,4)};

// COOKIE OPTIONS
var opts={
	txtCalFirstDay:				0,
	txtCalStartOfWeekend:		5,
	chkDisplayWeekNumbers:		false,
	txtCalFirstDay:				0,
	txtWeekNumberDisplayFormat:	'w0WW',
	txtWeekNumberLinkFormat:	'YYYY-w0WW',
	txtCalendarReminderTags:		'reminder'
};
for (var id in opts) if (config.options[id]===undefined) config.options[id]=opts[id];

// INTERNAL CONFIGURATION
config.macros.calendar = {
	monthnames:['Jan','Feb','Mar','Avr','Mai','Jun','Jul','Aout','Sep','Oct','Nov','Dec'],
	daynames:['L','Ma','Me','J','V','S','D'],
	todaybg:'#ccccff',
	weekendbg:'#c0c0c0',
	monthbg:'#e0e0e0',
	holidaybg:'#ffc0c0',
	journalDateFmt:'DD MMM YYYY',
	monthdays:[31,28,31,30,31,30,31,31,30,31,30,31],
	holidays:[ ] // for customization see [[CalendarPluginConfig]]
};
//}}}
//{{{
function calendarIsHoliday(date)
{
	var longHoliday = date.formatString('0DD/0MM/YYYY');
	var shortHoliday = date.formatString('0DD/0MM');
	for(var i = 0; i < config.macros.calendar.holidays.length; i++) {
		if(   config.macros.calendar.holidays[i]==longHoliday
		   || config.macros.calendar.holidays[i]==shortHoliday)
			return true;
	}
	return false;
}
//}}}
//{{{
config.macros.calendar.handler = function(place,macroName,params) {
	var calendar = createTiddlyElement(place, 'table', null, 'calendar', null);
	var tbody = createTiddlyElement(calendar, 'tbody');
	var today = new Date();
	var year = today.getYear();
	if (year<1900) year+=1900;

 	// get journal format from SideBarOptions (ELS 5/29/06 - suggested by MartinBudden)
	var text = store.getTiddlerText('SideBarOptions');
	var re = new RegExp('<<(?:newJournal)([^>]*)>>','mg'); var fm = re.exec(text);
	if (fm && fm[1]!=null) { var pa=fm[1].readMacroParams(); if (pa[0]) this.journalDateFmt = pa[0]; }

	var month=-1;
	if (params[0] == 'thismonth') {
		var month=today.getMonth();
	} else if (params[0] == 'lastmonth') {
		var month = today.getMonth()-1; if (month==-1) { month=11; year--; }
	} else if (params[0] == 'nextmonth') {
		var month = today.getMonth()+1; if (month>11) { month=0; year++; }
	} else if (params[0]&&'+-'.indexOf(params[0].substr(0,1))!=-1) {
		var month = today.getMonth()+parseInt(params[0]);
		if (month>11) { year+=Math.floor(month/12); month%=12; };
		if (month<0)  { year+=Math.floor(month/12); month=12+month%12; }
	} else if (params[0]) {
		year = params[0];
		if(params[1]) {
			month=parseInt(params[1])-1;
			if (month>11) month=11; if (month<0) month=0;
		}
	}

	if (month!=-1) {
		cacheReminders(new Date(year, month, 1, 0, 0), 31);
		createCalendarOneMonth(tbody, year, month);
	} else {
		cacheReminders(new Date(year, 0, 1, 0, 0), 366);
		createCalendarYear(tbody, year);
	}
	window.reminderCacheForCalendar = null;
}
//}}}
//{{{
// cache used to store reminders while the calendar is being rendered
// it will be renulled after the calendar is fully rendered.
window.reminderCacheForCalendar = null;
//}}}
//{{{
function cacheReminders(date, leadtime)
{
	if (window.findTiddlersWithReminders == null) return;
	window.reminderCacheForCalendar = {};
	var leadtimeHash = [];
	leadtimeHash [0] = 0;
	leadtimeHash [1] = leadtime;
	var t = findTiddlersWithReminders(date, leadtimeHash, null, 1);
	for(var i = 0; i < t.length; i++) {
		//just tag it in the cache, so that when we're drawing days, we can bold this one.
		window.reminderCacheForCalendar[t[i]['matchedDate']] = 'reminder:' + t[i]['params']['title']; 
	}
}
//}}}
//{{{
function createCalendarOneMonth(calendar, year, mon)
{
	var row = createTiddlyElement(calendar, 'tr');
	createCalendarMonthHeader(calendar, row, config.macros.calendar.monthnames[mon]+' '+year, true, year, mon);
	row = createTiddlyElement(calendar, 'tr');
	createCalendarDayHeader(row, 1);
	createCalendarDayRowsSingle(calendar, year, mon);
}
//}}}
//{{{
function createCalendarMonth(calendar, year, mon)
{
	var row = createTiddlyElement(calendar, 'tr');
	createCalendarMonthHeader(calendar, row, config.macros.calendar.monthnames[mon]+' '+ year, false, year, mon);
	row = createTiddlyElement(calendar, 'tr');
	createCalendarDayHeader(row, 1);
	createCalendarDayRowsSingle(calendar, year, mon);
}
//}}}
//{{{
function createCalendarYear(calendar, year)
{
	var row;
	row = createTiddlyElement(calendar, 'tr');
	var back = createTiddlyElement(row, 'td');
	var backHandler = function() {
		removeChildren(calendar);
		createCalendarYear(calendar, parseInt(year)-1);
		return false; // consume click
	};
	createTiddlyButton(back, '<', 'Previous year', backHandler);
	back.align = 'center';
	var yearHeader = createTiddlyElement(row, 'td', null, 'calendarYear', year);
	yearHeader.align = 'center';
	yearHeader.setAttribute('colSpan',config.options.chkDisplayWeekNumbers?22:19);//wn**
	var fwd = createTiddlyElement(row, 'td');
	var fwdHandler = function() {
		removeChildren(calendar);
		createCalendarYear(calendar, parseInt(year)+1);
		return false; // consume click
	};
	createTiddlyButton(fwd, '>', 'Next year', fwdHandler);
	fwd.align = 'center';
	createCalendarMonthRow(calendar, year, 0);
	createCalendarMonthRow(calendar, year, 3);
	createCalendarMonthRow(calendar, year, 6);
	createCalendarMonthRow(calendar, year, 9);
}
//}}}
//{{{
function createCalendarMonthRow(cal, year, mon)
{
	var row = createTiddlyElement(cal, 'tr');
	createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon], false, year, mon);
	createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon+1], false, year, mon);
	createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon+2], false, year, mon);
	row = createTiddlyElement(cal, 'tr');
	createCalendarDayHeader(row, 3);
	createCalendarDayRows(cal, year, mon);
}
//}}}
//{{{
function createCalendarMonthHeader(cal, row, name, nav, year, mon)
{
	var month;
	if (nav) {
		var back = createTiddlyElement(row, 'td');
		back.align = 'center';
		back.style.background = config.macros.calendar.monthbg;

		var backMonHandler = function() {
			var newyear = year;
			var newmon = mon-1;
			if(newmon == -1) { newmon = 11; newyear = parseInt(newyear)-1;}
			removeChildren(cal);
			cacheReminders(new Date(newyear, newmon , 1, 0, 0), 31);
			createCalendarOneMonth(cal, newyear, newmon);
			return false; // consume click
		};
		createTiddlyButton(back, '<', 'Previous month', backMonHandler);
		month = createTiddlyElement(row, 'td', null, 'calendarMonthname')
		createTiddlyLink(month,name,true);
		month.setAttribute('colSpan', config.options.chkDisplayWeekNumbers?6:5);//wn**
		var fwd = createTiddlyElement(row, 'td');
		fwd.align = 'center';
		fwd.style.background = config.macros.calendar.monthbg; 

		var fwdMonHandler = function() {
			var newyear = year;
			var newmon = mon+1;
			if(newmon == 12) { newmon = 0; newyear = parseInt(newyear)+1;}
			removeChildren(cal);
			cacheReminders(new Date(newyear, newmon , 1, 0, 0), 31);
			createCalendarOneMonth(cal, newyear, newmon);
			return false; // consume click
		};
		createTiddlyButton(fwd, '>', 'Next month', fwdMonHandler);
	} else {
		month = createTiddlyElement(row, 'td', null, 'calendarMonthname', name)
		month.setAttribute('colSpan',config.options.chkDisplayWeekNumbers?8:7);//wn**
	}
	month.align = 'center';
	month.style.background = config.macros.calendar.monthbg;
}
//}}}
//{{{
function createCalendarDayHeader(row, num)
{
	var cell;
	for(var i = 0; i < num; i++) {
		if (config.options.chkDisplayWeekNumbers) createTiddlyElement(row, 'td');//wn**
		for(var j = 0; j < 7; j++) {
			var d = j + (config.options.txtCalFirstDay - 0);
			if(d > 6) d = d - 7;
			cell = createTiddlyElement(row, 'td', null, null, config.macros.calendar.daynames[d]);
			if(d == (config.options.txtCalStartOfWeekend-0) || d == (config.options.txtCalStartOfWeekend-0+1))
				cell.style.background = config.macros.calendar.weekendbg;
		}
	}
}
//}}}
//{{{
function createCalendarDays(row, col, first, max, year, mon) {
	var i;
	if (config.options.chkDisplayWeekNumbers){
		if (first<=max) {
			var ww = new Date(year,mon,first);
			var td=createTiddlyElement(row, 'td');//wn**
			var link=createTiddlyLink(td,ww.formatString(config.options.txtWeekNumberLinkFormat),false);
			link.appendChild(document.createTextNode(
				ww.formatString(config.options.txtWeekNumberDisplayFormat)));
		}
		else createTiddlyElement(row, 'td');//wn**
	}
	for(i = 0; i < col; i++)
		createTiddlyElement(row, 'td');
	var day = first;
	for(i = col; i < 7; i++) {
		var d = i + (config.options.txtCalFirstDay - 0);
		if(d > 6) d = d - 7;
		var daycell = createTiddlyElement(row, 'td');
		var isaWeekend=((d==(config.options.txtCalStartOfWeekend-0)
			|| d==(config.options.txtCalStartOfWeekend-0+1))?true:false);
		if(day > 0 && day <= max) {
			var celldate = new Date(year, mon, day);
			// ELS 10/30/05 - use <<date>> macro's showDate() function to create popup
			// ELS 05/29/06 - use journalDateFmt 
			if (window.showDate) showDate(daycell,celldate,'popup','DD',
				config.macros.calendar.journalDateFmt,true, isaWeekend);
			else {
				if(isaWeekend) daycell.style.background = config.macros.calendar.weekendbg;
				var title = celldate.formatString(config.macros.calendar.journalDateFmt);
				if(calendarIsHoliday(celldate))
					daycell.style.background = config.macros.calendar.holidaybg;
				var now=new Date();
				if ((now-celldate>=0) && (now-celldate<86400000)) // is today?
					daycell.style.background = config.macros.calendar.todaybg;
				if(window.findTiddlersWithReminders == null) {
					var link = createTiddlyLink(daycell, title, false);
					link.appendChild(document.createTextNode(day));
				} else
					var button = createTiddlyButton(daycell, day, title, onClickCalendarDate);
			}
		}
		day++;
	}
}
//}}}
//{{{
// Create a pop-up containing:
// * a link to a tiddler for this date
// * a 'new tiddler' link to add a reminder for this date
// * links to current reminders for this date
// NOTE: this code is only used if [[ReminderMacros]] is installed AND [[DatePlugin]] is //not// installed.
function onClickCalendarDate(ev) { ev=ev||window.event;
	var d=new Date(this.getAttribute('title')); var date=d.formatString(config.macros.calendar.journalDateFmt);
	var p=Popup.create(this);  if (!p) return;
	createTiddlyLink(createTiddlyElement(p,'li'),date,true);
	var rem='\\n\\<\\<reminder day:%0 month:%1 year:%2 title: \\>\\>';
	rem=rem.format([d.getDate(),d.getMonth()+1,d.getYear()+1900]);
	var cmd="<<newTiddler label:[[new reminder...]] prompt:[[add a new reminder to '%0']]"
		+" title:[[%0]] text:{{store.getTiddlerText('%0','')+'%1'}} tag:%2>>";
	wikify(cmd.format([date,rem,config.options.txtCalendarReminderTags]),p);
	createTiddlyElement(p,'hr');
	var t=findTiddlersWithReminders(d,[0,31],null,1);
	for(var i=0; i<t.length; i++) {
		var link=createTiddlyLink(createTiddlyElement(p,'li'), t[i].tiddler, false);
		link.appendChild(document.createTextNode(t[i]['params']['title']));
	}
	Popup.show(); ev.cancelBubble=true; if (ev.stopPropagation) ev.stopPropagation(); return false;
}
//}}}
//{{{
function calendarMaxDays(year, mon)
{
	var max = config.macros.calendar.monthdays[mon];
	if(mon == 1 && (year % 4) == 0 && ((year % 100) != 0 || (year % 400) == 0)) max++;
	return max;
}
//}}}
//{{{
function createCalendarDayRows(cal, year, mon)
{
	var row = createTiddlyElement(cal, 'tr');
	var first1 = (new Date(year, mon, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first1 < 0) first1 = first1 + 7;
	var day1 = -first1 + 1;
	var first2 = (new Date(year, mon+1, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first2 < 0) first2 = first2 + 7;
	var day2 = -first2 + 1;
	var first3 = (new Date(year, mon+2, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first3 < 0) first3 = first3 + 7;
	var day3 = -first3 + 1;

	var max1 = calendarMaxDays(year, mon);
	var max2 = calendarMaxDays(year, mon+1);
	var max3 = calendarMaxDays(year, mon+2);

	while(day1 <= max1 || day2 <= max2 || day3 <= max3) {
		row = createTiddlyElement(cal, 'tr');
		createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;
		createCalendarDays(row, 0, day2, max2, year, mon+1); day2 += 7;
		createCalendarDays(row, 0, day3, max3, year, mon+2); day3 += 7;
	}
}
//}}}
//{{{
function createCalendarDayRowsSingle(cal, year, mon)
{
	var row = createTiddlyElement(cal, 'tr');
	var first1 = (new Date(year, mon, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first1 < 0) first1 = first1+ 7;
	var day1 = -first1 + 1;
	var max1 = calendarMaxDays(year, mon);
	while(day1 <= max1) {
		row = createTiddlyElement(cal, 'tr');
		createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;
	}
}
//}}}
//{{{
setStylesheet('.calendar, .calendar table, .calendar th, .calendar tr, .calendar td { text-align:center; } .calendar, .calendar a { margin:0px !important; padding:0px !important; }', 'calendarStyles');
//}}}
/***
| Name:|Clock2|
| Author:|Simon Baird|
| Description:|A skinnable, sizeable analog clock|
| Source:|http://tiddlyspot.com/mptw/#Clock2|
| Requires:|Firefox 1.5.x or maybe Safari|
| Version:|1.0.6|
| Date:|8-Jul-2008|
!!Note
* Does not work in IE or Opera due to lack of canvas support.
* If you make a nice skin send it to me and I will include it here.
*I'm not actively maintaining this plugin
* See also http://randomibis.com/coolclock/
!!Ideas
* Can we support IE with this? http://sourceforge.net/projects/excanvas
* Skin should specify order of drawing so things can be on top of other things
* Fix it so we can have filled and/or stroked elements
* Skin should allow any number of moving and static elements
* Make download and example for non-TW use
* Make floating draggable?
!!Examples
{{{
<<clock2 fancy>><<clock2 120>>
<<clock2 chunkySwiss>> <<clock2 60 chunkySwiss noSeconds>><<clock2 '{
	outerBorder: { lineWidth: 60, radius:55, color: "#dd8877", alpha: 1 },
	smallIndicator: { lineWidth: 4, startAt: 80, endAt: 95, color: "white", alpha: 1 },
	largeIndicator: { lineWidth: 12, startAt: 77, endAt: 89, color: "#dd8877", alpha: 1 },
	hourHand: { lineWidth: 15, startAt: -15, endAt: 50, color: "white", alpha: 1 },
	minuteHand: { lineWidth: 10, startAt: 24, endAt: 200, color: "#771100", alpha: 0.6 },
	secondHand: { lineWidth: 3, startAt: 22, endAt: 83, color: "green", alpha: 0 },
	secondDecoration: { lineWidth: 1, startAt: 52, radius: 26, fillColor: "white", color: "red", alpha: 0.2 }
}'>>

}}}
<<clock2 fancy>><<clock2 120>>
<<clock2 chunkySwiss>> <<clock2 60 chunkySwiss noSeconds>><<clock2 '{
	outerBorder: { lineWidth: 60, radius:55, color: "#dd8877", alpha: 1 },
	smallIndicator: { lineWidth: 4, startAt: 80, endAt: 95, color: "white", alpha: 1 },
	largeIndicator: { lineWidth: 12, startAt: 77, endAt: 89, color: "#dd8877", alpha: 1 },
	hourHand: { lineWidth: 15, startAt: -15, endAt: 50, color: "white", alpha: 1 },
	minuteHand: { lineWidth: 10, startAt: 24, endAt: 200, color: "#771100", alpha: 0.6 },
	secondHand: { lineWidth: 3, startAt: 22, endAt: 83, color: "green", alpha: 0 },
	secondDecoration: { lineWidth: 1, startAt: 52, radius: 26, fillColor: "white", color: "red", alpha: 0.2 }
}'>>

See also BigClock.
!!Code
***/
//{{{

window.CoolClock = function(canvasId,displayRadius,skinId,showSecondHand) {
	return this.init(canvasId,displayRadius,skinId,showSecondHand);
}

CoolClock.config = {
	clockTracker: {},
	tickDelay: 1000,
	longTickDelay: 15000,
	defaultRadius: 85,
	renderRadius: 100,
	defaultSkin: "swissRail",
	skins:	{
		// try making your own...
		swissRail: {
			outerBorder: { lineWidth: 1, radius:95, color: "black", alpha: 1 },
			smallIndicator: { lineWidth: 2, startAt: 89, endAt: 93, color: "black", alpha: 1 },
			largeIndicator: { lineWidth: 4, startAt: 80, endAt: 93, color: "black", alpha: 1 },
			hourHand: { lineWidth: 8, startAt: -15, endAt: 50, color: "black", alpha: 1 },
			minuteHand: { lineWidth: 7, startAt: -15, endAt: 75, color: "black", alpha: 1 },
			secondHand: { lineWidth: 1, startAt: -20, endAt: 85, color: "red", alpha: 1 },
			secondDecoration: { lineWidth: 1, startAt: 70, radius: 4, fillColor: "red", color: "red", alpha: 1 }
		},
		chunkySwiss: {
			outerBorder: { lineWidth: 5, radius:97, color: "black", alpha: 1 },
			smallIndicator: { lineWidth: 4, startAt: 89, endAt: 93, color: "black", alpha: 1 },
			largeIndicator: { lineWidth: 8, startAt: 80, endAt: 93, color: "black", alpha: 1 },
			hourHand: { lineWidth: 12, startAt: -15, endAt: 60, color: "black", alpha: 1 },
			minuteHand: { lineWidth: 10, startAt: -15, endAt: 85, color: "black", alpha: 1 },
			secondHand: { lineWidth: 4, startAt: -20, endAt: 85, color: "red", alpha: 1 },
			secondDecoration: { lineWidth: 2, startAt: 70, radius: 8, fillColor: "red", color: "red", alpha: 1 }
		},
		fancy: {
			outerBorder: { lineWidth: 5, radius:95, color: "green", alpha: 0.7 },
			smallIndicator: { lineWidth: 1, startAt: 80, endAt: 93, color: "black", alpha: 0.4 },
			largeIndicator: { lineWidth: 1, startAt: 30, endAt: 93, color: "black", alpha: 0.5 },
			hourHand: { lineWidth: 8, startAt: -15, endAt: 50, color: "blue", alpha: 0.7 },
			minuteHand: { lineWidth: 7, startAt: -15, endAt: 92, color: "red", alpha: 0.7 },
			secondHand: { lineWidth: 10, startAt: 80, endAt: 85, color: "blue", alpha: 0.3 },
			secondDecoration: { lineWidth: 1, startAt: 30, radius: 50, fillColor: "blue", color: "red", alpha: 0.15 }
		}
	}
};

CoolClock.prototype = {
	init: function(canvasId,displayRadius,skinId,showSecondHand) {
		this.canvasId = canvasId;
		this.displayRadius = displayRadius || CoolClock.config.defaultRadius;
		this.skinId = skinId || CoolClock.config.defaultSkin;
		this.showSecondHand = typeof showSecondHand == "boolean" ? showSecondHand : true;
		this.tickDelay = CoolClock.config[ this.showSecondHand ? "tickDelay" : "longTickDelay"];

		this.canvas = document.getElementById(canvasId);
		this.canvas.setAttribute("width",this.displayRadius*2);
		this.canvas.setAttribute("height",this.displayRadius*2);

		this.renderRadius = CoolClock.config.renderRadius; 

		var scale = this.displayRadius / this.renderRadius;
		this.ctx = this.canvas.getContext("2d");
		this.ctx.scale(scale,scale);

		CoolClock.config.clockTracker[canvasId] = this;
		this.tick();
		return this;
	},

	fullCircle: function(skin) {
		this.fullCircleAt(this.renderRadius,this.renderRadius,skin);
	},

	fullCircleAt: function(x,y,skin) {
		with (this.ctx) {
			save();
			globalAlpha = skin.alpha;
			lineWidth = skin.lineWidth;
			if (!document.all)
				beginPath();
			arc(x, y, skin.radius, 0, 2*Math.PI, false);
			if (skin.fillColor) {
				fillStyle = skin.fillColor
				fill();
			}
			else {
				// XXX why not stroke and fill
				strokeStyle = skin.color;
				stroke();
			}
			restore();
		}
	},

	radialLineAtAngle: function(angleFraction,skin) {
		with (this.ctx) {
			save();
			translate(this.renderRadius,this.renderRadius);
			rotate(Math.PI * (2 * angleFraction - 0.5));
			globalAlpha = skin.alpha;
			strokeStyle = skin.color;
			lineWidth = skin.lineWidth;
			if (skin.radius) {
				this.fullCircleAt(skin.startAt,0,skin)
			}
			else {
				beginPath();
				moveTo(skin.startAt,0)
				lineTo(skin.endAt,0);
				stroke();
			}
			restore();
		}
	},

	render: function(hour,min,sec) {
		var skin = CoolClock.config.skins[this.skinId];
		this.ctx.clearRect(0,0,this.renderRadius*2,this.renderRadius*2);

		this.fullCircle(skin.outerBorder);

		for (var i=0;i<60;i++)
			this.radialLineAtAngle(i/60,skin[ i%5 ? "smallIndicator" : "largeIndicator"]);
				
		this.radialLineAtAngle((hour+min/60)/12,skin.hourHand);
		this.radialLineAtAngle((min+sec/60)/60,skin.minuteHand);
		if (this.showSecondHand) {
			this.radialLineAtAngle(sec/60,skin.secondHand);
			this.radialLineAtAngle(sec/60,skin.secondDecoration);
		}
	},


	nextTick: function() {
		setTimeout("CoolClock.config.clockTracker['"+this.canvasId+"'].tick()",this.tickDelay);
	},

	stillHere: function() {
		return document.getElementById(this.canvasId) != null;
	},

	refreshDisplay: function() {
		var now = new Date();
		this.render(now.getHours(),now.getMinutes(),now.getSeconds());
	},

	tick: function() {
		if (this.stillHere()) {
			this.refreshDisplay()
			this.nextTick();
		}
	}
}



config.macros.clock2 = {
	counter: 0,
	handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		var size,skin,seconds,skinData;
		for (var i=0;i<params.length;i++)
			if (/^\d+$/.exec(params[i]))
				size = params[i];
			else if (params[i] == "noSeconds")
				seconds = false;
			else if (/^\{/.exec(params[i]))
				eval("skinData = " + params[i]);
			else
				skin = params[i];
		if (skinData) {
			CoolClock.config.skins.customSkin = skinData;
			skin = "customSkin";
		}
		var canvas = createTiddlyElement(place,"canvas","clockcanvas"+this.counter);
		var clock = new CoolClock("clockcanvas"+this.counter,size,skin,seconds);
		this.counter++;
	}
}

//}}}
<<tag interface>> <<tag syntaxe>>
!@@bgcolor(orange):A partir de la semaine du 16 mars les séances (cours/TP) seront organisées à distance aux heures habituelles de l'EDT (i.e. durant le même créneau horaire)@@
@@Pendant la séance chaque étudiant doit rédiger un ''__rapport de TP__'' contenant les réponses aux questions et envoyer son fichier (.doc ou .pfd) par [[courriel|philippe.collard@univ-cotedazur.fr]] au plus tard en fin de la journée.@@
> @@ - Les cours et les sujets de TP seront accessibles en début de séance sur ce [[site|PhilippeCollard.com]].@@
> @@ - Durant la séance nous utiliserons SKIPE ; en cas de problème de connexion vous pourrez poser vos questions directement par [[courriel|philippe.collard@univ-cotedazur.fr]].@@
> @@ - Le rapport pourra contenir du code informatique et des copies d'écran ; chaque question doit être numérotée et chaque réponse doit être rédigée afin de montrer que vous maitrisez la solution proposée.@@
> @@ - Les corrections seront disponibles lors de la séance suivante.@@
----
@@bgcolor(orange):Semaine <<today 0WW>>/52@@
> Licence
>> [[L2 informatique|L2 Informatique]]
>> [[L3 informatique|L3 Informatique]]
>> [[L3 MASS|L3 MASS]]
> Master
>> [[M1 Informatique]]
>> [[M2 Informatique]]
>> [[M2 MIAGE]]
/%* [[L3 MIAGE|Licence MIAGE]]%/
[[Publications Récentes]]
[[Diffusion des savoirs]]






!@@bgcolor(orange):A partir de la semaine du 16 mars les séances (cours/TP) seront organisées à distance aux heures habituelles de l'EDT (i.e. durant le même créneau horaire)@@
@@Pendant la séance chaque étudiant doit rédiger un ''__rapport de TP__'' contenant les réponses aux questions et envoyer son fichier (.doc ou .pfd) par [[courriel|philippe.collard@univ-cotedazur.fr]] au plus tard en fin de la journée.@@
> @@ - Les cours et les sujets de TP seront accessibles en début de séance sur ce [[site|PhilippeCollard.com]].@@
> @@ - Durant la séance nous utiliserons SKIPE ; en cas de problème de connexion vous pourrez poser vos questions directement par [[courriel|philippe.collard@univ-cotedazur.fr]].@@
> @@ - Le rapport pourra contenir du code informatique et des copies d'écran ; chaque question doit être numérotée et chaque réponse doit être rédigée afin de montrer que vous maitrisez la solution proposée.@@
> @@ - Les corrections seront disponibles lors de la séance suivante.@@
! Notice
!! [[Encyclopædia Universalis|http://www.universalis.fr/auteurs/philippe-collard/]]
-- [[Vie Artificielle||http://www.universalis.fr/encyclopedie/vie-artificielle/]]
-- [[Algorithmes Génétiques|http://www.universalis.fr/encyclopedie/algorithmique/6-algorithmes-genetiques/]]
-- [[Les automates cellulaires et le vivant|https://www.amazon.fr/science-au-présent-Yves-Gautier/dp/2852295121]] in "La Science au Présent 2005", ouvrage collectif.
! Ouvrages

[<img[a|./couverturePPUR_V2.png]]
-- ''Systèmes Complexes'' --
-- Philippe Collard, Sébastien Verel, Manuel Clergue
-- Editeur  [[Presses polytechniques et universitaires romandes|http://www.ppur.com/en/product/612/9782880749910/Systemes%20complexes]], Publisher of the EPFL Press, Lausanne,  [[ISBN : 978-2-88074-991-0|http://www.systemescomplexes.fr]], 306 pages







!
[<img[a|./couvertureSAP2005.gif]]
-- ''Les automates cellulaires et le vivant'' --
-- Philippe Collard
-- [[La Science au Présent|http://www.universalis.fr/encyclopedie/automates-cellulaires/]] : complément annuel scientifique de l'Encyclopædia Universalis (ouvrage collectif)
-- Encyclopædia Universalis [[ISBN : 2-85229-512-1|http://www.universalis.fr/encyclopedie/automates-cellulaires/]]






!
[<img[a|./couvertureProlog.png]]
-- ''Programmation Déclarative et Impérative en Prolog'' --
-- Philippe Collard
-- Editeur [[Masson|http://www.amazon.fr/Programmation-imp%C3%A9rative-programmation-d%C3%A9clarative-Prolog/dp/2225828091]], Collection Manuels Informatiques, Paris, [[ISBN : 2-225-82809-1 |http://books.google.fr/books/about/Programmation_d%C3%A9clarative_et_imp%C3%A9rativ.html?id=4pGGAAAAIAAJ]]







!
[<img[a|./couverturePSA.gif]]
-- ''Programmation Structurée en Assembleur'' (Trois ouvrages : 6502 - 80286 - 68000) --
-- Editeur  [[Masson|http://www.amazon.fr/Programmation-structur%C3%A9e-assembleur-8086-80286/dp/2225813639]], Collection Manuels Informatiques, Paris, [[ISBN : 2-225-81363-9 |http://www.guideinformatique.com/livre---  programmation_structuree_en_assembleur_8_086_et_80_286-4817.htm]]







!
• [[Catherine Escazut|https://www.theses.fr/1995NICE4843]] 
//Contribution aux systèmes de classifieurs : étude des mécanismes de spécialisation et extension du langage de représentation//
(soutenue en 1995)

• [[Olivier Michel|https://www.theses.fr/1996NICE5013]] 
//Expériences en Neuro-éthologie Artificielle. EVOTS : une méthodologie évolutionniste appliquée en robotique mobile//
Durant les deux premières années, cette thèse a été dirigée par Joëlle Biondi
(soutenue en 1996)

• [[Manuel Clergue|https://www.theses.fr/1999NICE5274]] 
//Dynamique des populations et polymorphisme dans un  algorithme génétique//
(soutenue en 1999)

• [[Alessio Gaspar|https://www.theses.fr/2000NICE5423]] 
//Etude de l’adaptativité de systèmes évolutionnaires en environnement à fitness dynamique//
(soutenue en 2000)

• [[Gilles Enée|https://www.theses.fr/2003NICE4015]] 
//Emergence de structures de communication dans les systèmes multi-agents par des techniques évolutionnaires//
(co-direction Cathy Escazut, thèse soutenue en janvier 2003)

• [[Michaël Defoin-Platel|https://www.theses.fr/2004NICE4109]] 
//Homologie en Programmation Génétique&nbsp;: Application à la résolution de problèmes inverses//
(convention CIFRE, co-direction Manuel Clergue, soutenue en 2004) 

• [[Sébastien Vérel|https://www.theses.fr/2005NICE4111]]
//Paysages de fitness et réseaux de neutralité//
(soutenue en 2005)

• [[David Simoncini|https://www.theses.fr/2009NICE4079]] 
//Sélection Topologique dans les Algorithmes Evolutionnaires Cellulaires : Etude du Compromis Exploration/Exploitation//
(co-direction Manuel Clergue, soutenue en 2009)

• [[Maroun Bercachi|https://www.theses.fr/2010NICE4108]] 
//Algorithmes Evolutionnaires à états :  application à des problèmes d'optimisation combinatoire difficiles//
(soutenue en 2010)

<div class='toolbar' macro='toolbar +saveTiddler
-cancelTiddler deleteTiddler'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div class="editLabel"> </div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span
macro='message views.editor.tagPrompt'></span><span
macro='tagChooser'></span></div>
<div class='editor' macro='edit text'></div>
@@color(blue):Me Contacter au [[Département Informatique]]@@ ([[UNSA|http://portail.unice.fr/jahia/jsp/index.jsp]])
/***
|Name|FullScreenPlugin|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#FullScreenPlugin|
|Version|1.1|
|Requires|~TW2.x|
!Description:
Toggle between viewing tiddlers fullscreen and normally. Very handy for when you need more viewing space.

!Demo:
Click the ↕ button in the toolbar for this tiddler. Click it again to turn off fullscreen.

!Installation:
Copy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.
Edit the ViewTemplate to add the fullscreen command to the toolbar.

!History:
*25-07-06: ver 1.1
*20-07-06: ver 1.0

!Code
***/
//{{{
var lewcidFullScreen = false;

config.commands.fullscreen =
{
            text:"FullScreen",
            tooltip:"Fullscreen mode"
};

config.commands.fullscreen.handler = function (event,src,title)
{
            if (lewcidFullScreen == false)
               {
                lewcidFullScreen = true;
                setStylesheet('#sidebar, .header ,  #mainMenu{display:none;} #displayArea{margin:0em 0 0 0 !important;}',"lewcidFullScreenStyle");
               }
            else
               {
                lewcidFullScreen = false;
                setStylesheet(' ',"lewcidFullScreenStyle");
               }
}

config.macros.fullscreen={};
config.macros.fullscreen.handler =  function(place,macroName,params,wikifier,paramString,tiddler)
{
        var label = params[0]||" «Screen» ";
        var tooltip = params[1]||"Fullscreen mode";
        createTiddlyButton(place,label,tooltip,config.commands.fullscreen.handler);
}

var lewcid_fullscreen_closeTiddler = Story.prototype.closeTiddler;
Story.prototype.closeTiddler =function(title,animate,slowly)
{
           lewcid_fullscreen_closeTiddler.apply(this,arguments);
           if (story.isEmpty() && lewcidFullScreen == true)
              config.commands.fullscreen.handler();
}


Slider.prototype.lewcidStop = Slider.prototype.stop;
Slider.prototype.stop = function()
{
           this.lewcidStop();
           if (story.isEmpty() && lewcidFullScreen == true)
              config.commands.fullscreen.handler();
}
//}}}

*You can create ''Bold'' text by enclosing it in pairs of single quotes ('''')
*You can create ==Strikethrough== text by enclosing it in pairs of equal signs (====)
*You can __Underline__ text by enclosing it in pairs of underscores (____)
*You can create //Italic// text by enclosing it in pairs of forward slashes (////)
*You can create ^^superscript^^ text by enclosing it in pairs of carrats (^^^^)
*You can create ~~subscript~~ text by enclosing it in pairs of tildes (~~~~)
*You can change the text's @@color(green):color@@ by enclosing it in pairs of at-signs (@@@@) and specifying a text color using the phrase ''color(yourcolorhere):''
*You can change the text's @@bgcolor(red):background color@@ by enclosing it in pairs of at-signs (@@@@) and specifying a background text color using the phrase ''bgcolor(yourcolorhere):''
! --8- Programmation Orientée Agent en [[NetLogo|https://ccl.northwestern.edu/netlogo/]] (1 avril 2020)--
>[[Programmation Netlogo|./_enseignement_fichiers/licenceInfo/ISI/introduction/ProgrammationNetLogo.pdf]]
>[[TP individuel à rendre par email|./_enseignement_fichiers/licenceInfo/ISI/introduction/IntroNetLogo.html]]
! --9- Procession vers l'Intelligence collective (8 avril 2020)--
>[[Cours|./_enseignement_fichiers/licenceInfo/ISI/procession/introduction.pdf]]
>[[TP individuel à rendre par email|./_enseignement_fichiers/licenceInfo/ISI/procession/TP_procession.html]]
! --10- Peer Learning (15 avril 2020)--
>[[COURS|./_enseignement_fichiers/licenceInfo/ISI/peer-learning/MMA.pdf]]
>[[TP individuel à rendre avant la fin de la journée par email|./_enseignement_fichiers/licenceInfo/ISI/peer-learning/TP-peer-learning.html]]
! --11- Coopération à Manhattan ! (22 avril 2020)--
>[[TP individuel à rendre avant la fin de la journée par email|./_enseignement_fichiers/licenceInfo/ISI/manhattan/TP-manhattan.html]]
! @@12- Démarrage du projet (29 avril 2020)@@




Type the text for 'Intelligence collective : Programmation Orientée Agent (netLOGo)'
!@@bgcolor(orange):A partir du mercredi 18 mars les séances (cours/TP) seront organisées à distance aux heures habituelles de l'EDT (i.e. durant le même créneau horaire : c'est à dire 8h-12h)@@
@@Pendant la séance chaque étudiant doit rédiger un ''__rapport de TP__'' contenant les réponses aux questions et envoyer son fichier (.doc ou .pfd) par [[courriel|philippe.collard@univ-cotedazur.fr]] au plus tard en fin de journée.@@
> @@ - Les cours et les sujets de TP seront accessibles en début de séance sur ce [[site|PhilippeCollard.com]].@@
> @@ - Durant la séance nous utiliserons SKIPE (me transmettre votre identifiant si vous en avez un)@@
> @@ - En cas de problème de connexion avec SKIPE vous pourrez poser vos questions directement par [[courriel|philippe.collard@univ-cotedazur.fr]].@@
> @@ - Le rapport pourra contenir du code informatique et des copies d'écran ; chaque question doit être numérotée et chaque réponse doit être rédigée afin de montrer que vous maitrisez la solution proposée.@@
! Évaluation (Semestre 4 : 2020)
>--TD machine (travaux, activité, présence) : 20%--
>--Projet : 30%--
>--CT : 50% (xx avril : 2h - sans document - sur feuille - salle ~PV313) --
Nouvelles modalités : ''Controle Continu Intégral''
>TD machine (travaux, activité, présence) : 50%
> Projet : 50%
! Organisation
12 séances : 2h de cours (mercredi 8h-10h salle ~PV313) + 2h de TP (mercredi 10h-15 12h15 salle ~PV313) 
! --Partie 1 : [[Intelligence individuelle : langage Prolog|./_enseignement_fichiers/licenceInfo/ISI/td.html]]--
! --Partie 2 : [[Intelligence collective : langage NetLogo]]--
! @@Projet final (individuel) : séance de bootstrap en visio le 29 avril 2020 à partir de 8h@@
Il s'agit globalement de développer en PROLOG votre propre ''Système Expert diagnostiqueur'' (SE).
1) Votre SE possèdera les caractéristiques suivantes :
* la base de connaissances (BC) sera représentée par des ''faits'' et des ''règles de production''.
** les règles seront de la forme  {{{si (C1 et C2 et ...) alors (T1)}}} ou bien {{{si (C1 et C2 et ...) alors (T1 et T2 et ...)}}} 
** il n'y aura pas (a priori) de faits initiaux ; les faits sont ajoutés dynamiquement selon les réponses de l'utilisateur
* les règles seront invoquées en ''chainage arrière''
* régime par tentative
* interactif (i.e. le système interroge l'utilisateur)
** avec explication de type "pourquoi"
** avec possibilité de "passer" une question
* capacité d'explication de type "comment"
2) Vous devez renseigner la base de connaissances avec des règles issues d'un de vos ''domaines d'expertise personnels''.
3) Proposez des ''scénarios'' afin de (dé)montrer que votre MI fonctionne correctement et que votre BC est pertinente !

--La soutenance orale sera préparée avec latex-beamer (10mn de présentation + 5mn de questions par projet)--
Vous devez envoyer votre ''rapport'' (.pdf) et votre ''code Prolog'' (.pl) [[à cette adresse|mailto: philippe.collard@unice.fr]] avant le __10 mai 2020__.
! @@[[Introduction Systèmes Intelligents (ISI)]]@@

! [[Projet Scientifique Informatique]]

! [[Introduction Systèmes Complexes|Licence 3/Informatique/Introduction Systèmes Complexes]]
! @@[[Programmation Orientée Agent|Licence 3/MASS/Programmation Orientée Agent]]@@

! [[Programmation Orientée Objet|Licence 3/MASS/Programmation Orientée Objet]]

! [[Programmation C|Licence 3/MASS/Programmation C]]
!@@bgcolor(orange):A partir du jeudi 19 mars les séances (cours/TP) seront organisées à distance aux heures habituelles de l'EDT (i.e. durant le même créneau horaire : c'est à dire 13h30-16h45)@@
@@Pendant la séance chaque étudiant doit rédiger un ''__rapport de TP__'' contenant les réponses aux questions et envoyer son fichier (.doc ou .pfd) par [[courriel|philippe.collard@univ-cotedazur.fr]] au plus tard en fin de la journée.@@
> @@ - Les cours et les sujets de TP seront accessibles en début de séance sur ce [[site|PhilippeCollard.com]].@@
> @@ - Durant la séance nous utiliserons SKIPE (me transmettre votre identifiant si vous en avez un) ; en cas de problème de connexion avec SKIPE vous pourrez poser vos questions directement par [[courriel|philippe.collard@univ-cotedazur.fr]].@@
> @@ - Le rapport pourra contenir du code informatique et des copies d'écran ; chaque question doit être numérotée et chaque réponse doit être rédigée afin de montrer que vous maitrisez la solution proposée.@@
> @@ - Les corrections seront disponibles lors de la séance suivante.@@
''EVALUATION''
--*__CONTROLE TERMINAL__ (50%) : @@XX avril 2020 - salle 313 - de 16h à 17h30 - sans document.@@ --
*__PROJET individuel__  (50%) :  A rendre au plus tard le @@10 mai 2020@@ [[Cliquer ICI pour envoyer par courriel le rapport (.pdf) et le code (.nlogo)| mailto: philippe.collard@gmail.com]] 
*__Travaux TP__ (50%)
! --1) Introduction aux Systèmes Complexes (23 janvier 2020)--
>[[Introduction|./_enseignement_fichiers/licenceInfo/IntroSC/introduction/introduction.pdf]]
>[[Programmation NetLogo|./_enseignement_fichiers/licenceInfo/IntroSC/progNetLogo/ProgrammationNetLogo.pdf]]
>[[TP|./_enseignement_fichiers/licenceInfo/IntroSC/progNetLogo/IntroNetLogo.html]]
! --2) Modèle de Schelling (30 janvier 2020)--
>[[COURS|./_enseignement_fichiers/licenceInfo/IntroSC/schelling3/micro-macro.pdf]]
>[[TP|./_enseignement_fichiers/licenceInfo/IntroSC/schelling3/tp-schelling.html]]
! --3)  Automate cellulaire (1D et 2D) (6 février 2020)--
>[[COURS|./_enseignement_fichiers/licenceInfo/IntroSC/AC/AC.pdf]]
>[[TP|./_enseignement_fichiers/licenceInfo/IntroSC/AC/AC.html]]
! --4) Chaos déterministe (13 février 2020)--
>[[COURS|./_enseignement_fichiers/licenceInfo/IntroSC/chaos/equation-logistique.pdf]]
>[[TP|./_enseignement_fichiers/licenceInfo/IntroSC/chaos/TP-logistique.html]]
! --5) Morphogénèse : Modèle du "French Flag" (5 mars 2020)--
>[[COURS|./_enseignement_fichiers/licenceInfo/IntroSC/morphogenese/morphogeneseETUDIANT.pdf]]
>[[TP|./_enseignement_fichiers/licenceInfo/IntroSC/morphogenese/TP-Morphogenese.html]]
>[[livre_Prochiantz|./_enseignement_fichiers/licenceInfo/IntroSC/morphogenese/prochiantz-geometrie-vivant.jpg]]
! --6) Morphogénèse : Modèle de réaction-diffusion de Turing (12 mars 2020)--
>[[COURS|./_enseignement_fichiers/licenceInfo/IntroSC/morphogenese/morphogeneseETUDIANT.pdf]]
>[[TP|./_enseignement_fichiers/licenceInfo/IntroSC/morphogenese/TP-Morphogenese.html]]
>[[article_Turing|./_enseignement_fichiers/licenceInfo/IntroSC/morphogenese/turing.pdf]]
! --7) Modèle de diffusion de Bass (19 mars 2020)--
>[[COURS|./_enseignement_fichiers/licenceInfo/IntroSC/bass/bass-etudiant.pdf]]
>[[MOOC de M. Jackson à regarder avant de faire le TP|./_enseignement_fichiers/licenceInfo/IntroSC/bass/Bass-Model-coursera.mp4]]
>[[TP|./_enseignement_fichiers/licenceInfo/IntroSC/bass/TP-bass.html]]
! --8) Modèle d'apprentissage (26 mars 2020)--
>[[COURS|./_enseignement_fichiers/licenceInfo/IntroSC/peer-learning/MMA.pdf]]
>[[TP|./_enseignement_fichiers/licenceInfo/IntroSC/peer-learning/TP-peer-learning.html]]
! --9) Mobilité des véhicules dans une ville (modèle de Manhattan) (2 avril 2020)--
>[[Sujet|./_enseignement_fichiers/licenceInfo/IntroSC/manhattan/TP-manhattan.html]]
! --10) Intelligence collective (9 avril 2020)--
>[[COURS|./_enseignement_fichiers//licenceInfo/IntroSC/IC/cours_IC_2020.pdf]]
>[[TP|./_enseignement_fichiers//licenceInfo/IntroSC/IC/TP-ic.html]]
! --11) Propagation d'une épidémie (16 avril 2020)--
>[[COURS|./_enseignement_fichiers/licenceInfo/IntroSC/epidemie/epidemie.pdf]]
>[[TP|./_enseignement_fichiers/licenceInfo/IntroSC/epidemie/TP-epidemie.html]]
! @@12) Démarrage du projet (23 avril 2020)@@

! @@Projet 2020 : à rendre, au plus tard le 10 mai 2020, par email, un rapport (.pdf) + Q4.nlogo + Q5.nlogo@@
Pour ce projet, il sera nécessaire de simuler :
# un modèle de ''ville'' (ici le modèle de ''manhattan'' de la séance 9)
# un modèle de ''propagation'' (ici le modèle ''SI'' de la séance 11)
# un modèle de ''mobilité'' des piétons dans la ville
Le modèle de mobilité modélise les déplacements ''cycliques'' des individus dans la ville ; par exemple, lorsque l'on va de son domicile à son lieu de travail et retour.
*Le nombre de piétons est contrôlé par une variable globale (slider) de type float dans [0..1] ; le nombre maximum (quand densité=1) de piétons est égal au double du nombre de carrefours.
*La trajectoire suivie par chaque piéton est un circuit fermé de forme ''carré'' parcouru en ''boucle''. 
*La vitesse de déplacement est constante
*La longueur de la trajectoire (i.e. taille du carré) est identique pour tous
*La ''mobilité'' des piétons est représentée par le __nombre de blocs d'immeubles rencontrés sur un coté de la trajectoire__
*la {{{mobilite}}} est une variable globale (slider) de type entier dans [1..10] qui varie de 1 blocs à 10 blocs d'immeuble selon la simulation choisie
**une valeur de mobilité faible correspondant à des piétons plutôt sédentaires qui ne s'éloignent pas trop de leur point de départ
**une valeur élevée correspond à de "grands voyageurs"
@@QUESTIONS :@@
# (2 points) Simuler le modèle de Manhattan (i.e. uniquement des rues, des carrefours et des blocs d'immeuble)
# (2 points) Simuler le modèle de mobilité en créant des piétions (selon une {{{densité}}} donnée) qui se déplacent dans les rues selon un circuit de forme carrée (selon une {{{mobilité}}} donnée)
# (5 points) Simuler le modèle de propagation ''SI'' en infectant initialement un seul piéton ; la propagation se fera par contact direct avec une probabilité {{{beta}}}.
# (6 points) Étudier l'influence de la mobilité sur le seuil de percolation (on pourra ici fixer beta=1), c'est-à-dire la valeur de la densité à partir de laquelle la propagation gagne au moins la moité de la population. On tracera la ''courbe'' donnant le seuil de percolation en fonction de la mobilité (Pour chaque point il faudra effectuer plusieurs expériences afin d'obtenir des résultats moyennés significatifs) et on donnera une ''interpolation'' de cette courbe ; vous pourrez tracer cette courbe en ''échelles log-log'' pour valider ou infirmer votre résultat.
# (5 points) Proposer une extension de la question 3 au modèle de propagation ''SIR'' ; par exemple, on pourra s'intéresser à l'influence de la {{{mobilité}}} sur le pic d'épidémie (en fixant les valeurs des paramètres {{{beta}}} et {{{gamma}}}).


10 TP :  le lundi à partir du 15 septembre (13h-15h)
5 TD : le mercredi à partir du 17 septembre (8h-10h) PAS DE TD le mercredi 8 octobre
-- CC le mercredi 22 octobre 8h-10h--
>[[serie1|./enseignement_fichiers/L3 MASS LP/serie1.html]] [[solution|./enseignement_fichiers/L3 MASS LP/serie1solution.html]]
>[[serie2|./enseignement_fichiers/L3 MASS LP/serie2.html]] [[solution|./enseignement_fichiers/L3 MASS LP/serie2solution.html]]
>[[serie3|./enseignement_fichiers/L3 MASS LP/serie3.html]] [[solution|./enseignement_fichiers/L3 MASS LP/serie3solution.html]]
>[[serie4|./enseignement_fichiers/L3 MASS LP/serie4.html]] [[solution|./enseignement_fichiers/L3 MASS LP/serie4solution.html]]
>[[serie5|./enseignement_fichiers/L3 MASS LP/serie5.html]] [[solution|./enseignement_fichiers/L3 MASS LP/serie5solution.html]]
>[[serie6|./enseignement_fichiers/L3 MASS LP/serie6.html]] [[solution|./enseignement_fichiers/L3 MASS LP/serie6solution.html]]
>[[serie7|./enseignement_fichiers/L3 MASS LP/serie7.html]] [[solution|./enseignement_fichiers/L3 MASS LP/serie7solution.html]]
COURS (1h30) : lundi salle Pv313 : 13h30-15h
~TPm (1h30x2) : lundi salle Pv313 : 15h15-18h15

Evaluation : CT (40%) + projet (30%) + ~TPm (30%)

!@@bgcolor(orange):A partir de la semaine du 16 mars les séances (cours/TP) seront organisées à distance aux heures habituelles de l'EDT (i.e. durant le même créneau horaire)@@
@@Pendant la séance chaque étudiant doit rédiger un ''__rapport de TP__'' contenant les réponses aux questions et envoyer son fichier (.doc ou .pfd) par [[courriel|philippe.collard@univ-cotedazur.fr]] au plus tard en fin de la journée.@@
> @@ - Les cours et les sujets de TP seront accessibles en début de séance sur ce [[site|PhilippeCollard.com]].@@
> @@ - Durant la séance nous utiliserons SKIPE ; en cas de problème de connexion vous pourrez poser vos questions directement par [[courriel|philippe.collard@univ-cotedazur.fr]].@@
> @@ - Le rapport pourra contenir du code informatique et des copies d'écran ; chaque question doit être numérotée et chaque réponse doit être rédigée afin de montrer que vous maitrisez la solution proposée.@@
> @@ - Les corrections seront disponibles lors de la séance suivante.@@

! 1- --Programmation Agent en Netlogo (27 janvier 2020) --
>[[programmation Netlogo|./_enseignement_fichiers/L3MassPOA/introduction/ProgrammationNetLogo.pdf]] + [[TP|./_enseignement_fichiers/L3MassPOA/introduction/IntroNetLogo.html]]
>[[Intro|./_enseignement_fichiers/L3MassPOA/introduction/introduction.pdf]] + [[TP|./_enseignement_fichiers/L3MassPOA/procession/procession.html]]
! 2- --Modèle de ségrégation de Schelling (3 février 2020)--
>[[COURS.pdf|./_enseignement_fichiers/L3MassPOA/schelling/micro-macro-etudiant.pdf]] + [[TP|./_enseignement_fichiers/L3MassPOA/schelling/tp-schelling.html]]
! 3- --Automate cellulaire (10 février 2020)--
>[[COURS.pdf|./_enseignement_fichiers/L3MassPOA/AC/AC.pdf]] + [[TP|./_enseignement_fichiers/L3MassPOA/AC/AC.html]]
! 4- --Processus de morphogénèse (2 mars 2020)--
>[[COURS.pdf|./_enseignement_fichiers/L3MassPOA/morphogenese/morphogeneseETUDIANT.pdf]]
>[[TP|./_enseignement_fichiers/L3MassPOA/morphogenese/TP-Morphogenese.html]]
! 5- --Chaos déterministe : équation logistique (9 mars 2020)--
>[[COURS|./_enseignement_fichiers/L3MassPOA/logistique/equation-logistique.pdf]]
>[[TP|./_enseignement_fichiers/L3MassPOA/logistique/TP-logistique.html]]
! 6- --Modèle de diffusion de Bass (lundi 16 mars 2020 de 13h30 à 18h15)--
>[[A regarder en premier : MOOC par M. Jackson sur le modèle de Bass|./_enseignement_fichiers/L3MassPOA/bass/Bass-Model-coursera.mp4]]
>[[COURS|./_enseignement_fichiers/L3MassPOA/bass/bass.pdf]]
>[[TP individuel à rendre par email|./_enseignement_fichiers/L3MassPOA/bass/TP-bass.html]]
! 7- --Peer Learning (lundi 23 mars 2020 de 13h30 à 18h15)--
>[[COURS|./_enseignement_fichiers/L3MassPOA/peer-learning/MMA.pdf]]
>[[TP individuel à rendre avant la fin de la journée par email|./_enseignement_fichiers/L3MassPOA/peer-learning/TP-peer-learning.html]]
! 8- --Préparation du projet (lundi 30 mars 2020 à partir de 13h30)--
>[[Sujet|./_enseignement_fichiers/L3MassPOA/projet/projet2020/L3_POA_2020_projet.html]] 


! XX avril 2020 : CT (13h30-15h - salle PV 313 - sans document) : exemple de [[SUJET|./_enseignement_fichiers/L3MassPOA/Examen/2019/ExamenPOAexemple.html]] 

! ''Évaluation'' 
>~CC1 : Travaux en TDM (30%)
>~CC2 : Projet (en binôme) (30%) @@color(red): A rendre au plus tard le __vendredi 22 décembre __@@
>CT : Ecrit (40%) : @@color(red): __lundi 2 décembre 10h15-11h45 amphi de Math__ @@ /%[[Exemple CT|./_enseignement_fichiers/licenceMASS/examen/exempleCT.pdf]]%/

!Nous sommes en semaine @@bgcolor(orange): <<today 0WW>> / 53@@

!''__Cours__'' : lundi 10h15 à 11h45  : amphi de Géologie à partir du lundi 16 septembre 
Support des cours : [[COURS1|./_enseignement_fichiers/licenceMASS/cours/coursJava1.pdf]], [[COURS2|./_enseignement_fichiers/licenceMASS/cours/coursJava2.pdf]], [[COURS3|./_enseignement_fichiers/licenceMASS/cours/coursJava3.pdf]], [[COURS4|./_enseignement_fichiers/licenceMASS/cours/coursJava4.pdf]]

--01. semaine 38--
--02. semaine 39--
--03. semaine 40--
--semaine 41-- @@color(red): PAS DE COURS@@
--04. semaine 42--
--05. semaine 43--
--semaine 44-- @@color(red): Pose pédagogique@@
--semaine 45-- @@color(red): PAS DE COURS@@ 
--semaine 46-- : @@color(red): 11 novembre@@
--06. semaine 47--
--07. semaine 48--
--semaine 49 @@color(red): Contrôle Terminal-- (10h15-11h45 amphi de Géologie)@@  @@color(red): [[EXEMPLE DE SUJET|./_enseignement_fichiers/licenceMASS/examen/2015/CT2015.pdf]]@@ 

! ''__Travaux Pratiques sur Machine__'' : groupe 1 (lundi 13h00 à 15h) - groupe 2 (lundi 15h15 à 17h15) - groupe 3 (lundi 17h30 à 19h30) : salle ~PV313 à partir du 16 septembre
Support des séances de ~TD machine  : [[SERIE1|./_enseignement_fichiers/licenceMASS/TD/serie1/serie1.html]], [[SERIE2|./_enseignement_fichiers/licenceMASS/TD/serie2/serie2.html]], [[SERIE3|./_enseignement_fichiers/licenceMASS/TD/serie3/serie3.htm]], [[SERIE4|./_enseignement_fichiers/licenceMASS/TD/serie4/serie4.htm]], [[SERIE5|./_enseignement_fichiers/licenceMASS/TD/serie5/serie5new.htm]]

--01. semaine 38-- @@color(red):  DEBUT ~SERIE1@@
--02. semaine 39--  @@color(red): FIN ~SERIE1 + DEBUT ~SERIE2@@
--03. semaine 40-- @@color(red):  ~SERIE2@@
--04. semaine 41--  @@color(red): FIN ~SERIE2 + DEBUT ~SERIE3@@
--05. semaine 42--  @@color(red): ~SERIE3@@
--06. semaine 43--  @@color(red): DEBUT ~SERIE4@@
--semaine 44-- @@color(red): Pose pédagogique@@
--07. semaine 45-- @@color(red): ~SERIE4@@
--semaine 46-- : @@color(red): 11 novembre@@
--08. semaine 47-- @@color(red): FIN ~SERIE4 + DEBUT ~SERIE5@@
--09. semaine 48-- @@color(red): ~SERIE5@@
--10. semaine 49-- @@color(red): Démarrage du PROJET@@
11. semaine 50 @@color(red): Suite du PROJET (pas d'appel) @@

 [[DOCUMENTATION API JAVA|https://www2.cs.duke.edu/csed/java/jdk1.4.2/docs/api/]]
 [[DOCUMENTATION API JAVA|https://docs.oracle.com/javase/7/docs/api/]]

! ''__Projet__'' à réaliser en trinome (30% de la note finale) à rendre avant le vendredi 22 décembre 2019
[[SUJET|./_enseignement_fichiers/licenceMASS/projet/projet2019/projet-2019.html]] 




*[[Séances Préparatoires: POO/JAVA|./enseignement_fichiers/L3Miage/mise-a-niveau/TD.html]]
*[[Travaux Pratique : POO/JAVA]]
@@bgcolor(yellow): Systèmes Complexes Avancés (SCA)@@ : 3 heures/semaine sur 8 semaines (cf. EDT)
Ref: ''Systèmes Complexes : une introduction par la pratique''
[[Presses polytechniques et universitaires romandes|http://www.ppur.com/en/product/612/9782880749910/Systemes%20complexes]], EPFL Press, Lausanne, 306 pp. Exemplaires disponibles à la bibliothèque universitaire.

!Nous sommes en semaine @@bgcolor(orange): <<today 0WW>> / 53@@

* --Séance 1 (mercredi 23 octobre) --
** [[COURS1|./_enseignement_fichiers/M1Info/SCA/SCA2019/procession/procession.pdf]]
** [[début COURS programmation Netlogo|./_enseignement_fichiers/M1Info/SCA/SCA2019/netlogo/simulation_SC_Netlogo.pdf]]
* --Séance 2 (mercredi 6 novembre (am)) --
** [[fin COURS1|./_enseignement_fichiers/M1Info/SCA/SCA2019/procession/procession.pdf]]
** [[fin COURS programmation Netlogo|./_enseignement_fichiers/M1Info/SCA/SCA2019/netlogo/simulation_SC_Netlogo.pdf]] 
** [[TDM1 (partie 1)|./_enseignement_fichiers/M1Info/SCA/SCA2019/procession/TP_procession.html]] 
* --Séance 3 (mercredi 13 novembre) --
** [[TDM1 (partie 2)|./_enseignement_fichiers/M1Info/SCA/SCA2019/procession/TP_procession.html]]
* --Séance 4 (mercredi 20 novembre)--
** [[COURS2+TDM2|./_enseignement_fichiers/M1Info/SCA/SCA2019/mobilite/ETUDIANTmobility.pdf]]
* --Séance 5 (mercredi 27 novembre)--
** @@bgcolor(orange): ~TDaR1 à rendre à la fin de la séance (par binôme)@@ [[Accès au sujet|./_enseignement_fichiers/M1Info/SCA/SCA2019/mobilite/TP-manhattan-sens-unique/TP-mobility-sens-unique.html]]
* --Séance 6 (mercredi 4 décembre)--
** [[Modèle de mobilité RHR à Manhattan|./_enseignement_fichiers/M1Info/SCA/SCA2019/mobilite/manhattan2019-etudiant.pdf]]
** [[Cours netLogo-GIS|./_enseignement_fichiers/M1Info/SCA/SCA2019/mobilite/NETLOGO-GIS.pdf]]
* --Séance 7 (mercredi 11 décembre)--
** @@bgcolor(orange): ~TDaR2 à rendre à la fin de la séance (par binôme mais différent de celui du ~TDaR1)@@ [[Accès au sujet|./_enseignement_fichiers/M1Info/SCA/SCA2019/mobilite/TP-mobilite-Nice.html]]
[[Nice.shp|./_enseignement_fichiers/M1Info/SCA/SCA2019/mobilite/TP-mobilite-Nice.html]]
[[Nice.dbf|./_enseignement_fichiers/M1Info/SCA/SCA2019/mobilite/TP-mobilite-Nice.html]]
* --Séance 8 (mercredi 18 décembre)--
** @@bgcolor(orange): Préparation du PROJET (par binôme mais différent des binômes des deux ~TDaR)@@ [[Accès au sujet |./_enseignement_fichiers/M1Info/SCA/SCA2019/projet/projet-carte.html]] 

__Evaluation__ :
# ~TDaR1 (20%)  : à envoyer par email, à la fin de la séance de TD sous la forme d'un rapport scientifique (.pdf de 4 pages max avec captures écran).
# ~TDaR2 (20%)  : à envoyer par email, à la fin de la séance de TD sous la forme d'un rapport scientifique (.pdf de 4 pages max avec captures écran).
# PROJET (60%) : à envoyer par email avant le __03 janvier 2020__, sous la forme : (i) un rapport scientifique (.pdf de 4 pages max), (ii) code Netlogo (.nlogo), (iii) vos fichiers .dbf et .shp.
!@@[[Natural Computing]]@@

!@@Algorithmes Evolutionnaires@@
*[[Cours|./enseignement_fichiers/xxx.ppt]] [[TD|./enseignement_fichiers/xxx.doc]]
!@@Science de la Décision@@
''Systèmes Complexes Avancés: traitement de données spatiales''
* Séance 1 : mercredi 26/9 : 14H-18H salle 385 Lucioles
** [[Thème1: Programmation Orienté Agent|./_enseignement_fichiers/M2miage/SD/SD2017/mobilite/mobility.pdf]] 
** [[Cours-POA-NetLogo|./_enseignement_fichiers/M2miage/SD/SD2017/netlogo/simulation_SC_Netlogo.pdf]]
* Séance 2 : mercredi 4/10 : 14H-18h salle 385 Lucioles
** [[Thème2 : mobilité dans un monde virtuel|./_enseignement_fichiers/M2miage/SD/SD2017/mobilite/TP_mobility-sens-unique.html]]
** [[correction|./_enseignement_fichiers/M2miage/SD/SD2017/mobilite/mobility-grille-sens-unique.nlogo]]
* Séance 3 : mercredi 11/10 : 14H-18H salle 385 Lucioles
** [[Information sur openstreetmap et QJIS|./_enseignement_fichiers/M2miage/SD/SD2017/projet/projet2017.pdf]]
** [[projet|./_enseignement_fichiers/M2miage/SD/SD2017/projet/projet-carte.html]]
__Evaluation__ :
# ''en binôme''  :  Thème2 (40%)  : __A RENDRE__, par email, sous la forme suivant : (i) un rapport scientifique (.pdf de 2 pages max) + (ii) code Netlogo de la dernière version (.nlogo) à la fin de la 2ème séance.
# ''seul'' : Projet (60%) : __A RENDRE__, par email, sous la forme suivant : (i) un rapport scientifique (.pdf de 4 pages max) + (ii) code Netlogo (.nlogo) avant le __20 octobre__.


/%** [[COURS1|./_enseignement_fichiers/M2miage/SD/SD2016/procession/procession.pdf]]%/

/%* Séance 2 : vendredi 28/9 : 9H45-12H45 salle 342 Lucioles
** [[TDM1|./_enseignement_fichiers/M2miage/SD/SD2016/procession/TP_procession.html]] 
** [[COURS2|./_enseignement_fichiers/M2miage/SD/SD2016/frontiere/frontiereEtudiant.pdf]]
%/
@@bgcolor(red):[[Dernière minute]]@@
----
<<search>>
----
@@[[Publication récentes|Publications 2011-2020]]@@
[[Diffusion des savoirs]]
[[Directeur de thèse]]
----
[[Cours + Travaux Pratiques]]
----
<<calendar thismonth>>
----
<<clock2 70>>
----
[[Une idée, une Question ...|mailto: philippe.collard@gmail.com]]
----
<<saveChanges>> 
<<closeAll>>
@@bgcolor(red):<<toggleSideBar "" :: hide >>@@ ^^[[°|MainMenu]]^^
/% <<tagCloud systemConfig interface hide Plugins syntaxe>> %/
/% [img[bbbb|./image/qrcode.png]]%/


!Objectifs:
>Dans le but de créer des systèmes autonomes, robustes et évolutifs, une nouvelle forme d'ingénierie trouve son inspiration dans les systèmes complexes naturels. Par exemple, pour concevoir des systèmes sécurisés contre les intrusions, il est possible d'imaginer de nouveaux mécanismes inspirés des défenses immunitaires. Les systèmes inspirés par la Nature doivent être pensés comme des entités auto-organisées, adaptatives et distribuées ; ils reproduisent le comportement et les schéma organisationnels qui existent dans les systèmes naturels complexes.
>Ce cours est une introduction aux principes et méthodes de "l'informatique Nature-inspirée" : il présente différents systèmes utilisés en ingénierie (optimisation, communication, etc.). Il fait le lien entre les sciences de la Nature (éthologie, socio-biologie, évolution neo-darwienne, ...) et les méthodes informatiques. Nous insisterons sur le fait que la Nature doit être une source d'inspiration et non une contrainte.

!Programme (5 séance de 4 heures)
#Introduction NaturalComputing : From micro-motive to macro-behavior [[CoursTD|./enseignement_fichiers/M2info/naturalComputing/micro-macro/micro-macro.pdf]]
#Optimisation par Colonie de fourmis (Ant optimization) [[Cours|./enseignement_fichiers/M2info/naturalComputing/ANT/Fourmis.ppt]]+ [[TDM|./enseignement_fichiers/M2info/naturalComputing/ANT/tdACO.html]]
#Transposition du modèle de Schelling sur un réseau invariant d'échelle (Scale-free network)  [[CoursTD|./enseignement_fichiers/DEA/naturalComputing/micro-macro.pdf]]
# [[voir site de Sébastien Vérel|http://www.i3s.unice.fr/~verel/]]
# [[voir site de Sébastien Vérel|http://www.i3s.unice.fr/~verel/]]
# Évaluation (soutenance des projets)

!Bibliographie :
    * Machine Nature: The Coming Age of Bio-Inspired Computing, by Moshe Sipper, McGraw-Hill, New York, 2002
    * Les Systèmes complexes : mathématiques & biologie, H. P. Zwirn, ed.Odile Jacob
    * Outil de simulation : http://ccl.northwestern.edu/netlogo
    * Réseau National de Sciences de la Complexité : http://complexsystems.lri.fr/RNSC
! Planning
1) @@ __Pré-soutenance (oral)__ + capacité d'évaluer un pair@@ : 30% - 15mn avec questions - ''semaine du 10 mars'' - Utiliser Beamer

2) @@__Soutenance (oral)__ @@ : 30% - 15mn avec questions -  ''semaine du 22 avril durant la séance habituelle (jour et lieu)'' - utiliser Latex-beamer

3) @@[[Rapport écrit|./_enseignement_fichiers/L2PS/exemple-plan-rapport.pdf]]  + __journal individuel d'activité__@@ : 40%
##Un rapport écrit par groupe ''à envoyer par email à votre encadrant au plus tard le 28 avril (minuit)'' - Latex, format article scientifique (double colonne + max 6 pages)
##Un journal individuel d'activé par étudiant ''à envoyer par email à votre encadrant au plus tard le 28 avril (minuit)'' -  format libre

@@bgcolor(red):ATTENTION@@ : ''prise en compte de la présence aux séances de projet dans la note globale''

 __4 premières semaines__ : 
!! 1 cours : amphi Math (mardi  10h15)
* --Mardi 22 janvier-- :  [[Introduction|./_enseignement_fichiers/L2PS/introduction/introduction.pdf]] [[Netlogo|./_enseignement_fichiers/L2PS/introduction/ProgrammationNetLog.pdf]] (P. Collard)
* --Mardi 29 janvier-- : [[Présentation des travaux scientifiques (écrit/oral) |./_enseignement_fichiers/L2PS/latex/latex-beamer.pdf]]  (P. Collard)
* --Mardi 05 février-- : [[Repésentation graphique des données|https://linfo.olivier-dalle.fr/uploads/Enseignements/Cours_GNUplot_2016.pdf]] (O. Dalle) /%[[Repésentation graphique des données |./_enseignement_fichiers/L2PS/gnuplot/gnuplot.pdf]] %/
* Mardi 12 février : PAS DE COURS PSI
* --Mardi 26 février-- : [[Traitement statistique des données |./_enseignement_fichiers/L2PS/R/cm02-Simon-R.pdf]] [[(A. Malapert)|http://www.i3s.unice.fr/~malapert/org/teaching/R/TP-PSI.html]]

!! 1 TDM : groupe A+B+C+D : mardi ou mercredi ou jeudi (salles machines PV 314 ou 315)
* --Mardi 22 janvier : Introduction--
**[[introduction|./_enseignement_fichiers/L2PS/introduction/introduction.pdf]]
**[[TDM1.html|./_enseignement_fichiers/L2PS/introduction/ficheTP-01-procession.html]]
**[[Programmation Netlogo|./_enseignement_fichiers/L2PS/introduction/ProgrammationNetLog.pdf]]
**[[un MOOC sur NetLogo |./_enseignement_fichiers/L2PS/introduction/1.7IntroductionToNetLogo1.mp4]]
* --Mardi 29 janvier :  Latex + Beamer--
**[[cours+TDM4 (cf. derniers slides du cours) |./_enseignement_fichiers/L2PS/latex/latex-beamer.pdf]]
**[[IJCAI.zip|./_enseignement_fichiers/L2PS/latex/ijcai13-latex.zip]]
* --Mardi 05 février-- : Gnuplot
**[[TDM3|https://l2info.olivier-dalle.fr/Enseignements/InitiationGNUPlot]] 
* --Mardi 12 février : choix des projets--
* --Mardi 26 février : R--
**[[TDM4 (A. Malapert)|http://www.i3s.unice.fr/~malapert/org/teaching/R/TP-PSI.html]]

! __8 semaines suivantes__  : 1 TDM par semaine par étudiant (voir edt) :
@@ATTENTION : Pré-soutenance pendant la séance de TP dans la SEMAINE DU 10 MARS 2019 (voir modalités ci-dessous)@@
! Présoutenance (10mn + 5mn de questions) :
Titre du sujet et membres de l'équipe
> Introduction
>> Présenter le contexte et les éléments du sujet
>> Positionner le sujet relativement aux travaux antérieurs (cf. bibliographie)
> Problématique
>> Définir la problématique et Insister sur son importance/pertinence
>> Formuler des questions et/ou faire apparaitre des paradoxes
> Ébaucher la modélisation
>> Indiquer les hypothèses simplificatrices
>> Décrire les éléments constitutifs du modèle et les interactions entre ces éléments
>> Préciser les paramètres caractéristiques du modèle
>> Protocole expérimental en vu de répondre aux questions
>> Choix des valeurs des paramètres
>> Choix des mesures étudiées
> Résultats attendus
> Conclusion
>> Répartition du travail
>> Planning prévisionnel

! __Choix du projet__ :
* ''3 voeux par étudiant à remettre au plus tard au premier TDM dans la semaine du 11 février''
* 1 groupe = 3 étudiants
* 1 sujet = n groupes
/%
! Sujets proposés
|!#|!sujets proposés en 2019 par P. Collard|
|1|Modèle de Schelling (ségrégation 2D, émergence de communautés)|
|2|Modèle de Schelling (ségrégation 3D, collocation)|
|3|Ségrégation dans un réseau scale-free|
|4|Propagation d'un feu de forêt (phénomène de percolation)|
|5|Propagation de virus ("poignée de main" vs. "poignée de porte")|
|6|Modèle de déplacement des piétons (par exemple, sédentaires vs. grands voyageurs)|
|7|Dans une population, ceux qui ne "jouent pas jeux" peuvent-ils profiter des avantages de la comunauté ?|
|8|Modèle de Bass : diffusion d'une innovation|
|9|Modèle de Bass dans un réseau scale-free|
|10|Propagation de rumeurs|
|11|Modèle d'appentissage scolaire (phénomène de décrochage)|
|12|Modèle d'évacuation en urgence (incendie, ...) d'une salle de réunion (cinéma, ...)|
|13|...|

! __Sujets proposés par P. Collard en 2018__
|!#|!Trinôme|!sujet|
|1| Rémy Munier + Alexandre Denos + Erdal Toprak | Propagation de rumeur dans un réseau social |
|2| Raphael Julien + Alessandro Rubio + Youssef Mekouar| Stratégies d'évacuation dans une salle de spectacle |
|3| ~Mohamed-Amine Romdhane + Zhang Noé| Propagation d'un feux de foret |
|4| Tao Zhaopeng + Butté Hugo + Soumrany Maxime | Modéle de  Bass : How can imitation counterbalance innovation?|
|5| Shaun Philipps + David Macchini + Thomas Rey | Propagation d'un virus (type grippe) |
|6| Elorian Regin + Rémi Yacoub | Modèle proies-prédateurs |

**[[TDM2|./_enseignement_fichiers/L2PS/R/ficheTP-02-R.pdf]]
**[[temp_1.csv|./_enseignement_fichiers/L2PS/R/data/temp_1.csv]] [[temp_2.csv|./_enseignement_fichiers/L2PS/R/data/temp_2.csv]] [[temp_3.csv|./_enseignement_fichiers/L2PS/R/data/temp_3.csv]]
**[[ruban-3_final.csv|./_enseignement_fichiers/L2PS/R/data/ruban-3_final.csv]] [[ruban-3_initial_final.csv|./_enseignement_fichiers/L2PS/R/data/ruban-3_initial_final.csv]] [[ruban-3_initial_duree.csv|./_enseignement_fichiers/L2PS/R/data/ruban-3_initial_duree.csv]]
**CORRECTION : [[exo1.R|./_enseignement_fichiers/L2PS/R/exo1.R]] [[exo2.R|./_enseignement_fichiers/L2PS/R/exo2.R]] [[exo3.R|./_enseignement_fichiers/L2PS/R/exo3.R]] [[exo4.R|./_enseignement_fichiers/L2PS/R/exo4.R]] [[exo5.R|./_enseignement_fichiers/L2PS/R/exo5.R]]


/%
! Sujets proposés en 2015
1) [[sujets proposés par E. Coupechoux|./_enseignement_fichiers/L2PS/ListeProjetsEmilie.pdf]]
2) Sujets proposés par O. Dalle (voir tableau ci-dessous)
|!#|!sujets proposés par O. Dalle|
|1|propagation de virus|
|2|rumeurs dans les reseaux sociaux|
|3|game of life|
|4|pagerank|
|5|feux rouges/ vague verte|
|6|modele proie/predateur|
|7|modeles d'influence|
|8|modele de croissance des phoques en fonction des changements du climatique|
%/

!  [[Notes de pré-soutenance 2019|./_enseignement_fichiers/L2PS/note_presoutenances_PSI_2019.xlsx]]

/%
|!Trinôme|!sujet|!note|
| Rémy Munier + Alexandre Denos + Erdal Toprak | Propagation de rumeur dans un réseau social |13,5|
| Raphael Julien + Alessandro Rubio + Youssef Mekouar| Stratégies d'évacuation dans une salle de spectacle |11|
| ~Mohamed-Amine Romdhane + Zhang Noé| Propagation d'un feux de foret |14,5|
| Tao Zhaopeng + Butté Hugo + Soumrany Maxime | Modéle de  Bass : How can imitation counterbalance innovation?|13|
| Shaun Philipps + David Macchini + Thomas Rey | Propagation d'un virus (type grippe) |12|
| Elorian Regin + Rémi Yacoub | Modèle proies-prédateurs |9,5|
| BADACHE/BRETONIERE | Propagation de Virus (SIR) |11|
| BENTELLIS/ADAM/BELLET | Propagation rumeurs reseaux sociaux |12|
| CARDINI/ ~CAILLAT-GRENIER | Phenomenes emergents dans les colonies de fourmis |12|
| BAILET/TRAORE/BOUREK | Etude des moyens de luytte contre feux de foret |13|
| BEN ADLEJELLIL/BEY OSMAN/FERRIOL | Strategie evacuation des salles de spectacle |11,5|
| COUNILLE/ALESSANDRO | Telechargements illegaux |13|
| DA SILVA NEVES/PREVOT/ZACCARIA | Propagation d’un virus dans un réseau |16|
| GOMES/Lelievre/NANG | File d'attente |11|
| HALLACI/M HAMED/JRAD | Modèle de Sakodas d'interactions sociales |14|
| MILLIER/NERSISSIAN/PETROU | Evolution des cellules saines et cancéreuses |17|
| JANKEE/SAMSON | Agregation de Schelling |14|
%/

! ''Soutenance'' (10mn + 5 mn de questions) :
@@15mn avec questions (30%) - utiliser Latex-beamer - @@

/%
!!@@Ordre de passage@@
@@bgcolor(red):ATTENTION@@ : chaque étudiant doit être présent durant toutes les présentations de son groupe
!!Groupe 1: 
|!Ordre de passage|!Trinôme|!sujet|
|01|R |Propagation de rumeur dans un réseau social |
|02|B| Propagation de Virus (SIR) |
|03|C| Telechargements illegaux|
|04|R |Stratégies d'évacuation dans une salle de spectacle |
!!Groupe 2: 
|!Ordre de passage|!Trinôme|!sujet|
|05|B| Propagation rumeurs réseaux sociaux |
|06|D| Propagation d’un virus dans un réseau|
|07|M|Propagation d'un feux de forêt |
|08|C| Phenomenes emergents dans les colonies de fourmis |
!!Groupe 3: 
|!Ordre de passage|!Trinôme|!sujet|
|09|S| File d'attente|
|10|T |Modèle de  Bass : How can imitation counterbalance innovation? |
|11|B | Etude des moyens de luytte contre feux de forêt |
|12|H| Modèle de Sakodas d'interactions sociales|
!!Groupe 4: 
|!Ordre de passage|!Trinôme|!sujet|
|13|S |Propagation d'un virus (type grippe) |
|14|B | Stratégie d'évacuation des salles de spectacle |
|15|M| Evolution des cellules saines et cancéreuses|
|16|E |Modèle proies-prédateurs |
|17|J| Agregation de Schelling|

|!Horaire|!Groupe|!sujet|
|8h| 
|8h20| 
|8h40| 
|9h| 
|9h20| 
Pause
|!Horaire|!Groupe|!sujet|
|9h40| Manchez /Le Quintrec | Modéle de ségrégation |
|10h| B | Propagation des déchets par les courants marins|
|10h20| A| Evolution génétique d’une population (couleur des yeux) |
|10h40| B | Feux de forets  |
|11h| Q| Colonies de fourmis  |
Pause
|!Horaire|!Groupe|!sujet|
|11h20| M | Propagation d’un feu de forêt|
|11h40| K | Changement du climat|
|12h| D | Modèle ~Proies-Prédateurs|
|12h20| B | Propagation d’un virus sur un réseau|
%/
Plan typique pour le rapport et la soutenance ([[voir|./_enseignement_fichiers/L2PS/latex/latex-beamer.pdf]])
{{{
\begin{abstract} ... \end{abstract}
\section*{Introduction}
\subsection{Contexte}
\subsection{Etat de l'art}
\subsection{Questions scientifiques}
\section{Modélisation}
\subsection{Hypothèses simplificatrices}
\subsection{Description du modèle}
\section{Simulation}
\subsection{Cadre expérimental}
\subsection{Protocole expérimental}
\section{Résultats}
\section{Discussion}
\section*{Conclusion et perspectives}
}}}
/%
!Notes de présoutenance :
!!Modèle proies/prédateurs: co-existence/équilibre

!!Théorie des jeux

!!Simulation de la propagation du virus du Chikungunya

!!Diffusion d'une innovation dans un réseau

!!Diffusion d'innovations et stratégies de marketing

!!Propagation de virus (modèle SIR), application au virus Ebola

!!Groupe 1: 
Propagation virus / modele SIR 
!!Groupe 2:  
Diffusion innovation
!!Groupe 3: 
Propagation virus EBOLA / modele SIR
!!Groupe 4: 
Proie/Prédateur avec pollution
!!Groupe 5: 
Feux de foret/ Bombardiers d'eau 
!!Groupe 6: 
Feux de foret 
!!Groupe 7:
Propagation de rumeur 

!! Propagation virus (percolation) :  
!! Propagation de rumeurs dans un réseau social : 
!! Propagation de virus : 
!! Modélisation du décrochage scolaire : 
!! Modèle d'agrégation de Schelling 2D : 
!! Modèle d'agrégation de Schelling 3D (emergence de "tours") : 
!! Modèle proie-prédateur (3D-milieu aquatique) : 
/%

!@@PLANNING SOUTENANCE : MARDI 21 avril PV 301@@ 
@@Chaque étudiant DOIT assister à l'ensemble des soutenances de sa session@@
@@Pensez à venir avec votre présentation beamer (fichier.pdf) sur une clé USB !@@

/%
@@SESSION 1@@
!!8h : Modèle proies/prédateurs: co-existence/équilibre

!!8h20 : Théorie des jeux

!!8h40 : Simulation de la propagation du virus du Chikungunya

!!9h : Diffusion d'une innovation dans un réseau

!!9h20 : Diffusion d'innovations et stratégies de marketing

!!9h 40 : Propagation de virus (modèle SIR), application au virus Ebola


@@10 h PAUSE@@

@@SESSION 2@@
!! 10h20 : Propagation de rumeurs dans un réseau social

!! 10h40 : Propagation de virus 

!! 11h : Modélisation du décrochage scolaire

!! 11h20 : Propagation virus (percolation) 

!! 11h40 : Modèle d'agrégation de Schelling (influence des "marginaux")


@@12h PAUSE@@

@@SESSION 3@@
!!  14h : Modèle d'agrégation de Schelling 3D (emergence de "tours")

!! 14h20 : Modèle proie-prédateur (3D-milieu aquatique) 

!! 14h40 : Propagation virus / modele SIR

!!15h : Diffusion innovation

!!15h20 : Propagation virus EBOLA / modele SIR


@@15h40 PAUSE@@

@@SESSION 4@@
!!16h : Proie/Predateur avec pollution

!!16h20 : Feux de foret/ Bombardiers d'eau

!!16h40 : Feux de foret

!! 17h : Propagation de rumeur

%/
''Systèmes Complexes''
''Une introduction par la pratique''

''Préface'' 
A une époque où les effets d'imbrication et d'interconnexion se font ressentir globalement en économie, en politique, en écologie et dans pratiquement tous les domaines de l'activité humaine, on s'interroge de plus en plus sur la nature de ces phénomènes. 
Qu'est-ce qui fait que ces comportements paraissent si surprenants et aient souvent la marque de l'imprévisibilité ? 
La vérité est que nous n'en savons pas encore assez pour pouvoir en prédire l'évolution de manière fiable, et encore moins pour les contrôler. C'est en partie à cause de cet aveu d'impuissance que l'on convient d'appeler ces systèmes complexes. Faut-il pour autant abandonner tout espoir de comprendre ? 
Certainement pas, et le présent ouvrage en est la preuve. En effet, depuis deux ou trois décennies les études et les centres spécialisés sur les systèmes complexes se sont multipliés et, bien que nous n'ayons pas encore atteint le but d'une compréhension satisfaisante, notre connaissance s'en trouve aujourd'hui grandement améliorée. Cependant, les notions acquises ont eu de la peine à percer au-delà des cercles de spécialistes à cause de leur difficulté intrinsèque et du formalisme mathématique requis. C'est à ce manque de vulgarisation de cette nouvelle science que cet ouvrage essaye de remédier, sans jamais abandonner la rigueur des concepts et sans pour autant tomber dans une facilité illusoire. Les auteurs se sont confrontés à la tâche de présenter et d'illustrer les systèmes complexes par l'exemple et par la pratique. Pour ce faire, ils ont choisi des systèmes d'agents suffisamment simples dans leurs règles de comportement individuel, mais pouvant donner lieu à des comportements collectifs émergents que l'on peut aisément qualifier de complexes. Ainsi, à côté de classiques dans les sciences de la complexité comme les automates cellulaires, la morphogenèse et le chaos déterministe, l'on trouve une belle introduction aux réseaux complexes, réseaux qui sous-tendant la plupart des systèmes humains ou créés par l'homme, et  une introduction à l'intelligence collective par le biais d'automates simulant les comportements de base des insectes sociaux. Ces exemples sont loin d'être simplistes : accessibles au raisonnement, ils présentent des comportements très variés et fournissent les bases indispensables pour appréhender un jour, qui sait, le système économique global ou le climat.

L'originalité de l'ouvrage se trouve plus particulièrement dans l'approche pédagogique proposée par les auteurs. La meilleure façon d'éveiller les esprits aux comportements complexes est sans doute celle de les illustrer visuellement par des images et des séquences vidéo. Le livre s'articule ainsi autour d'ateliers démontrant le comportement dynamique du système correspondant par des programmes de simulation numérique dotés d'une interface graphique du plus bel effet. Le fait d'observer le déroulement des expériences numériques à lui seul est déjà une garantie d'une meilleure compréhension par rapport à l'évolution d'un système complexe. Mais avec un effort de la part du lecteur, celui-ci pourra aller beaucoup plus loin en modifiant les programmes et en construisant des variantes selon les suggestions des auteurs ou ses propres intuitions. Cela, il est vrai, demande un certain investissement en programmation, mais l'effort ne sera pas vain. Simplement, pour tirer un maximum d'avantages du livre le lecteur devra être actif et participatif.

Ce livre comble une lacune culturelle et éducative d'une façon unique. Certes, il existe d'autres ouvrages illustrant la nature des systèmes complexes mais aucun, à ma connaissance, n'implique le lecteur comme le fait cette remarquable introduction. Le style du livre, facile d'approche mais pouvant être utilisé à plusieurs niveaux, en fait un outil précieux pour quiconque a envie de mieux comprendre les systèmes complexes, y compris les enseignants et les chercheurs pour qui le livre sera une source d'inspiration et de matériel choisi. On ne peut que féliciter les auteurs pour le courage et la cohérence avec lesquels ils se sont attelés à cette tâche difficile.

En conclusion, je souhaite vraiment que le livre rencontre le succès qu'il mérite et que le lecteur prenne autant de plaisir que moi à la lecture de cet ouvrage innovant dans un domaine crucial pour la compréhension du monde et de la société qui nous entourent.

Professeur Marco Tomassini
Université de Lausanne
@@How to Prevent Intolerant Agents from High Segregation?@@
Philippe Collard and Salma Mesmoudi
''Advances in Artificial Life, ECAL 2011'': Proceedings of the Eleventh European Conference on the Synthesis and Simulation of Living Systems,
T. Lenaerts, M. Giacobini, H. Bersini, P. Bourgine, M. Dorigo and R. Doursat, [[eds.|http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=12760]]
MIT Press, ISBN 978-0-262-29714-1, 2011
@@A Study of Neutrality of Boolean Function Landscapes in Genetic Programming@@
L. Vanneschi, Y. Pirola, G. Mauri, P. Collard and S. Verel
''Journal of Theoretical Computer Science'', 425, pp. 34-57, 2012

@@Mobility and Information Flow: Percolation in a ~Multi-Agent Model@@
M. Collard, P. Collard, E. Stattner
''International Conference on Ambient Systems, Networks and Technologies'' (ANT), ed. Elseiver
Procedia CS, Vol. 10, p. 22-29, 2012
! Méta Micro-motivations : application à la ségrégation spatiale
P. Collard
~Plate-Forme de l'Intelligence Artificielle (PFIA).
Journées Francophones sur les Systèmes ~Multi-Agents (JFSMA).
Ed. Cépaduès, 2020 (à paraître).
! Second-order micromotives and Macrobehaviour
P Collard
Journal of Computational Social Science.
Ed. Springer Nature, Vol. 3(1), pp. 209-229, 2020.
! Strong and Weak Spatial Segregation with multilevel discrimination criteria
P. Collard
Complex Systems Journal.
Vol. 28(2), 2019.
! lambdaCA: a Peer Learning Cellular Automaton
P. Collard
Cellular Automata Journal.
Vol.  14(3-4), 2018.
! The "Two's Company, Three's a Crowd" Game
P. Collard
Complex Systems Journal.
Vol. 26(3), 2017.
! Information dissemination in scale-free networks: Profusion versus Scarcity
L. Brisson, P. Collard, M. Collard, E. Stattner
ICCNA’17: International Conference on Complex Networks and Their Applications.
Ed. Springer Verlag, pp. 911-920, 2017.
! Segregation Landscape: A new view on the Schelling segregation space
P. Collard, T. Ghetiu
Complex Systems Journal.
Vol. 25(3), 2016.
! Rumor Spreading Modeling: Profusion versus Scarcity
M. Collard, P. Collard, L. Brisson, E. Stattner 
ASONAM’15: IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining.
Paris, France. pp. 1547-1554, 2015. 
! How can imitation counterbalance innovation? An ABM Bass model for competing products
P. Collard, W. Segretier
RCIS’14: IEEE International Conference on Research Challenges in Information Science.
Marrakech, Morocco, pp. 1-2, 2014.
! Beyond the Schelling's segregation model: is it equivalent to be repulse by dissimilar rather to be attracted by similar?
P. Collard
ECAL’13: European Conference on Artificial Life.
MIT press, Taormina, Italy, Advances in Artificial Life, ed. MIT press, pp. 480-487, 2013.
! Emergence of Frontiers in networked Schelling segregationist models. 
P. Collard, S. Mesmoudi, T. Ghetiu, F. Polack
Complex Systems Journal.
Vol. 22(1), 2013.
! Modeling Luxury Consumption: An Inter-Income Classes Study of Demand Dynamics and Social Behaviors
A.	Carlin, S. Verel, P. Collard
WEHIA’13: annual Workshop on the Economic Science with Heterogeneous Interacting Agents.
Reykjavik, Iceland, 2013.
! A Study of Neutrality of Boolean Function Landscapes in Genetic Programming
L. Vanneschi, Y. Pirola, G. Mauri, M. Tomassini, P. Collard, S. verel
Journal of Theoretical Computer Science.
Ed. Elsevier, vol. 425, pp. 34-57, 2012.
! Mobility and Information Flow: Percolation in a Multi-Agent Model
M. Collard, P. Collard, E. Stattner
Ant’12: International Conference on Ambient Systems, Networks and Technologies.
Procedia Computer Sciences, vol. 10, pp. 22-29, 2012.
! How to Prevent Intolerant Agents from High Segregation?
P. Collard, S. Mesmoudi
ECAL’11: Advances in Artificial Life.
MIT press, pp. 8-15, 2011.
! States based Evolutionary Algorithm
S. Verel, P. Collard, M. Clergue
Workshop Self-tuning, self-configuring and self-generating search heuristics at PPSN’10: 11th International Conference on Parallel Problem Solving From Nature.
Krakow, Pologne, 2010.
! NK Landscapes Difficulty and Negative Slope Coefficient: How Sampling Influences the Results?
L. Vanneschi, S. verel, M. Tomassini, P. Collard
Evo WorkShops.
Lecture Notes in Computer Science 5484, pp. 645-654, 2009.
! Do not choose representation just change: an experimental study in states-based EA
M. Bercachi, P. Collard, M. Clergue, S. verel
GECCO’09: Genetic and Evolutionary Computation Conference.
ACM, pp. 1799-1800, 2009.
! Centric selection: a way to tune the exploration/exploitation trade-off
D. Simoncini, S. Verel, P. Collard, M. Clergue
GECCO’09: Genetic and Evolutionary Computation Conference.
ACM, pp. 891-898, 2009.
! Studying the Effects of Dual Coding on the Adaptation of Representation for Linkage in Evolutionary Algorithms
M. Bercachi, P. Collard, M. Clergue, S. Verel
Study in Computational Intelligence.
Linkage in Evolutionary Computation, vol. 157, pp. 249-284, 2008.
! Eye-Tracking Evolutionary Algorithm to minimize user's fatigue in IEC applied to Interactive One-Max problem
D. Pallez, P. Collard, T. Baccino, L. Dumercy
GECCO’07: Genetic and Evolutionary Computation Conference.
pp. 2883–2886, 2007.
! Fitness Landscape of the Cellular Automata Majority Problem: View from the "Olympus"
S. Verel, P. Collard, M. Tomassini, L. Vanneschi 
Theoretical Computer Science.
Vol. 378(1), pp. 54-77, ed. Elsevier, 2007.
! On the Influence of Selection Operators on Performances in Cellular Genetic Algorithms
D. Simoncini, P. Collard, S. Verel, M. Clergue
CEC’07: IEEE Congress on Evolutionary Computation.
pp. 4706-4713, Singapour, 2007.
! A Comprehensive View of Fitness Landscapes with Neutrality and Fitness Clouds
L. Vanneschi, M. Tomassini, P. Collard, S. verel, Y. Pirola, G. Mauri
EuroGP’07: European Conference on Genetic Programming.
pp. 241-250, 2007.
! Evolving Dynamic Change and Exchange of Genotype Encoding in Genetic Algorithms for Difficult Optimization Problems
M. Bercachi, P. Collard, M. Clergue, S. Verel
CEC’07: IEEE Congress on Evolutionary Computation.
pp. 4516-4523, Singapour, 2007.
! On the Influence of Selection Operators on Performances in Cellular Genetic Algorithms
D. Simoncini, P. Collard, S. Verel, M. Clergue
CEC’07: IEEE Congress on Evolutionary Computation.
pp. 4706-4713, Singapour, 2007.
! Deceptiveness and neutrality the ND family of fitness landscapes
W. Beaudoin, S. Verel, P. Collard, C. Escazut
GECCO’06: Genetic and Evolutionary Computation Conference.
pp. 507-514, 2006.
! Anisotropic selection in cellular genetic algorithms
D. Simoncini, S. verel, P. Collard, M. Clergue
GECCO’06: Genetic and Evolutionary Computation Conference.
ACM press, pp. 559–566, 2006.
! Neutral Fitness Landscape in the Cellular Automata Majority Problem
S. Verel, P. Collard, M. Tomassini, L. Vanneschi
ACRI’06: 7th International Conference on Cellular Automata for Research and Industry.
In Lecture Notes in Computer Science (LNCS 4173), University of Perpignan, France, pp. 258-267, 2006.
! Neutralité dans les paysages de fitness. 
S. Verel, P. Collard, M. Clergue
Evolution artificielle et neutralité.
Revue Technique et Science Informatiques (TSI).
n°8-9, pp. 1023-1048, 2006.
! Negative Slope Coefficient. A Measure to Characterize Genetic Programming Fitness Landscapes
L. Vanneschi, M. Tomassini, P. Collard, S. Verel
EuroGP’06: Genetic Programming conference.
9th European Conference, Budapest, Hungary, pp. 178-189, 2006.
! A Quantitative Study of Neutrality in GP Boolean Landscapes
Y. Pirola, L. Vanneschi, M. Tomassini, S. Verel, P. Collard, G. Mauri
GECCO'06: Genetic and Evolutionary Computation Conference.
Seattle, USA, pp. 895-902, 2006.
! Anisotropic selection in Cellular Genetic Algorithm
- Best Paper Conference Award Nomination -
D. Simoncini, S. Verel, P. Collard, M. Clergue
GECCO'06: Genetic and Evolutionary Computation Conference.
Seattle, USA, pp. 559-566, 2006.
! From Cells to Islands: An Unified Model of Cellular Parallel Genetic Algorithms
D. Simoncini, P. Collard, S. Verel, M. Clergue
ACRI’06: Cellular Automata for Research and Industry.
In Lecture Notes in Computer Science (LNCS 4173), pp. 248-257, University of Perpignan, France, 2006.
! Neutral Fitness Landscape in the Cellular Automata Majority Problem
S. Verel, P. Collard, M. Tomassini, L. Vanneschi
ACRI'06: Cellular Automata for Research and Industry.
In Lecture Notes in Computer Science (LNCS 4173), pp. 258-267, University of Perpignan, France, 2006.
! Neutralité dans les paysages de fitness : Evolution artificielle et neutralité
S. Verel, P. Collard, M. Clergue
Revue Technique et Science Informatiques (TSI).
Vol. 25(8-9), pp. 1023-1048, novembre 2006.
! Negative Slope Coefficient: A Measure to Characterize Genetic Programming Fitness Landscapes
L. Vanneschi, M. Tomassini, P. Collard, S. Verel
EUROGP'06: Genetic Programming, 9th European Conference.
pp. 178-189, Budapest, Hungary, 2006.
! A Quantitative Study of Neutrality in GP Boolean Landscapes
Y. Pirola, L. Vanneschi, M. Tomassini, S. Verel, P. Collard, G. Mauri
GECCO'06: Genetic and Evolutionary Computation Conference.
pp. 895-902, Seattle, USA, 2006.
! Anisotropic selection in Cellular Genetic Algorithm
- Best Paper Conference Award Nomination –
D. Simoncini, S. Verel, P. Collard, M. Clergue
GECCO'06: Genetic and Evolutionary Computation Conference.
pp. 559-566, Seattle, USA, 2006.
! Deceptiveness and Neutrality - the ND family of fitness landscapes
W. Beaudoin, P. Collard, C. Escazut, S. Verel
GECCO'06: Genetic and Evolutionary Computation Conference.
pp. 507-514, Seattle, USA, 2006.
! Measuring the Evolvability Landscape to study Neutrality
S. Verel, P. Collard, M. Clergue
Poster at GECCO’06: Genetic and Evolutionary Computation Conference.
ACM press, pp. 613-614, 2006.
! A Study of Fitness Distance Correlation as Difficulty Measure in Genetic Programming
M. Tomassini, L. Vanneschi, P. Collard, M. Clergue
Journal of Evolutionary Computation.
MIT Press, Cambridge, MA, Vol. 13(2), pp. 213-239, 2005.
! Teams of Genetic Predictors for Inverse Problem Solving
M. Defoin-Platel, M. Chami, M. Clergue, P. Collard
EUROGP'05: 8th European Conference on Genetic programming.
In Lecture Notes in Computer Science (LNCS 3447), Springer-Verlag, Lausanne, pp. 341-350, 2005.
! A Survey of Problem Difficulty in Genetic Programming
L. Vanneschi, M. Tomassini, P. Collard, M. Clergue
AI*IA’05: Advances in Artificial Intelligence.
Lecture Notes in Computer Science, vol 3673. Springer-Verlag, 2005.
! Les automates cellulaires et le vivant
P. Collard
In « La Science au Présent 2005 »
Encyclopædia Universalis ISBN 2-85229-512-1, 2005.
! Size Control with Maximum Homologous Crossover
M. Defoin Platel, M. Clergue, P. Collard
EA'05: 7th Intl Conf on Artificial Evolution.
pp. 13-24, Lille, 2005.
! A preliminary investigation of anisotropic selection in cellular genetic algorithms
L. Vanneschi, M. Tomassini, P. Collard, M. Clergue
poster at EA'05: 7th Intl Conf on Artificial Evolution.
Lille, 2005.
! Effective Genetic Programming
L. Vanneschi, M. Tomassini, P. Collard, M. Clergue
9th Congress of the Italian Association for Artificial Intelligence.
Ed. Springer-Verlag, Milan, 2005.
! How to use the scuba diving metaphor to solve problem with neutrality?
P Collard, S. Verel, M. Clergue
ECAI'04: European Conference on Artificial Intelligence.
IOS press, Valence, Espagne, pp. 166-170, 2004.
! Local search heuristics: Fitness Cloud versus Fitness Landscape
P. Collard, S. Verel, M. Clergue
Poster at ECAI'04: European Conference on Artificial Intelligence.
IOS press, Valence, Espagne, pp. 973-974, 2004.
! Dynamical Teams of Genetic Predictors
M. Defoin-Platel, M. Clergue, P. Collard
Poster at ECAI'04: European Conference on Artificial Intelligence.
IOS press, Valence, Espagne, pp. 989-990, 2004.
! Fitness Clouds and Problem Hardness in Genetic Programming
L Vanneschi, M. Clergue, P. Collard, M. Tomassini, and S. Vérel
GECCO'04: Genetic and Evolutionary Computation Conference.
In Lecture Notes in Computer Science (LNCS 3103), Springer-Verlag, Seattle, USA, vol. 3103/2004, pp. 690-701, 2004.
! Scuba Search: when selection meets innovation
S. Verel, P. Collard, M. Clergue
CEC'04: IEEE International Congress on Evolutionary Computation.
IEE press, Portland, USA, pp. 924-931, 2004.
! From Royal Road to Epistatic Road for Variable Length Evolution Algorithm
M. Defoin Platel, S. Verel, M. Clergue, P. Collard
EA'03: 5th European Conference on Artificial Evolution.
In Lecture Notes in Computer Science (LNCS 2936), Springer-Verlag, Berlin Heidelberg, pp. 3-14, 2003.
! Difficulty of Unimodal and Multimodal Landscapes in Genetic Programming
- Best Paper Conference Award Nomination –
L. Vanneschi, M. Tomassini, M. Clergue, P. Collard
GECCO'03: Genetic and Evolutionary Computation Conference.
In Lecture Notes in Computer Science (LNCS 2724), Springer-Verlag, Chicago, USA, pp. 1788-1799, 2003.
! From Royal Road to Epistatic Road for Variable Length Evolution Algorithm
M. Defoin-Platel, S. Verel, M. Clergue, P. Collard
EA’03: International conference Artificial Evolution.
In Lecture notes in computer science (LNCS 2936), pp. 3-14, 2003.
! Maximum Homologous Crossover for Linear Genetic Programming
- Best Paper Conference Award Nomination –
M. Defoin Platel, M. Clergue, P. Collard
EUROGP'03: Genetic Programming, 6th European Conference.
In Lecture Notes in Computer Science (LNCS 2610), Springer-Verlag, Heidelberg, pp. 29-48, 2003.
! Fitness Distance Correlation in Structural Mutation Genetic Programming
L. Vanneschi, M. Tomassini, P. Collard, M. Clergue
EUROGP’03: Genetic Programming, 6th European Conference.
In Lecture Notes in Computer Science (LNCS 2610), Springer-Verlag, Heidelberg, UK, pp. 455-464, 2003.
! Where are Bottleneck in NK-Fitness Landscapes?
S. Verel, P. Collard, M. Clergue
CEC'03: IEEE International Congress on Evolutionary Computation.
IEEE press, Canberra, Australia, pp. 273-280, 2003.
! Homology Gives Size Control in Genetic Programming
M. Defoin Platel, M. Clergue, P. Collard
CEC'03: IEEE International Congress on Evolutionary Computation.
Canberra, Australia, pp. 281-288, 2003.
! Fitness Distance Correlation in Genetic Programming: a Constructive Counterexample
L. Vanneschi, M. Tomassini, P. Collard, M. Clergue
CEC'03: IEEE International Congress on Evolutionary Computation.
IEEE press, Canberra, Australia, pp. 289-296, 2003.
! Fitness Distance Correlation and Problem Difficulty for Genetic Programming
- Best Paper Conference Award Nomination –
M. Clergue, P. Collard, M. Tomassini, L. Vanneschi
GECCO'02: Genetic and Evolutionary Computation Conference.
Morgan Kaufmann Ed. New-York, USA, pp. 724-732, 2002.
! GA-hard functions built by combination of trap functions
M. Clergue & P. Collard
CEC’02: IEEE International Congress on Evolutionary Computation.
Ed. David B. Fogel and Mohamed A. El-Sharkawi and Xin Yao and Garry Greenwood and Hitoshi Iba and Paul Marrow and Mark Shackleton", pp. 249-254, IEEE Press. Honolulu, Hawaii, USA, 2002.
! EMA: an evolutionary method for modelling by mining examples
M. Poulard-Collard & P. Collard
ISE'02: International Computer simulation conference.
San Diego, USA, pp. 110-114, 2002.
! Vie Artificielle
P. Collard
Encyclopædia Universalis, notice, 2001.
! Algorithmes Génétiques
P. Collard
Encyclopædia Universalis, notice, 2001.
! Genetic Algorithm: from Hegemony to Chaos
P. Collard & M. Clergue
Complex Systems Journal.
Vol. 12(1). Ed. S. Wolfram, pp. 1-29, 2000.
! Synthetic Neutrality for Artificial Evolution
P. Collard, M. Clergue, M. Defoin-Platel
AE’99: Artificial Evolution: Fourth European Conference.
in Lecture Notes in Computer Sciences (LNCS 1829), Ed. Springer-Verlag, pp. 254-265, 2000.
! Immune approaches to experience acquisition in time dependent optimization
A. Gaspar & P. Collard
Genetic and Evolutionary Computation Conference.
Workshop Artificial Immune Systems.
Las Vegas, Nevada, USA, pp. 49-50, 2000.
! Two Models of Immunization for Time Dependent Optimization
A. Gaspar & P. Collard
SMC’20: IEEE International Conference on Systems, Man, and Cybernetics.
Nashville, Tennessee, USA, Special Track on Artificial Immune Systems, 2000.
! Misleading Functions for Genetic Algorithms, Designed from Alternation
P. Collard, M. Clergue, F. Bonnin
IEEE International Congress on Evolutionary Computation.
La Jolla Marriott, San Diego, USA, pp. 1056-1063, 2000.
! Genetic Heuristic for Search Space Exploration
M. Clergue & P. Collard
IJCAI'99: International Joint Conference on Artificial Intelligence.
Morgan Kaufmann Ed., Stockholm, Sweden, pp. 1218-1223, 1999. 
! There is alife beyond convergence: using a dual sharing to adapt in time dependent optimization
A. Gaspar & P. Collard
CEC'99: IEEE International Congress on Evolutionary Computation.
Washington, pp. 1859-1866, 1999.
! From Gas to Artificial Immune Systems: Improving Adaptation in Time Dependent Optimization
A. Gaspar & P. Collard
CEC'99: IEEE International Congress on Evolutionary Computation.
Washington, pp. 1867-1874, 1999.
! Genetic Algorithm for Artificial Neurogenesis
M. Clergue & P. Collard
ICEC'98: IEEE International Conference on Evolutionary Computation.
Anchorage, U.S.A, pp. 410-415, 1998.
! Fitness Distance Correlation as statistical measure of Genetic Algorithm difficulty, revisited
P. Collard, A. Gaspar, M. Clergue, C. Escazut
ECAI'98: European Conference on Artificial Intelligence.
Brighton, John Witley & Sons, Ltd, pp. 650-654, 1998.
! Genetic Algorithms at the Edge of a Dream
C. Escazut & P. Collard
AE’97: Artificial Evolution: Third European Conference.
in Lecture Notes in Computer Sciences (LNCS 1363), Ed. Springer-Verlag, pp. 69-80, 1997.
! dGP: How to improve Genetic Programming with Duals
J.L. Segapeli & P. Collard
ICANNGA'97: International Conference on Artificial Neural Networks and Genetic Algorithms.
G. D. Smith, N. C. Steele and R. F. Albrecht Ed. Springer-Verlag, Vienne, Austria, pp. 410-414, 1997.
! Time Dependent Optimization with a folding Genetic Algorithm
A. Gaspar & P. Collard
ICTAI’97: IEEE International Conference on Tools for Artificial Intelligence.
Newport Beach, U.S.A, Ed. IEEE Computer Society Press, pp. 207-214, 1997.
! Artificial Neurogenesis: Applications to the Cart-Pole Problem and to an Autonomous Mobile Robot
O. Michel, M. Clergue, P. Collard
International Journal on Artificial Intelligence Tools.
Vol. 6(4), World Scientific Publishing Company, pp. 613-634, 1997.
! An Evolutionary Approach for Time Dependant Optimization
P. Collard, C. Escazut, A. Gaspar
International Journal on Artificial Intelligence Tools.
Vol. 6(4), Ed. World Scientific, pp. 665-695, 1997.
! DGA and Pareto Elitism: Improving Pareto Optimization
M. Clergue, A. Gaspar, P. Collard
2nd International Symposium on Soft Computing.
Nimes, France, Ed. ICSC Canada, 1997.
! Dual Genetic Algorithm and Pareto Optimization
M. Clergue & P. Collard
ICANNGA’97: International Conference on Artificial Neural Networks and Genetic Algorithms.
G. D. Smith, N. C. Steele and R. F. Albrecht Ed. Springer-Verlag, Vienne, Austria, pp. 188-192, 1997.
! Symmetrical Foldings as a Royal Road toward an Optimal Chromosome Expressiveness
A. Gaspar, M. Clergue, P. Collard
2nd International Symposium on Soft Computing.
Nimes, France, Ed. ICSC Canada, 1997.
! Fitness distance correlation in a Dual Genetic Algorithm
P. Collard & C. Escazut
ECAI'96: 12th European Conference on Artificial Intelligence.
Budapest, John Witley & Sons, Ltd, pp. 218-222, 1996.
! Royal-Road landscapes for a Dual Genetic Algorithm
P. Collard & A. Gaspar
ECAI'96: 12th European Conference on Artificial Intelligence.
Budapest, John Witley & Sons, Ltd, pp. 213-217, 1996.
! Genetic Algorithms and Relational Landscapes
P. Collard & A. Gaspar
ICEC’96 (PPSN): International Conference on Evolutionary Computation: Parallel Problem Solving from Nature.
in Lecture Notes in Computer Sciences (LNCS 1141), Ed. Springer-Verlag, Berlin, pp. 472-481, 1996.
! An Evolutionary Approach for Time Dependant Optimization
- Rewarded: top-ten Best Papers –
C. Collard, C. Escazut, A. Gaspar
ICTAI’96: IEEE International Conference on Tools for Artificial Intelligence.
Toulouse, France, pp. 2-9, 1996.
! Artificial Neurogenesis: An application to Autonomous Robotics
O. Michel & P. Collard
ICTAI’96: International Conference on Tools with Artificial Intelligence.
In M.G. Radle Ed., IEEE Computer Society Press, pp. 207-214, 1996.
! DCS: A Promising Classifier System
P. Collard & C. Escazut
ICNNGA’95: International Conference on Neural Networks and Genetic Algorithms.
Alès, France, pp. 14-17, 1995.
! Learning Disjunctive Normal Forms in a Dual Classifier System
C. Escazut & P. Collard
ECML'95: 8th European Conference on Machine Learning.
Heraklion, Greece, Lecture Notes In Artificial Intelligence, N° 912. Ed. Springer Verlag, pp. 271-274, 1995.
! Relational schemata: A way to improve the expressiveness of Classifiers
P. Collard & C. Escazut
ICGA’95: Conference on genetic Algorithms (ICGA95).
Ed. Morgan Kaufmann, San Francisco, CA. USA, pp. 397-404, 1995.
! Typology of Boolean functions using Walsh Analysis
C. Escazut & P. Collard
ICANNGA'95: International Conference on Neural Networks and Genetic Algorithms.
Alès, France, pp. 160-163, 1995.
! Genetic operators in a Dual Genetic Algorithm
P. Collard & C. Escazut
ICTAI’95: IEEE International Conference on Tools for Artificial Intelligence.
Washington, USA, pp. 12-19, 1995.
! PGA: a Polymorphic Genetic Algorithm
P. Collard, C. Escazut, J.P. Aurand
EUFIT'94: European Conference on Intelligent and Soft Computing.
Aachen, pp. 1331-1332, 1994.
! Identity in a Biomimetic System using an Antagonistic Dynamic
P. Collard, J. Biondi, J. Erceau
Revue “World Future”.
Vol 42, OPA Amsterdam B.V., pp. 59-69, 1994.
! Using a Double-based Genetic Algorithm on a Population of Computer Programs
P. Collard & J.L. Segapeli
ICTAI’94: 6th IEEE International Conference on Tools for Artificial Intelligence.
New Orleans, USA, pp. 418-424, 1994.
! DGA: an efficient Genetic Algorithm
P. Collard & J.P. Aurand
ECAI'94: 11th European Conference on Artificial Intelligence.
Amsterdam, John Witley & Sons, Ltd, pp. 487-491, 1994.
! Dynamic Management of the Specificity in Classifier Systems
C. Escazut, P. Collard & J.L. Cavarero
ICNNGA’93: International Conference on Neural Networks and Genetic Algorithms.
Innsbruck, Austria, Ed. Springer Verlag, pp. 484-490, 1993.
! Cooperation between Reactive Agents: Reinforcement and Hybridization
J. Biondi & P. Collard
Second European Congress on Systemic.
Prague, Vol 2. pp. 599-608, 1993.
! Back-specialization with the ~Bucket-Brigade Algorithm
P. Collard
International Symposium Applied Informatics.
Innsbruck, Austria. Ed., Acta Press, Zurich, pp. 130-134, 1992.
! Reflection Principle in discriminant learning
P. Collard, J. Biondi, J.L. Cavarero
ICKMET’91: International Conference Knowledge Modeling & Expertise Transfer.
Sophia Antipolis, France. IOS Press, pp. 220-233, 1991.
! MAGE : un modèle d'apprentissage général
J. Biondi & P. Collard
COGNITIVA'87, Intelligent Networks and Machines.
Paris, France, pp. 315-320, 1987.
! Ouvrage
@@hal-01284628@@  
__Philippe Collard__, Sébastien Verel, Manuel Clergue.
Systèmes Complexes : une introduction par la pratique
''Presses polytechniques et universitaires romandes'', Publisher of the [[Presses polytechniques et universitaires romandes|http://www.ppur.com/en/product/612/9782880749910/Systemes%20complexes]], 2013, 978-2-88074-991-0. 

! Article dans une revue
@@	hal-02463856, v1@@
Second-order Micromotives and Macrobehaviour
__Philippe Collard__
[[Journal of Computational Social Science|https://www.springer.com/journal/42001 ]], Ed. Springer, janvier 2020.

@@	hal-02175498v1@@
Strong and weak spatial segregation with multilevel discrimination criteria
__Philippe Collard__
[[Complex Systems journal|https://www.complex-systems.com/issues/28-2/]], Volume 28, Issue 2, 2019. 

@@hal-02175508v1@@
lambdaCA: a Peer Learning Cellular Automaton
__Philippe Collard__
[[Cellular Automata Journal|http://www.oldcitypublishing.com/journals/jca-home//]], JCA volume14, Issue 1-2, 2018.

@@hal-01716804@@
The "Two's Company, Three's a Crowd" Game 
__Philippe Collard__.
[[Complex Systems journal|http://www.complex-systems.com]], Volume 26, Issue 3, 2017

@@hal-01716804@@
__Philippe Collard__, Teodor Ghetiu.
Segregation Landscape: A new view on the Schelling segregation space
[[Complex Systems journal|http://www.complex-systems.com]], Volume 25, Issue 3, 2016.

@@hal-01284623@@
__Philippe Collard__, Salma Mesmoudi, Teodor Ghetiu, Fiona Polack.
Emergence of Frontiers in networked Schelling segregationist models
[[Complex Systems journal|http://www.complex-systems.com]], Volume 22, Issue 1, 2013.

@@hal-00767043@@
Martine Collard, __Philippe Collard__, Erick Stattner.
Mobility and Information Flow: Percolation in a ~Multi-Agent Model
''Procedia CS'', 2012, 10, pp.22-29. <10.1016/j.procs.2012.06.007>

@@hal-00563462@@
Leonardo Vanneschi, Yuri Pirola, Giancarlo Mauri, __Philippe Collard__, Sébastien Verel.
A Study of Neutrality of Boolean Function Landscapes in Genetic Programming
''Journal of Theoretical Computer Science'', Elsevier, 2012, 425, pp.34-57. <10.1016/j.tcs.2011.03.011>

! Communication dans un congrès 
@@Méta Micro-motivations : application à la ségrégation spatiale@@
Philippe Collard
~Plate-Forme de l'Intelligence Artificielle ([[PFIA|http://pfia2020.fr/]]) 
Journées Francophones sur les Systèmes ~Multi-Agents ([[JFSMA|http://pfia2020.fr/jfsma-2020/]])
Ed. [[Cépaduès|https://www.cepadues.com/collections/jfsma-58.html]], 2020 (à paraître). 
----
@@hal-01637573@@
Laurent Brisson, Martine Collard, Philippe Collard, Erick Stattner
Information Dissemination in scale-free networks: Profusion versus Scarcity
International Conference on Complex Networks and Their Applications, 2017, ed Springer Verlag.
----
@@hal-??@@
Martine Collard, Philippe Collard, Erick Stattner
The ~Eternal-Return model of human mobility and its impact on information flow
[[Graph Theoretic Approaches for Analyzing Large Scale Social Networks | http://www.igi-global.com/book/graph-theoretic-approaches-analyzing-large/178732]], 2017, ed. IGI

@@hal-01252936v1@@
Martine Collard, __Philippe Collard__, Laurent Brisson, Erick Stattner.
Rumor Spreading Modeling: Profusion versus Scarcity
ASONAM 2015 : IEEE/ACM ''International Conference on Advances in Social Networks Analysis and Mining'', Paris, France. pp.1547 - 1554, 2015. <10.1145/2808797.2809299>

@@hal-01288467v1@@
__Philippe Collard__, Wilfried Segretier.
How can imitation counterbalance innovation? An ABM Bass model for competing products
''IEEE RCIS 2014 Eighth International Conference on Research Challenges in Information Science'', Marrakech, Morocco. 2014. <http://www.rcis-conf.com/rcis2014/>

@@hal-01285679v1@@
__Philippe Collard__.
Beyond the Schelling's segregation model: is it equivalent to be repulse by dissimilar rather to be attracted by similar ?
MIT press. European Conference on the Synthesis and Simulation of Living Systems, Taormina, Italy. ''Advances in Artificial Life'', ed. MIT press, 2013. <https://mitpress.mit.edu/books/advances-artificial-life-ecal-2013>

@@hal-01288725v1@@
Carlin Anaïs, Sébastien Verel, __Philippe Collard__.
Modeling Luxury Consumption: An Inter-Income Classes Study of Demand Dynamics and Social Behaviors
Annual ''Workshop on the Economic Science with Heterogeneous Interacting Agents'' (WEHIA), Reykjavik, Iceland. 2013. <https://sites.google.com/site/wehia2013/>

@@hal-00874344v1@@
Martine Collard, __Philippe Collard__, Erick Stattner.
Simulating human mobility and information diffusion
IEEE/ACM ''International Conference on Advances in Social Networks Analysis and Mining'', Niagara falls, Canada. pp.1-5, 2013

@@hal-00742859v1@@
__Philippe Collard__, Salma Mesmoudi.
How to Prevent Intolerant Agents from High Segregation?
''Advances in Artificial Life'', ECAL, Paris, France. MIT press, pp.8, 2011
----
*[[publications tracked by scholar.google|http://scholar.google.fr/citations?sortby=pubdate&hl=fr&user=dApD5dAAAAAJ&pagesize=100&view_op=list_works]]
*[[publications tracked by bibsonomy|http://www.bibsonomy.org/search/collard+philippe]]
*[[publications tracked by DBLP|http://www.dblp.org/search/index.php#query=author:philippe_collard]]
*[[publications tracked by HAL|http://hal.archives-ouvertes.fr/index.php?action_todo=search&submit=1&s_type=simple&f[0]=@auteur&v[0]=philippe collard&orderby=DATEPROD&ascdesc=DESC]] 
/%*[[publications tracked by scientificcommons|http://en.scientificcommons.org/#search_string=philippe%20collard]]%/
! Articles scientifiques avec comité de programme
@@bgcolor(yellow): Micro-motivations du Second Ordre : application à la ségrégation spatiale@@
Philippe Collard
~Plate-Forme de l'Intelligence Artificielle : Journées Francophones sur les Systèmes ~Multi-Agents ([[PFIA|http://pfia2020.fr/]]) 
[[JFSMA 2020 : Architectures multi-agents pour la simulation de systèmes complexes|https://www.cepadues.com/livres/jfsma-2020-architectures-multi-agents-pour-simulation-systemes-complexes-9782364938533.html]]
Ed. [[Cépaduès|https://www.cepadues.com/collections/jfsma-58.html]], 2020.
----
@@bgcolor(yellow):Second-order Micromotives and Macrobehaviour@@
Philippe Collard
[[Journal of Computational Social Science|https://link.springer.com/journal/42001/3/1?wt_mc=alerts.TOCjournals&utm_source=toc&utm_medium=email&utm_campaign=toc_42001_3_1 ]], Ed. Springer Nature, Volume 3 (1), pp. 209-229, 2020 ([[DOI| https://doi.org/10.1007/s42001-020-00062-z]])
----
@@bgcolor(yellow):Strong and weak spatial segregation with multilevel discrimination criteria@@
Philippe Collard
[[Complex Systems journal|https://www.complex-systems.com/issues/28-2/]], Volume 28, Issue 2, 2019. 
----
@@bgcolor(yellow):The "Two's Company, Three's a Crowd" Game@@
Philippe Collard
[[Complex Systems journal|http://www.complex-systems.com/issues/26-3.html]], Volume 26, Issue 3, 2017. /%[<img[a|./cs25-3.png]]%/
----
@@bgcolor(yellow):Information Dissemination in scale-free networks: Profusion versus Scarcity@@
Laurent Brisson, Philippe Collard, Martine Collard, Erick Stattner
International Conference on Complex Networks and Their Applications, ed. [[Springer Verlag| https://link.springer.com/book/10.1007/978-3-319-72150-7?page=5#toc]], pp. 911-920, 2017
/%
@@bgcolor(yellow):The ~Eternal-Return model of human mobility and its impact on information flow@@
Martine Collard, Philippe Collard, Erick Stattner
[[Graph Theoretic Approaches for Analyzing Large Scale Social Networks | http://www.igi-global.com/book/graph-theoretic-approaches-analyzing-large/178732]], 2017, ed. IGI
----
@@bgcolor(yellow):Segregation Landscape: A new view on the Schelling segregation space@@
Philippe Collard, Teodor Ghetiu
[[Complex Systems journal|http://www.complex-systems.com/issues/25-3.html]], Volume 25, Issue 3, 2016  /%[<img[a|./cs25-3.png]]
----
@@bgcolor(yellow):Emergence of Frontiers in networked Schelling segregationist models@@
Philippe Collard, Salma Mesmoudi, Teodor Ghetiu, and Fiona Polack
[[Complex Systems journal|http://www.complex-systems.com/issues/22-1.html]], Volume 22, Issue 1, 2013 %/

/%! Livre
@@bgcolor(yellow):Systèmes Complexes : une introduction par la pratique@@
Philippe Collard, [[Sébastien Verel|http://www-lisic.univ-littoral.fr/~verel/]], Manuel Clergue
[[EPFL Press, Lausanne|http://www.ppur.com/en/product/612/9782880749910/Systemes%20complexes]],  [[ISBN : 978-2-88074-991-0|http://www.systemescomplexes.fr]], 306 pages, 2013
[[Préface]] [[Marco Tomassini|http://www.hec.unil.ch/people/mtomassini]] /%[<img[a|./couverturePPUR_V2.png]]
@@bgcolor(yellow):lambdaCA: a Peer Learning Cellular Automaton@@
Philippe Collard
[[Cellular Automata Journal|http://www.oldcitypublishing.com/journals/jca-home/jca-issue-contents/jca-volume-14-number-3-4-2019/]], Volume 14, Issue 3-4, 2018.
----

%/
/***
|''Name:''|RearrangeTiddlersPlugin|
|''Source:''|http://www.TiddlyTools.com/#AttachFilePlugin|
|''Author:''|Joe Raii|
|''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|''~CoreVersion:''|2.0.10|

adapted from: http://www.cs.utexas.edu/~joeraii/dragn/#Draggable
changes by ELS:
* hijack refreshTiddler() instead of overridding createTiddler()
* find title element by className instead of elementID
* set cursor style via code instead of stylesheet
* set tooltip help text
* set tiddler "position:relative" when starting drag event, restore saved value when drag ends
* update 2006.08.07: use getElementsByTagName("*") to find title element, even when it is 'buried' deep in tiddler DOM elements (due to custom template usage)

***/
//{{{

Story.prototype.rearrangeTiddlersHijack_refreshTiddler = Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function(title,template,unused1,unused2,unused3,unused4,unused5)
{
	this.rearrangeTiddlersHijack_refreshTiddler(title,template,unused1,unused2,unused3,unused4,unused5);
	var theTiddler = document.getElementById(this.idPrefix + title); if (!theTiddler) return;
	var theHandle;
	var children=theTiddler.getElementsByTagName("*");
	for (var i=0; i<children.length; i++) if (hasClass(children[i],"title")) { theHandle=children[i]; break; }
	if (!theHandle) return theTiddler;

	Drag.init(theHandle, theTiddler, 0, 0, null, null);
	theHandle.style.cursor="move";
	theHandle.title="drag title to re-arrange tiddlers"
	theTiddler.onDrag = function(x,y,myElem) {
		if (this.style.position!="relative")
			{ this.savedstyle=this.style.position; this.style.position="relative"; }
		y = myElem.offsetTop;
		var next = myElem.nextSibling;
		var prev = myElem.previousSibling;
		if (next && y + myElem.offsetHeight > next.offsetTop + next.offsetHeight/2) { 
			myElem.parentNode.removeChild(myElem);
			next.parentNode.insertBefore(myElem, next.nextSibling);//elems[pos+1]);
			myElem.style["top"] = -next.offsetHeight/2+"px";
		}
		if (prev && y < prev.offsetTop + prev.offsetHeight/2) { 
			myElem.parentNode.removeChild(myElem);
			prev.parentNode.insertBefore(myElem, prev);
			myElem.style["top"] = prev.offsetHeight/2+"px";
		}
	};
	theTiddler.onDragEnd = function(x,y,myElem) {
		myElem.style["top"] = "0px";
		if (this.savedstyle!=undefined)
			this.style.position=this.savedstyle;
	}
	return theTiddler;
}

/**************************************************
 * dom-drag.js
 * 09.25.2001
 * www.youngpup.net
 **************************************************
 * 10.28.2001 - fixed minor bug where events
 * sometimes fired off the handle, not the root.
 **************************************************/

var Drag = {
	obj:null,

	init:
	function(o, oRoot, minX, maxX, minY, maxY) {
		o.onmousedown = Drag.start;
		o.root = oRoot && oRoot != null ? oRoot : o ;
		if (isNaN(parseInt(o.root.style.left))) o.root.style.left="0px";
		if (isNaN(parseInt(o.root.style.top))) o.root.style.top="0px";
		o.minX = typeof minX != 'undefined' ? minX : null;
		o.minY = typeof minY != 'undefined' ? minY : null;
		o.maxX = typeof maxX != 'undefined' ? maxX : null;
		o.maxY = typeof maxY != 'undefined' ? maxY : null;
		o.root.onDragStart = new Function();
		o.root.onDragEnd = new Function();
		o.root.onDrag = new Function();
	},

	start:
	function(e) {
		var o = Drag.obj = this;
		e = Drag.fixE(e);
		var y = parseInt(o.root.style.top);
		var x = parseInt(o.root.style.left);
		o.root.onDragStart(x, y, Drag.obj.root);
		o.lastMouseX = e.clientX;
		o.lastMouseY = e.clientY;
		if (o.minX != null) o.minMouseX = e.clientX - x + o.minX;
		if (o.maxX != null) o.maxMouseX = o.minMouseX + o.maxX - o.minX;
		if (o.minY != null) o.minMouseY = e.clientY - y + o.minY;
		if (o.maxY != null) o.maxMouseY = o.minMouseY + o.maxY - o.minY;
		document.onmousemove = Drag.drag;
		document.onmouseup = Drag.end;
		Drag.obj.root.style["z-index"] = "10";
		return false;
	},

	drag:
	function(e) {
		e = Drag.fixE(e);
		var o = Drag.obj;
		var ey = e.clientY;
		var ex = e.clientX;
		var y = parseInt(o.root.style.top);
		var x = parseInt(o.root.style.left);
		var nx, ny;
		if (o.minX != null) ex = Math.max(ex, o.minMouseX);
		if (o.maxX != null) ex = Math.min(ex, o.maxMouseX);
		if (o.minY != null) ey = Math.max(ey, o.minMouseY);
		if (o.maxY != null) ey = Math.min(ey, o.maxMouseY);
		nx = x + (ex - o.lastMouseX);
		ny = y + (ey - o.lastMouseY);
		Drag.obj.root.style["left"] = nx + "px";
		Drag.obj.root.style["top"] = ny + "px";
		Drag.obj.lastMouseX = ex;
		Drag.obj.lastMouseY = ey;
		Drag.obj.root.onDrag(nx, ny, Drag.obj.root);
		return false;
	},

	end:
	function() {
		document.onmousemove = null;
		document.onmouseup = null;
		Drag.obj.root.style["z-index"] = "0";
		Drag.obj.root.onDragEnd(parseInt(Drag.obj.root.style["left"]), parseInt(Drag.obj.root.style["top"]), Drag.obj.root);
		Drag.obj = null;
	},

	fixE:
	function(e) {
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};
//}}}
^^[[°|SideBarOptions]]^^  <<version>>
<<saveChanges>>
<<closeAll>>
<<newTiddler>>
<<slider chkSliderOptionsPanel OptionsPanel options 'Change TiddlyWiki advanced options'>>
----
[[Aide Mémoire]]
[[© tiddlywiki|http://www.tiddlywiki.com/]]
/% <<tagCloud systemConfig interface hide Plugins syntaxe>>%/
@@color(orange):''P''hilippe''C''ollard@@[[.|SiteTitle]]com 
div#mainmenu hr {margin:0px;padding:0px;padding-top:10px;
 border-style:none;
 border-width:1px;
 border-color:#ccc;
 border-bottom-style:solid;
} 
.tiddler {
    border-top: 1px solid #ccc;
    border-left: 1px solid #ccc;
    border-bottom: 3px solid #ccc;
    border-right: 3px solid #ccc;
    margin: 0.5em;
    background:#fff;
    padding: 0.5em;
    -moz-border-radius: 0.5em;
    -moz-box-shadow: 3px 3px 2px #888;
    -webkit-box-shadow: 3px 3px 2px #888;
    box-shadow: 3px 3px 2px #888;
}

.header {height: 80px}
.siteTitle {font-size:2.5em;}
.headerShadow {position:relative; padding:1em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:1em 0em 1em 1em; left:0px; top:0px;}

.viewer pre { font-size:75%; }
/* colour scheme begin */ 
div#titleLine { padding-top:30px; background:#369;}

div#sidebarOptions { background:#69b; }

div#sidebarOptions a.button { color:#eef;}
div#sidebarOptions a.button:hover { color:#fff; background:#252;}
div#mainmenu .tiddlyLink { font-weight:bold;color:#369; }
div#mainmenu .tiddlyLink:hover { background:#369;color:white; }
div#mainmenu .button { font-weight:bold; color:#363; }
div#mainmenu .button:hover { background:#363;color:white; }
div.viewer a.tiddlyLink { color:#369; }
div.viewer a.tiddlyLink:hover { background:#acd; }
div.footer a.tiddlyLink { color:#369; }
div.footer a.tiddlyLink:hover { background:#acd; }
.editorFooter a.button, .tiddler .button { color: #369; background:#eee; }
.editorFooter a.button:hover, .tiddler .button:hover { color: #fff; background: #369; }
.editorFooter a.button:active, .tiddler .button:active { color: #fff; background: #369; }
.editorFooter a:link { color: #369; } 
#popup {color:#eee; background:#369;}
#popup a {color:#fff; background:#369; }
#popup a:hover {color:black; background:#eee;}

div.tabset {background:#69b;}

a.tab {background:#369;}
#mainMenu .externalLink { color:#252; }
#mainMenu .externalLink:hover { color:white;background:#696; }
.tiddler .externalLink { color:#252; }
.tiddler .externalLink:visited { color:#252; }
.tiddler .externalLink:hover { color:#252;background:#ada; }
.viewer a:link { color: #252; } 
.viewer a:visited { color: #252; } 
.viewer a:hover { color:#252; background:#ada; }
#titleLine a {color:white;}
a.tabSelected {background:#369;font-weight:bold;}
#sidebarTabs {color: white;background-color: #69b;}
#sidebarTabs .tabSelected {color: white;background-color: #369;}
#sidebarTabs .tabUnselected {color: white;background-color: #369;}
#sidebarTabs .tabContents {background-color: #69c;}
#sidebarTabs .txtMoreTab .tabSelected {background-color: #7ad;}
#sidebarTabs .txtMoreTab .tabUnselected {background-color: #369;}
#sidebarTabs .txtMoreTab .tabContents {background-color: #7ad;}
#sidebarTabs .txtMoreTab .tabset {background-color: #69b;}
#sidebarTabs .tabContents .tiddlyLink {color: #135;}
#sidebarTabs .tabContents .tiddlyLink:hover {background-color: #eee;color: black;}
#sidebarTabs .tabContents .button {color: #eee;}
#sidebarTabs .tabContents .button:hover {color: #white;background-color: #252;}
/* colour scheme end */

#displayArea {
 margin-right: 15em;
 margin-left: 12em;
}

// this works great in firefox but breaks something with ie. help??
// .toolbar { float:right; }


.viewer h1,
.viewer h2,
.viewer h3,
.viewer h4,
.viewer h5 { font-family: 'Trebuchet MS' Arial sans-serif; background:#f8f8f8; }

.viewer h1 { font-size:1.2em; }
.viewer h2 { font-size:1.1em; }
.viewer h3 { font-size:1.0em; }
.viewer h4 { font-size:0.9em; }
.viewer h5 { font-size:0.8em; }

body {
 background:#eee;
}

div.tiddler {
 background:white;
 border-top:solid #ccc 2px;
 border-left:solid #ccc 2px;
 border-bottom:solid #aaa 2px;
 border-right:solid #aaa 2px;
 margin-bottom:5px;
 padding-bottom:10px;
}


div.title {
 font-family:'Trebuchet MS' Arial sans-serif;
 font-size:150%;
}

div.editor input,
div.editor textarea {
 background:#ffe;
 border:solid #aa9 2px;
 margin:4px;
}

@media print {
 div.tiddler {border:none white 0px; border-top:solid #bbb 1px;}
 div.tagged {border:none white 0px;}
 #titleLine { display:none; }
 #displayArea { margin-right: 0px; margin-left: 0px; }
 .toolbar { display:none; }
}
/*
{{{
*/
body {
 background-color: #ffffff;
}

#siteSubtitle {
 font-weight: bold;
}


#displayArea {
 margin: 0em 15em 0em 0.5em;
 background-color: #ffffff;
}

#titleLine {
 color: #ffffff;
 background-color: #330000;
 padding: 1em 1em;
}

#sidebarOptions .sidebarSubHeading {
 color: #000000;
}

.tiddler .button {
 padding: 0.2em 0.4em 0.2em 0.4em;
 background-color: #ffffef;
 color: #000000;
 border-left: 1px solid #bcbcbc;
 border-top: 1px solid #bcbcbc;
 border-right: 1px solid #330000;
 border-bottom: 1px solid #330000;
}

.tiddler .button:hover {
 color: #000000;
 background-color: #ffe271;
 border-left: 1px solid #330000;
 border-top: 1px solid #330000;
 border-right: 1px solid #bcbcbc;
 border-bottom: 1px solid #bcbcbc;
}

#tiddlerDisplay {
}

.tiddler {
}

.selectedTiddler {
 background-color: #ffffcc;
 font-size: 9pt;
 padding-top: 10px;
 padding-left: 10px;
 padding-bottom: 10px;
 padding-right: 10px;
 border-left: 1px solid #330000;
 border-top: 1px solid #330000;
 border-right: 1px solid #330000;
 border-bottom: 1px solid #330000;
}

.unselectedTiddler {
 font-size: 9pt;
 padding-top: 10px;
 padding-left: 10px;
 padding-bottom: 10px;
 padding-right: 10px;
 border-left: 1px solid #ffffff;
 border-top: 1px solid #ffffff;
 border-right: 1px solid #ffffff;
 border-bottom: 1px solid #ffffff;
}

.title {
 font-size: 13pt;
 padding-left: 5px;
 background-color: #ffff77;
 border-left: 1px solid #330000;
 //border-top: 1px solid #330000;
 border-right: 1px solid #330000;
 //border-bottom: 1px solid #330000;
// background-color: #cccc99;
}

.viewer pre { width: 100%; overflow: auto; }
}}}
<<tagCloud systemConfig>>
/***

|Name|ToggleSideBarMacro|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#ToggleSideBarMacro|
|Version|1.0|
|Requires|~TW2.x|
!Description:
Provides a button for toggling visibility of the SideBar. You can choose whether the SideBar should initially be hidden or displayed.

!Demo
<<toggleSideBar "Toggle Sidebar">>

!Usage:
{{{<<toggleSideBar>>}}} <<toggleSideBar>>
additional options:
{{{<<toggleSideBar label tooltip show/hide>>}}} where:
label = custom label for the button,
tooltip = custom tooltip for the button,
show/hide = use one or the other, determines whether the sidebar is shown at first or not.
(default is to show the sidebar)

You can add it to your tiddler toolbar, your MainMenu, or where you like really.
If you are using a horizontal MainMenu and want the button to be right aligned, put the following in your StyleSheet:
{{{ .HideSideBarButton {float:right;} }}}

!History
*23-07-06: version 1.0: completely rewritten, now works with custom stylesheets too, and easier to customize start behaviour. 
*20-07-06: version 0.11
*27-04-06: version 0.1: working.

!Code
***/
//{{{
config.macros.toggleSideBar={};

config.macros.toggleSideBar.settings={
         styleHide :  "#sidebar { display: none;}\n"+"#contentWrapper #displayArea { margin-right: 1em;}\n"+"",
         styleShow : " ",
         arrow1: "«",
         arrow2: "»"
};

config.macros.toggleSideBar.handler=function (place,macroName,params,wikifier,paramString,tiddler)
{
          var tooltip= params[1]||'toggle sidebar';
          var mode = (params[2] && params[2]=="hide")? "hide":"show";
          var arrow = (mode == "hide")? this.settings.arrow1:this.settings.arrow2;
          var label= (params[0]&&params[0]!='.')?params[0]+" "+arrow:arrow;
          var theBtn = createTiddlyButton(place,label,tooltip,this.onToggleSideBar,"button HideSideBarButton");
          if (mode == "hide")
             { 
             (document.getElementById("sidebar")).setAttribute("toggle","hide");
              setStylesheet(this.settings.styleHide,"ToggleSideBarStyles");
             }
};

config.macros.toggleSideBar.onToggleSideBar = function(){
          var sidebar = document.getElementById("sidebar");
          var settings = config.macros.toggleSideBar.settings;
          if (sidebar.getAttribute("toggle")=='hide')
             {
              setStylesheet(settings.styleShow,"ToggleSideBarStyles");
              sidebar.setAttribute("toggle","show");
              this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);
              }
          else
              {    
               setStylesheet(settings.styleHide,"ToggleSideBarStyles");
               sidebar.setAttribute("toggle","hide");
               this.firstChild.data= (this.firstChild.data).replace(settings.arrow2,settings.arrow1);
              }

     return false;
}

setStylesheet(".HideSideBarButton .button {font-weight:bold; padding: 0 5px;}\n","ToggleSideBarButtonStyles");

//}}}
|~ViewToolbar|fullscreen closeTiddler closeOthers collapseTiddler  collapseOthers +editTiddler > fields syncing permalink references jump|
|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|
<<newTiddler>> <<newJournal "DD MMM YYYY">>
<<<
[[Configurer]]
----
[[Administration Française|http://www.service-public.fr/]]
[[Education Nationale|http://www.education.gouv.fr/index.php]]
[[LegiFrance|http://www.legifrance.gouv.fr/]]
[[Bulletin Officiel|http://www.education.gouv.fr/bo/default.htm]]
[[Université de Nice-Sophia Antipolis|http://portail.unice.fr/jahia/jsp/index.jsp]]
----
[[Pages Jaunes|http://www.pagesjaunes.fr/]]
[[Météo|http://www.meteofrance.com/FR/index.jsp]]
[[Le Conjugueur|http://www.leconjugueur.com/]]
A WikiWord is a word composed of a bunch of other words slammed together with each of their first letters capitalised. WikiWord notation in a conventional WikiWikiWeb is used to name individual pages while TiddlyWiki uses WikiWord titles for smaller chunks of MicroContent. Referring to a page with a WikiWord automatically creates a link to it. Clicking on a link jumps to that page or, if it doesn't exist, to an editor to create it. This ThirdVersion of TiddlyWiki also adds NonWikiWordLinks.
Philippe Collard
config.macros.cloud = {
	tagstip: "%1 tiddlers tagged with '%0'",
	refslabel: " (%0 references)",
	refstip: "%1 tiddlers have links to '%0'",
	linkslabel: " (%0 links)",
	linkstip: "'%0' has links to %1 other tiddlers",
	groups: 9,
	init: function() {
		config.macros.tagCloud=config.macros.cloud; // for backward-compatibility
		config.shadowTiddlers.TagCloud='<<cloud>>';
		config.shadowTiddlers.StyleSheetTagCloud=
			'/*{{{*/\n'
			+'.tagCloud span {line-height: 3.5em; margin:3px;}\n'
			+'.tagCloud1{font-size: 80%;}\n'
			+'.tagCloud2{font-size: 100%;}\n'
			+'.tagCloud3{font-size: 120%;}\n'
			+'.tagCloud4{font-size: 140%;}\n'
			+'.tagCloud5{font-size: 160%;}\n'
			+'.tagCloud6{font-size: 180%;}\n'
			+'.tagCloud7{font-size: 200%;}\n'
			+'.tagCloud8{font-size: 220%;}\n'
			+'.tagCloud9{font-size: 240%;}\n'
			+'/*}}}*/\n';
		setStylesheet(store.getTiddlerText('StyleSheetTagCloud'),'tagCloudsStyles');
	},
	getLinks: function(tiddler) { // get list of links to existing tiddlers and shadows
		if (!tiddler.linksUpdated) tiddler.changed();
		var list=[]; for (var i=0; i<tiddler.links.length; i++) {
			var title=tiddler.links[i];
			if (store.isShadowTiddler(title)||store.tiddlerExists(title))
				list.push(title);
		}
		return list;
	},
	handler: function(place,macroName,params) {
		// unpack params
		var inc=[]; var ex=[]; var limit=0; var action='popup';
		var links=(params[0]&&params[0].toLowerCase()=='links'); if (links) params.shift();
		var refs=(params[0]&&params[0].toLowerCase()=='references'); if (refs) params.shift();
		if (params[0]&&params[0].substr(0,7).toLowerCase()=='action:')
			action=params.shift().substr(7).toLowerCase();
		if (params[0]&&params[0].substr(0,6).toLowerCase()=='limit:')
			limit=parseInt(params.shift().substr(6));
		while (params.length) {
			if (params[0].substr(0,1)=='+') { // read taglist from tiddler
				inc=inc.concat(store.getTiddlerText(params[0].substr(1),'').readBracketedList());
			} else if (params[0].substr(0,1)=='-') { // exclude taglist from tiddler
				ex=ex.concat(store.getTiddlerText(params[0].substr(1),'').readBracketedList());
			} else if (params[0].substr(0,1)=='=') { // get tag list using tagged tags
				var tagged=store.getTaggedTiddlers(params[0].substr(1));
				for (var t=0; t<tagged.length; t++) inc.push(tagged[t].title);
			} else ex.push(params[0]); // exclude params
			params.shift();
		}
		// get all items, include/exclude specific items
		var items=[];
		var list=(links||refs)?store.getTiddlers('title','excludeLists'):store.getTags();
		for (var t=0; t<list.length; t++) {
			var title=(links||refs)?list[t].title:list[t][0];
			if (links)	var count=this.getLinks(list[t]).length;
			else if (refs)	var count=store.getReferringTiddlers(title).length;
			else 		var count=list[t][1];
			if ((!inc.length||inc.contains(title))&&(!ex.length||!ex.contains(title)))
				items.push({ title:title, count:count });
		}
		if(!items.length) return;
		// sort by decending count, limit results (optional)
		items=items.sort(function(a,b){return(a.count==b.count)?0:(a.count>b.count?-1:1);});
		while (limit && items.length>limit) items.pop();
		// find min/max and group size
		var most=items[0].count;
		var least=items[items.length-1].count;
		var groupSize=(most-least+1)/this.groups;
		// sort by title and draw the cloud of items
		items=items.sort(function(a,b){return(a.title==b.title)?0:(a.title>b.title?1:-1);});
		var cloudWrapper = createTiddlyElement(place,'div',null,'tagCloud',null);
		for (var t=0; t<items.length; t++) {
			cloudWrapper.appendChild(document.createTextNode(' '));
			var group=Math.ceil((items[t].count-least)/groupSize)||1;
			var className='tagCloudtag tagCloud'+group;
			var tip=refs?this.refstip:links?this.linkstip:this.tagstip;
			tip=tip.format([items[t].title,items[t].count]);
			if (action=='goto') { // TAG/LINK/REFERENCES GOTO
				var btn=createTiddlyLink(cloudWrapper,items[t].title,true,className);
				btn.title=tip;
				btn.style.fontWeight='normal';
			} else if (!links&&!refs) { // TAG POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,onClickTag,className);
				btn.setAttribute('tag',items[t].title);
			} else { // LINK/REFERENCES POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,
					function(ev) { var e=ev||window.event; var cmt=config.macros.cloud;
						var popup = Popup.create(this);
						var title = this.getAttribute('tiddler');
						var count = this.getAttribute('count');
						var refs  = this.getAttribute('refs')=='T';
						var links = this.getAttribute('links')=='T';
						var label = (refs?cmt.refslabel:cmt.linkslabel).format([count]);
						createTiddlyLink(popup,title,true);
						createTiddlyText(popup,label);
						createTiddlyElement(popup,'hr');
						if (refs) {
							popup.setAttribute('tiddler',title);
							config.commands.references.handlePopup(popup,title);
						}
						if (links) {
							var tiddler = store.fetchTiddler(title);
							var links=config.macros.cloud.getLinks(tiddler);
							for(var i=0;i<links.length;i++)
								createTiddlyLink(createTiddlyElement(popup,'li'),
									links[i],true);
						}
						Popup.show();
						e.cancelBubble=true; if(e.stopPropagation) e.stopPropagation();
						return false;
					}, className);
				btn.setAttribute('tiddler',items[t].title);
				btn.setAttribute('count',items[t].count);
				btn.setAttribute('refs',refs?'T':'F');
				btn.setAttribute('links',links?'T':'F');
				btn.title=tip;
			}
		}
	}
};