<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rpi/tipping-points/src, branch main</title>
<subtitle>FNS Research Project</subtitle>
<link rel='alternate' type='text/html' href='https://git.aidenw.net/rpi/tipping-points/'/>
<entry>
<title>add confirmation bias and exp weights</title>
<updated>2025-12-13T04:48:39+00:00</updated>
<author>
<name>Aiden Woodruff</name>
<email>woodra@rpi.edu</email>
</author>
<published>2025-12-13T04:48:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.aidenw.net/rpi/tipping-points/commit/?id=c0268db7865553ceece33d0ebc9a4b03bbbd0633'/>
<id>c0268db7865553ceece33d0ebc9a4b03bbbd0633</id>
<content type='text'>
- src/NameGame.cc: remove std::map best_move implementation.
- add explicit confirmation bias macro.
- add default random tie-breaker.
- src/many-async.cc: reseed for each committed minority value because
  entropy may be exhausted.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- src/NameGame.cc: remove std::map best_move implementation.
- add explicit confirmation bias macro.
- add default random tie-breaker.
- src/many-async.cc: reseed for each committed minority value because
  entropy may be exhausted.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>change adoption calculation</title>
<updated>2025-11-29T17:22:04+00:00</updated>
<author>
<name>Aiden Woodruff</name>
<email>woodra@rpi.edu</email>
</author>
<published>2025-11-29T17:22:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.aidenw.net/rpi/tipping-points/commit/?id=a0c774f052fb378cf94e184aa0456370dad1647f'/>
<id>a0c774f052fb378cf94e184aa0456370dad1647f</id>
<content type='text'>
- src/NameGame.cc (run): count last N uncommitted strategies and report
  that instead of the last N strategies.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- src/NameGame.cc (run): count last N uncommitted strategies and report
  that instead of the last N strategies.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>add multithreaded executable</title>
<updated>2025-11-29T03:29:47+00:00</updated>
<author>
<name>Aiden Woodruff</name>
<email>woodra@rpi.edu</email>
</author>
<published>2025-11-29T03:29:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.aidenw.net/rpi/tipping-points/commit/?id=c598445677c7911370ddb23b1fdedc1810159ccf'/>
<id>c598445677c7911370ddb23b1fdedc1810159ccf</id>
<content type='text'>
- src/many-async.cc: leverage std::async to run concurrent experiments.
- CMakeLists.txt: add memory list option and make it default to ON.
- src/CMakeLists.txt: make the NameGame.cc into a library now that it's
  being used by three different executables.
- add compile definition with tipping points cmake option.
- add many-async executable.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- src/many-async.cc: leverage std::async to run concurrent experiments.
- CMakeLists.txt: add memory list option and make it default to ON.
- src/CMakeLists.txt: make the NameGame.cc into a library now that it's
  being used by three different executables.
- add compile definition with tipping points cmake option.
- add many-async executable.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>improve NameGame.cc</title>
<updated>2025-11-29T02:46:40+00:00</updated>
<author>
<name>Aiden Woodruff</name>
<email>woodra@rpi.edu</email>
</author>
<published>2025-11-29T02:46:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.aidenw.net/rpi/tipping-points/commit/?id=80ca2b9a2499b4353685055dbf8bd49ca7521803'/>
<id>80ca2b9a2499b4353685055dbf8bd49ca7521803</id>
<content type='text'>
- src/NameGame.cc: explicit instantiation of copy assignment operator to
  avoid over-optimization removing the function.
- (update_memory): use TVec DelLast instead of Trunc which calls
  realloc. This is a little bit faster but still doesn't beat TLst.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- src/NameGame.cc: explicit instantiation of copy assignment operator to
  avoid over-optimization removing the function.
- (update_memory): use TVec DelLast instead of Trunc which calls
  realloc. This is a little bit faster but still doesn't beat TLst.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>optimizing many</title>
<updated>2025-11-27T05:45:06+00:00</updated>
<author>
<name>Aiden Woodruff</name>
<email>woodra@rpi.edu</email>
</author>
<published>2025-11-27T05:45:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.aidenw.net/rpi/tipping-points/commit/?id=779ef216d71c12ba3f7ef6cfee67bcaccb3293e9'/>
<id>779ef216d71c12ba3f7ef6cfee67bcaccb3293e9</id>
<content type='text'>
- src/NameGame.h: update network to use linked list for memory (given
  macro). seems to provide ~2x speedup.
- src/NameGame.cc: add iterator for TLst type.
- add copy constructor and copy assignment operator for TLst that are
  not defined by the SNAP library.
- add TP_BESTMOVE_STATIC to use static array for voting to speed up
  best_move by ~2x.
- add conditional logic in places to allow for A/B testing.
- based off testing I can get ~4x total improvement so I think I will
  make both of these permanent (except maybe leaving in the old
  unoptimized code in case I want to add multiple strategies).
- TASKS.md: update tasks.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- src/NameGame.h: update network to use linked list for memory (given
  macro). seems to provide ~2x speedup.
- src/NameGame.cc: add iterator for TLst type.
- add copy constructor and copy assignment operator for TLst that are
  not defined by the SNAP library.
- add TP_BESTMOVE_STATIC to use static array for voting to speed up
  best_move by ~2x.
- add conditional logic in places to allow for A/B testing.
- based off testing I can get ~4x total improvement so I think I will
  make both of these permanent (except maybe leaving in the old
  unoptimized code in case I want to add multiple strategies).
- TASKS.md: update tasks.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>add macro fenced exponential memory decay</title>
<updated>2025-11-22T19:00:03+00:00</updated>
<author>
<name>Aiden Woodruff</name>
<email>woodra@rpi.edu</email>
</author>
<published>2025-11-22T19:00:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.aidenw.net/rpi/tipping-points/commit/?id=bdb551d54bc9c2eceff7db96518cfd6e1706bf5b'/>
<id>bdb551d54bc9c2eceff7db96518cfd6e1706bf5b</id>
<content type='text'>
- src/NameGame.cc: add static weight function that memoizes exp for
  different weight lengths.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- src/NameGame.cc: add static weight function that memoizes exp for
  different weight lengths.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>split main executable into many and one</title>
<updated>2025-11-22T18:43:57+00:00</updated>
<author>
<name>Aiden Woodruff</name>
<email>woodra@rpi.edu</email>
</author>
<published>2025-11-22T18:43:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.aidenw.net/rpi/tipping-points/commit/?id=dbc0fea0bdedbcca83e6d42b3d4f3363a2f0fba8'/>
<id>dbc0fea0bdedbcca83e6d42b3d4f3363a2f0fba8</id>
<content type='text'>
- src/main.cc: remove file.
- src/one.cc: add executable to do a single game run and write the
  strategy record.
- src/many.cc: add executable to run many trials at each minority size.
- write adoption amount.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- src/main.cc: remove file.
- src/one.cc: add executable to do a single game run and write the
  strategy record.
- src/many.cc: add executable to run many trials at each minority size.
- write adoption amount.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>change main to one run game</title>
<updated>2025-11-21T16:03:49+00:00</updated>
<author>
<name>Aiden Woodruff</name>
<email>woodra@rpi.edu</email>
</author>
<published>2025-11-21T16:03:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.aidenw.net/rpi/tipping-points/commit/?id=232c1c76d97bea6622f8abdd99f6709590f1cead'/>
<id>232c1c76d97bea6622f8abdd99f6709590f1cead</id>
<content type='text'>
- src/main.cc: run only one game with prescribed settings and output the
  number of new strategy plays.
- src/NameGame.h: change NameGame::run to return an int which is the
  number of non-committed players that changed their mind.
- src/NameGame.cc (run): do not display average for brevity.
- output the uncommitted new strategy plays.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- src/main.cc: run only one game with prescribed settings and output the
  number of new strategy plays.
- src/NameGame.h: change NameGame::run to return an int which is the
  number of non-committed players that changed their mind.
- src/NameGame.cc (run): do not display average for brevity.
- output the uncommitted new strategy plays.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fix best_move selection</title>
<updated>2025-11-21T13:53:21+00:00</updated>
<author>
<name>Aiden Woodruff</name>
<email>woodra@rpi.edu</email>
</author>
<published>2025-11-21T13:53:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.aidenw.net/rpi/tipping-points/commit/?id=b7080ba3627aa07de5be3385e62d16d9ea428167'/>
<id>b7080ba3627aa07de5be3385e62d16d9ea428167</id>
<content type='text'>
- src/NameGame.cc: replace faulty fraction accounting with simple
  std::max_element.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- src/NameGame.cc: replace faulty fraction accounting with simple
  std::max_element.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>update tasks and update main parameters</title>
<updated>2025-11-20T05:29:44+00:00</updated>
<author>
<name>Aiden Woodruff</name>
<email>woodra@rpi.edu</email>
</author>
<published>2025-11-20T05:29:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.aidenw.net/rpi/tipping-points/commit/?id=a2ef6dd79e25e193a818a527f36cd1bcded716a6'/>
<id>a2ef6dd79e25e193a818a527f36cd1bcded716a6</id>
<content type='text'>
- TASKS.md: add coding tasks.
- src/main.cc: increase group size to 1000 like in paper.
- set memory length explicitly
- run for T*group size where T=1000.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- TASKS.md: add coding tasks.
- src/main.cc: increase group size to 1000 like in paper.
- set memory length explicitly
- run for T*group size where T=1000.

Signed-off-by: Aiden Woodruff &lt;woodra@rpi.edu&gt;
</pre>
</div>
</content>
</entry>
</feed>
