#+TITLE: Robust Physical Computation
#+OPTIONS: num:nil ^:nil
#+LaTeX_CLASS: normal
#+EXPORT_EXCLUDE_TAGS: hide
#+STARTUP: hideblocks

* meta
- class web page http://cs.unm.edu/~ackley/691/
- IXM wiki http://robust.cs.unm.edu/doku.php
- IXM API http://livingcomputation.com/s/doc/
- Office Hours: Tuesday/Thursday: 4-5, Wednesday: 1-3

** Robust Physical Computation
   :PROPERTIES:
   :ID:       6b227fbc-e648-4e21-9c32-41a6071fbb00
   :END:

* topics
** pondering
Over the course of listening to the research plan's of my lab-mates,
I've got some general IXM thoughts

- George Bezerra is working with networks on chip.  Many of the XIM
  issues (e.g. communication between a grid of processing elements,
  distributed memory, etc...) have direct counterparts in the research
  of these new large chips
  - schemas for communicating between boards/processors
    (e.g. "Dimension-Order Routing)
  - cache coherence (both "snooping" and "directory")
  - a variety of scheduling algorithms for coordinating computation
    distributed in both time (dependencies) and space (across separate
    processors)

- In terms of slightly different hardware for the IXM, I wonder what
  the smallest feasible unit of IXM could be -- meaning smallest
  board, least amount of functionality, cheapest processor,
  s.t. boards could still connect and collaborate,
  (e.g. microcontrollers, Digital Signal Processor with some
  generalizable functionality)

** open source hard ware
http://vimeo.com/11407341

** synapse darpa project
- http://www.neurdon.com/about-synapse/
- http://celest.bu.edu/outreach-and-impacts/the-synapse-project

** remote board reset -- rescue from blink code

#+begin_src c++
  SET_REFLEX_FLAGS(RF_OKAY_NEW_GUY); // but this in setup(), blink 10 times then reboot
  SET_REFLEX_FLAGS(RF_KARMIC_REBIRTH); // if recovering from a blink code, burn from a neighbor
#+end_src

** color/video e-paper -- would be good w/IXM
http://pixelqi.com/

they have DIY netbook transition kits

** communication system =Net=
first_thoughts.pdf

- name could possibly be =Net=
- FGR = functional gradient routing
- build upon existing reflexes -- =Net.broadcast= could make one of
  your reflexes available to anyone inside of your gradient
- virtual faces that hyper-jump to other boards

** profiling information
   :PROPERTIES:
   :CUSTOM_ID: profiling-information
   :END:
- there's a profiling example in AdvancedExamples
- looks pretty easy to use
- recall =Profile.begin()= after reporting if you don't want cumulative stats

** memristor
   :PROPERTIES:
   :CUSTOM_ID: memristor
   :END:

- wiki:Memristor
- wired:Memristor

** track buffer status -- am I overflowing?
=SFBSerial.h= has some new measures
- [input/output]Buffer[used/free]
- brokenPackets

** mobile software agents
implement some simple virtual machine
- RPN
- bytecodes

processes carry around a little stack or something that they can
unpack when they land on a new board

*** specialized processors -- heterogeneous environment
with respect to mobile processes

- cell processor (play station)
- road runner super-computer has many different types of processors
- biological cells all start with same DNA then specialize -- IXM
  w/same initial code, then specialize

** display
sparkfun
- 3.3 volts
- 16x2 Character LCD
- *serial* display (much easier)

** distributed problem sets
- evolve solutions to the four coloring problem distributed over the boards
- more general -- any graph problem (e.g. Hamiltonian path) could be
  distributed over the boards -- which themselves form a graph, or
  more appropriately the edges in a hypergraph which shares vertices
  with the graph of the problem
  - would need a way of mapping vertices to IXMs and edges through IXM
    connections...
  - could dynamically change the number of IXMs devoted to subgraphs
    as needed by the problem

** distributed computation (scheme-splits)
- referential parsimony
- following your tail up through the call stack, caching, make space
  requirements reasonable

** anything that's arduino-ready we can talk to
** wii remote
johnny lee, has done some wii remote stuff

* task [44/44]
** DONE persistence/future of RPC/IXM
   DEADLINE: <2010-05-10 Mon>
   :PROPERTIES:
   :ID:       c6faa770-cae8-46d9-b156-edcf47697bfd
   :END:

#+begin_verse
2: A discussion topic for Monday:

     How can RPC/IXMish have a long life
     and avoid the fate of the vanishing
     'Jelly Bean Machine'?

   I'm looking for any and everything
   from brainstorming and out of the box
   ideas to practical and near term
   actions.

   Samples:
    - Expectation management
    - Delay confronting incumbent
    - Steady science and engineering
    - Multiple thrusts/funding sources
    - New hardware generations
    - Demos, videos, theme comic book,
      product placements, endorsements..
#+end_verse

** DONE tell sam about Euclidean TSP algorithm
- divide space up into grids, finding a crossing across grids
- due to Aurora
- /portals/ or /border crossings/ -- the more of them you make, the
  better the approximation

** DONE do some writing
   DEADLINE: <2010-05-10 Mon>
   :PROPERTIES:
   :ID:       40440367-58e5-440a-8ac3-229129aeb2ce
   :END:
churn out some of the text that doesn't depend on results.

** DONE something up with the boards?
: sfbpush
: Ln Wed Apr 28 23:54:01 2010 [Running in server mode]
: Ln Wed Apr 28 23:54:01 2010 [Loaded EMS:PEC/20100429-55350 Size=73240 CS=13319D7-D38392F Copyright=GPL V3]
: Ln Wed Apr 28 23:54:02 2010 [North baud rate set to 115200]
: Ln Wed Apr 28 23:54:10 2010 [North baud rate set to 9600]
: Ln Wed Apr 28 23:54:10 2010 [North baud rate set to 115200]
: Ln Wed Apr 28 23:54:11 2010 [North seeking arch 2 code, responding]
: Ln 8.261 Best offer so far: EMS:PEC/20100429-55350 (size 73236) from North 1L6JUGI/SFBPRG
: c (1,0) 0.00 0.00 7120 471.65 736.25 10.00 10.00 -1.00 55+xs*55+ys*+ +534084/-0+4x/6-*80y23y29x/y-96/+x-y*89+y3+/+4+y/
: c (2,3) 0.00 0.00 7120 476.42 793.03 10.00 10.00 -1.00 55+xs*55+ys*+ 4*+15x2x1y/*74+/8840-y+5y9x/y-96/+x-*48+y3+/++y/
: c (1,3) 0.00 0.00 7120 477.67 764.33 10.00 10.00 -1.00 55+xs*55+ys*+ 4+74/7y/39*5+80978y9x/y-77/+x-*469+y3+/++y/
: Ln 9.758 About to burn: 0/0 bootCount=1222; burnCount=832 (+1); powerOnHours=843; flags=0
: Ln Wed Apr 28 23:54:13 2010 [Sending checksum North for 0x10014+32748=DA6A566-CD16DB7B]
: Ln Wed Apr 28 23:54:18 2010 [Sending checksum North for 0x18000+32768=5A68A208-C62322E8]
: Ln Wed Apr 28 23:54:23 2010 [Sending checksum North for 0x20000+7700=B7496EA9-E9D7245E]
: Ln Wed Apr 28 23:54:26 2010 [North burned successfully!]
: Ln Wed Apr 28 23:54:29 2010 [North baud rate set to 9600]

** DONE simplified polynomials
try something like... (x+1)^k(y+2)^l

** DONE begin experimentation
follow through on the TODOs posted up there

#+begin_verse
- Parameter lockdown:
  0: Fix # sample points independent of range+dimensionality
  1: Repro tournament==3
  2: Mutation period==100ms     50ms?
  3: Crossover period==500ms
  4: Sharing period==10000ms
  5: Geometry is line for 1D + grid for 2D

- Functions:
  1: Matching exactly-matchable functions
     1a: Functions of order n for n=0,1,2,3,4,5
         3x-  xx3**   3333333+++++  
     1b: Test them.  
         Question: Discover exact match?  How fast?
  2: Approximating non-exactly-matchable functions

  3: f(x,y) 2D inputs s

- Crossed with:
  All work on all range
  All work on nonoverlapping patches
  All work on overlapping patches
  All work adaptively?

- Anecdotal samples of varying geometry:
  Line vs D
  Grid vs D
#+end_verse

** DONE share IXM git repositories on the mailing list
push these to the public mailing list.

** CANCELED guile on IXM
   - State "CANCELED"   from "TODO"       [2010-04-17 Sat 23:24] \\
     impossible
- see http://www.lonelycactus.com/guilebook/x246.html for good guile intro
- see file:~/research/ixm/learn-guile/ for simple embedded guile
- see file:~/guile-arm/ for guile compiled for arm

compiling guile with
: ./configure --without-threads --target=arm-linux-gcc --host=arm-linux --prefix=/home/eschulte/guile-arm/
resulting in guile-arm-compile.out

refer to -- the cross compilation guide
#+begin_verse
  Cross building Guile  =====================================================

  Guile can be cross-compiled for Windows using the i586-mingw32msvc
  cross-compiler.  To do this, you first need to cross-build Guile's
  prerequisites - GNU MP and libtool/libltdl (as described above) - and
  then cross-build Guile itself.

  For each of these steps, configure using an invocation like this:

  CPPFLAGS=-I/usr/local/i586-mingw32msvc/include \
  LDFLAGS=-L/usr/local/i586-mingw32msvc/lib \
  GUILE_FOR_BUILD=/usr/local/bin/guile \
  ./configure --prefix=/usr/local/i586-mingw32msvc --host=i586-mingw32msvc

  Then run `make' - which should complete without any errors - and `sudo
  make install'.  (`make check' doesn't work when cross-compiling,
  because the built DLLs and program cannot be run on GNU/Linux.)

  The `GUILE_FOR_BUILD=...' setting is needed because some later steps
  of the build process use Guile itself.  In the non-cross-compiling
  case this is the version of Guile that has just been built.  When
  cross-compiling, you have to set GUILE_FOR_BUILD to tell the build
  where it can find a native version of Guile, to use for these steps.

  Cross-compiling for other hosts may also work, using the following
  instructions; but this has not been recently tested.

  To configure Guile for cross building, for example for Cygwin:

      ./configure --host=i686-pc-cygwin --disable-shared

  A C compiler for the build system is required.  The default is
  "PATH=/usr/bin:$PATH cc".  If that doesn't suit it can be specified
  with the CC_FOR_BUILD variable in the usual way, for instance

      ./configure --host=m68k-unknown-linux-gnu CC_FOR_BUILD=/my/local/gcc

  Guile for the build system can be specified similarly with the
  GUILE_FOR_BUILD variable, it defaults to just "guile".
#+end_verse

#+begin_src sh
  CPPFLAGS=-I/home/eschulte/src/ixm/arm-2008q3/include \
  LDFLAGS=-L/home/eschulte/src/ixm/arm-2008q3/lib \
  GUILE_FOR_BUILD=/usr/local/bin/guile \
  CC_FOR_BUILD=/home/eschulte/src/ixm/arm-2008q3/bin/arm-none-eabi-gcc \
  ./configure --without-threads --prefix=/usr/local/arm --host=arm-linux --with-gmp=/usr/include/
#+end_src

the above works and successfully compiles an arm guile, however it
fails on sketch compilation because it needs gmp, so according to here
I may need to also cross-compile
: gmp and libltdl

now to cross-compile gmp

configuring with
#+begin_src sh
  CPPFLAGS=-I/home/eschulte/src/ixm/arm-2008q3/include \
  LDFLAGS=-L/home/eschulte/src/ixm/arm-2008q3/lib \
  CC_FOR_BUILD=/home/eschulte/src/ixm/arm-2008q3/bin/arm-none-eabi-gcc \
  ./configure --prefix=/usr/local/arm --host=arm-linux
#+end_src
results in
: configure: error: Specified CC_FOR_BUILD doesn't seem to work
however removing
: CC_FOR_BUILD=/home/eschulte/src/ixm/arm-2008q3/bin/arm-none-eabi-gcc
results in a successful configuration, but a failed build with
: tmp-add_n.s: Assembler messages:
: tmp-add_n.s:58: Error: no such instruction: `stmfd r13!,{r8,r9,r14}'
: tmp-add_n.s:59: Warning: `r3' is not valid here (expected `(%esi)')
: tmp-add_n.s:59: Warning: `r3' is not valid here (expected `(%edi)')
: tmp-add_n.s:59: Error: too many memory references for `movs'
: tmp-add_n.s:60: Error: no such instruction: `bcc .Lskip1'
: tmp-add_n.s:61: Error: no such instruction: `ldr r12,[r1],'
: tmp-add_n.s:62: Error: no such instruction: `ldr r14,[r2],'

*** other scheme options
- chicken scheme -- http://chicken.wiki.br/cross-compilation-on-open-moko

** DONE write up an actual textual abstract
   DEADLINE: <2010-04-19 Mon>
   :PROPERTIES:
   :ID:       714a64e8-9fd2-4cb2-8e7e-1f917a06a519
   :END:
- actually write this up in text with sentences
- email back and forth with Ackley over this week

** DONE select functions
   DEADLINE: <2010-04-19 Mon>
   :PROPERTIES:
   :ID:       7df41d19-037e-440f-9535-873835b6f20f
   :END:
(see notes, create a variety of polynomials of increasing degrees)

thank you wikipedia

** GA of a CA
got code from Tyler, documentation is up at
http://www.cs.unm.edu/~ltrush/cs523/assign2/documentation/

see file:data/ca/

** DONE read paper
   DEADLINE: <2010-04-12 Mon>
   :PROPERTIES:
   :ID:       dd51571c-3ef9-443e-8411-503d01d7b59e
   :END:
autonomous_robot.pdf

** DONE experimental setup/schedule
   DEADLINE: <2010-04-12 Mon>
   :PROPERTIES:
   :ID:       85fcc334-72e5-4b4b-9f0e-0e067873d50c
   :END:

** DONE last week for code tweaks, tangling for boards
   DEADLINE: <2010-04-12 Mon>
   :PROPERTIES:
   :ID:       98af7631-dc1c-429d-8816-ef7f3a8bee43
   :END:
finish all the code tweaking

** DONE outline, abstract, title
   DEADLINE: <2010-04-12 Mon>
   :PROPERTIES:
   :ID:       2553f901-12aa-445f-8907-34894aec9fc6
   :END:
see the other todo

** DONE SFBNet sketch
   DEADLINE: <2010-04-12 Mon>
   :PROPERTIES:
   :ID:       1cdefd73-46da-4d33-a671-5306b8243829
   :END:
write up an SFBNet sketch

Propagator for square root via the heron step.

not general, but does work.

** DONE reverse representation strings on reporting
   DEADLINE: <2010-04-12 Mon>
   :PROPERTIES:
   :ID:       294413fc-88b1-438f-9a2d-75b8ec81f8ae
   :END:

done, although apparently wrapping this up in a function is very
difficult in C...

** DONE mutation is length sensitive
- mutation should be dependent on the length, so that individuals
  can't grow as a defense against having their sensitive parts
  mutated.

** DONE less converging
#+begin_verse
I suspect your population is horribly
converged, so the search is amounting to
an expensive stochastic hillclimb.

Some things to maybe try:

(A) Be less elitist:

   (1) On each 'generation', generate
       only one or a handful of new
       genomes -- perhaps up to 10 max
       -- based on parents selected by
       tournament as you do now.

   (2) Insert the offspring into
       uniformly-randomly-chosen
       population slots -- with no
       'death tournaments' --so there's
       no elitism and no guarantee of
       getting into the next generation.

Try just that first, keeping everything
else the same, and see if anything
changes.  If things still suck, maybe
try:

(B) Extend mutation to encompass:
   (1) Random change to existing spot
       (what you have now)
   (2) Random insertion of a single new
       character at a random position.
       (If result exceeds max length,
        then truncate the last character)
   (3) Random deletion of a single
       character at a random position.
       If the genome is then 0, then
       insert one random character.

   On a given mutation, perhaps do (1)
   50% of the time, (2) 25% of the time,
   and (3) 25% of the time.
#+end_verse

** DONE parameter tuning w/Ackley
   DEADLINE: <2010-04-05 Mon 14:00>
   :PROPERTIES:
   :ID:       f4bd6def-91f2-4653-b4a8-73699fe710fc
   :END:
** DONE instrument population for collecting uniqueness statistics
should report the number of people who have the *most popular* score.

*** DONE initial
done with the naive implementation *however* this isn't sufficient,
because the two individuals are actually the same if they have the
same rpn string.  for now as a quick fix, I'm just going to run this
on the float scores, rather than the representations...

** DONE stochastic tests for operators [3/3]
   DEADLINE: <2010-04-05 Mon>
   :PROPERTIES:
   :ID:       dba89b3c-276e-41b0-9a7f-1af8bd4f44d9
   :END:
- [X] crossover
- [X] mutations
- [X] tournaments

** DONE ensure y works
   DEADLINE: <2010-04-05 Mon>
   :PROPERTIES:
   :ID:       9164674e-86cb-4b74-8cd5-ab849a6b8487
   :END:
and graph appropriately

** DONE get it to work
   DEADLINE: <2010-04-05 Mon>
   :PROPERTIES:
   :ID:       2353744e-fa6d-4bc7-8056-8be76b2d30aa
   :END:

meeting with Ackley about this tomorrow

** DONE ping Dave about notes up on the class site
   DEADLINE: <2010-03-12 Fri>
   :PROPERTIES:
   :ID:       c1195c8f-50f5-4784-b252-5bbef6acaaf3
   :END:

** DONE READ: Gerald Jay Sussman is awesome
   DEADLINE: <2010-03-22 Mon>
   :PROPERTIES:
   :ID:       89ec7ef4-6865-4135-b348-9f3a4af69199
   :END:
some really relevant and generally sweet looking papers by Mr. Sussman
- NIAI-2008.pdf -- Engineered Robustness by Controlled hallucination
- MIT-CSAIL-TR-2009-002.pdf -- The art of the Propagator

we should read both of these, they look awesome

*** The art of the Propagator
for modern output from the constraint community see this thesis work
http://www.ps.uni-saarland.de/Papers/abstracts/tackDiss.html

- combines expression and constraint programming
- autonomous machine communicating through "cells"

- /propagator network/ computational metaphor for exploring the
  consequences of allowing places to accept information from multiple
  sources

elements
- cell :: communication mechanisms
- propagator :: machines connected by /cells/

lots of scheme code implementing propagators...

**** partial information
a nice examples where a cell contains the answer to a question "how
tall is a building", and the cell is populated through different
techniques, one of which supplies an upper bound, and one a lower
bound.

**** multidimensional computation

** DONE grid testing paper
   DEADLINE: <2010-03-08 Mon>
   :PROPERTIES:
   :ID:       8061e36d-d05f-4ff6-9448-1a4f6ae3fb71
   :END:
grid-testing.pdf

- use untrusted heterogeneous grid of computers for testing applications
- unit tests are embarrassingly parallel (why embarrassing)
- built on top of the globus toolkit
- what
  #+begin_quote 
  : Moreover, an adaptive scheduling scheme using swarm intelligence is
  : employed to efficiently use the computational resources    
  #+end_quote
- master/slave setup for executing tasks taken from a /bag of tasks/

*** ant colony optimization
- I don't think ant colonies actually are computational environments...
- looks like it takes the ant metaphor very seriously
  - scout -- detect new grid services
  - worker -- match tasks with grid servers
  - collector -- retrieve partial testing results (seems like this guy
    should be merged with the worker)
  - cleaner -- helps to maintain available grid resource table
  - queen -- produces specialized ants

probability $q_i$ of selecting a grid server $i$ for a testing task is

$$q_i = \frac{p_i}{\sumn_{j=1}{P_j}}$$

where $P_i$ is the value of the grid server $i$, and n is the total
number of available grid servers, so each server is selected with
probability proportional to its pheromone level.

- when a server completes a task its pheromone level is increased
- bonus for the guy who completes the most tasks
- pheromone's evaporate
- remove servers with pheromone levels below threshold

*** dealing with untrustworthy nodes
- redundancy
- check pointing
- separate execution and result comparison
- verification code injection

** DONE unit tests for evolution stuff
   DEADLINE: <2010-03-22 Mon>
   :PROPERTIES:
   :ID:       f00d9ca6-186c-4acb-bb69-f9048897f373
   :END:

** DONE outline
   :PROPERTIES:
   :ID:       8e5ddff0-9088-4920-8abe-f1fb7d2c64be
   :END:
paper.org

now in the main file in file:~/research/ixm/

** DONE read robustness paper
   DEADLINE: <2010-03-01 Mon>
   :PROPERTIES:
   :ID:       4bb8f922-7159-4417-a4d8-3c3c8d3efd8d
   :END:
robust-systems.pdf

** DONE denser sampling
   DEADLINE: <2010-03-01 Mon>
   :PROPERTIES:
   :ID:       3184902f-46f2-404a-8897-62b8d77059f8
   :END:
like 10 to 20 per unit

** DONE parse experimental log files resulting from experimenter.clj

#+begin_src clojure :tangle ~/Desktop/parser :shebang #! /usr/bin/env clj
  (ns exp-parser
    (:require (clojure.contrib (duck-streams :as f) (command-line :as c) (math :as m)))
    (:import (java.io InputStreamReader OutputStreamWriter BufferedReader)
             (clojure.lang LineNumberingPushbackReader)
             java.util.Date java.text.SimpleDateFormat)
    (:use [clojure.main :only (repl)]
          clojure.contrib.seq-utils))
  
  (defn read-log [in-path]
    "Read a log file parsing each line w/regex.  Note this remove
  non-collector lines, like board chatter, and mutating too fast
  complaints."
    (remove #(not %)
            (map #(re-matches
                   #"^(\d+)\s+\(([-\d]+),([-\d]+)\)\s+(.+):\s+(.*)$" %)
                 (f/read-lines in-path))))
  
  (defn by-board [log]
    "Split up the output of read-log into a hash keyed by board
  location."
    (reduce
     #(assoc %1
        (format "(%s,%s)" (first %2) (second %2))
        (map
         (fn [line] (assoc {}
                      :wall (Integer/parseInt (nth line 1))
                      :type (nth line 4) :what (nth line 5)))
         (remove (fn [ln] (not (= %2 ))) log)))
     {}
     '(("-3" "0") ("-2" "0") ("-1" "0") ("0" "0")
       ("3" "0") ("2" "0") ("1" "0"))))
  
  (defn lines-to-hashes [log]
    (map
     (fn [line]
       (assoc {}
         :x (Integer/parseInt (nth line 2))
         :y (Integer/parseInt (nth line 3))
         :wall (Integer/parseInt (nth line 1))
         :type (nth line 4)
         :what (nth line 5)))
     log))
  
  (defn by-loop [col]
    "Compact a board's output lines into hash maps by which loop
  generated them."
    (map
     (fn [cols]
       (let [hmps (apply concat cols)]
         (reduce #(assoc %1
                    :wall (:wall %2)
                    (keyword (:type %2)) (:what %2)) {} hmps)))
     (let [sec? (fn [line] (= (:type line) "seconds"))]
       (partition 2 (partition-by
                     sec? (drop-while (complement sec?) col))))))
  
  (c/with-command-line (rest *command-line-args*)
    "Parse output of experimenter.clj, pass paths to log files as arguments"
    [[board "print out results for a particular board, grouped by loop"]
     [key "print out the value of the given key whenever it appears"]
     others]
    (let [path (first others)
          log (read-log path)]
      ;; print out results for a particular board, grouped by loop
      (when board
        (let [boards (by-board log)]
          (println (pr-str (assoc {} board (by-loop (get board boards)))))))
      ;; print out the values of key whenever it appears in any board
      (when key
        (let [log (lines-to-hashes log)]
          (doseq [line log]
            (when (= (:type line) key)
              (println
               ;; convert wall time to hh:mm:ss
               (let [h (m/floor (/ (/ (:wall line) 1000)
                                   3600))
                     m (m/floor (/ (- (/ (:wall line) 1000)
                                      (* h 3600))
                                   60))
                     s (m/round (- (- (/ (:wall line) 1000)
                                      (* h 3600))
                                   (* m 60)))]
                 (format "%02d:%02d:%02d\t%d,%d\t%s"
                         h m s
                         (:x line) (:y line)
                         (:what line))))))))))
#+end_src

** DONE start some real experiments
   DEADLINE: <2010-03-01 Mon>
   :PROPERTIES:
   :ID:       a1b9ebca-7ed7-430a-a1f9-cd7bf628e983
   :END:
sectioned landscape vs. interleaved vs. overlap vs. not overlap vs. malleable

graph best in grid vs. wall-clock time

*** best fitness's

distributed
#+begin_src gnuplot
  set xdata time
  set timefmt "%H:%M:%S"
  set title "best fitness: r B:0 y:100 x:100 Y:0 X:100"
  plot "~/research/ixm/data/1.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/1.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/1.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/1.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/1.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/1.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/1.n3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/5.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/5.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/5.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/5.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/5.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/5.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/5.n3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/9.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/9.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/9.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/9.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/9.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/9.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/9.n3.0.best_fitness" using 1:3
#+end_src

overlapping
#+begin_src gnuplot
  set xdata time
  set timefmt "%H:%M:%S"
  set title "best fitness: r B:0 y:100 x:120 Y:0 X:100"
  plot "~/research/ixm/data/2.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/2.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/2.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/2.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/2.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/2.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/2.n3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/6.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/6.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/6.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/6.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/6.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/6.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/6.n3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/10.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/10.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/10.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/10.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/10.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/10.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/10.n3.0.best_fitness" using 1:3
#+end_src

annealing
#+begin_src gnuplot
  set xdata time
  set timefmt "%H:%M:%S"
  set yrange [:140]
  set title "best fitness: r B:100000 y:100 x:100 Y:0 X:100"
  plot "~/research/ixm/data/3.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/3.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/3.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/3.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/3.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/3.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/3.n3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/7.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/7.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/7.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/7.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/7.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/7.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/7.n3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/11.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/11.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/11.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/11.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/11.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/11.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/11.n3.0.best_fitness" using 1:3
#+end_src

interleaved
#+begin_src gnuplot
  set xdata time
  set timefmt "%H:%M:%S"
  set yrange [95:105]
  set title "best fitness: r B:0 y:100 x:700 Y:0 X:14"
  plot "~/research/ixm/data/4.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/4.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/4.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/4.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/4.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/4.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/4.n3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/8.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/8.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/8.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/8.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/8.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/8.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/8.n3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/12.0.0.best_fitness" using 1:3, \
       "~/research/ixm/data/12.1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/12.2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/12.3.0.best_fitness" using 1:3, \
       "~/research/ixm/data/12.n1.0.best_fitness" using 1:3, \
       "~/research/ixm/data/12.n2.0.best_fitness" using 1:3, \
       "~/research/ixm/data/12.n3.0.best_fitness" using 1:3
#+end_src

*** best individuals
**** distributed
#+results: distributed-best
: 73*x11/+4/++51xxx13*y/++6y5*6/6-+xx+*
#+call: rpn-to-alg(alg=distributed-best)

#+results: rpn-to-alg(alg=distributed-best)
: ((6 + (((y * 5) / 6) - 6)) * (x + x))

#+begin_src gnuplot
  set title "distributed-center"
  set xrange [-3:3]
  set yrange [0:1]
  set zrange [-2:2]
  splot sin(2*x)*y, ((6 + (((y * 5) / 6) - 6)) * (x + x))
#+end_src

**** overlapping
#+results: overlapping-best
: x67-*021y-8362734-+x0-211/563y++/63y++9-2*x*
#+call: rpn-to-alg(alg=overlapping-best)

#+results: rpn-to-alg(alg=overlapping-best)
: ((((6 + (3 + y)) - 9) * 2) * x)

#+begin_src gnuplot
  set title "overlapping-center"
  set xrange [-3:3]
  set yrange [0:1]
  set zrange [-2:2]
  splot sin(2*x)*y, ((((6 + (3 + y)) - 9) * 2) * x)
#+end_src

**** annealing
#+results: annealing-best
: 675332x9y/50+*-/*637*y6-76yy/2y-2yx**
#+call: rpn-to-alg(alg=annealing-best)

#+results: rpn-to-alg(alg=annealing-best)
: (2 * (y * x))

#+begin_src gnuplot
  set title "annealing-center"
  set xrange [-3:3]
  set yrange [0:1]
  set zrange [-2:2]
  splot sin(2*x)*y, (2 * (y * x))
#+end_src

**** interleaved
#+results: interleaved-best
: +*493*x24yx95/*y*
#+call: rpn-to-alg(alg=interleaved-best)

#+results: rpn-to-alg(alg=interleaved-best)
: ((x * (9 / 5)) * y)

#+begin_src gnuplot
  set title "interleaved-center"
  set xrange [-3:3]
  set yrange [0:1]
  set zrange [-2:2]
  splot sin(2*x)*y, ((x * (9 / 5)) * y)
#+end_src

#+results: interleaved-all-bests
| -2 | "72+1117/42597+/97+//414y0+/+843yy13/x+/+*4x+/" | "((3 * (y + (y / ((1 / 3) + x)))) / (4 + x))"                               |
| -1 | "14/+3x8695/x3-95/x395/x32/+x**y*"              | "(((9 / 5) * ((x + (3 / 2)) * x)) * y)"                                     |
|  0 | "+*493*x24yx95/*y*"                             | "((x * (9 / 5)) * y)"                                                       |
|  1 | "//6072*x7*5/3623*84y9x+x+/yx*x*x*4/-y+"        | "(((y / ((9 + x) + x)) - ((((y * x) * x) * x) / 4)) + y)"                   |
|  2 | "2yx80656y*yx/1x00yx/1/15x-//x/x52-//x/x/y-"    | "((((((((y / x) / 1) / (1 / (5 - x))) / x) / (x / (5 - 2))) / x) / x) - y)" |
|  3 | "39y/8-/-1y-/x4y8x-/-/15-2y40y40+x-/4y*x/-"     | "((y / ((4 + 0) - x)) - ((4 * y) / x))"                                     |
#+TBLFM: $3='(if (> (length $2) 1) (sbe "rpn-to-alg" (alg $2)) "")

#+begin_src gnuplot
  set title "interleaved"
  set xrange [-3:3]
  set yrange [0:1]
  set zrange [-8:8]
  splot sin(2*x)*y, ((y / ((4 + 0) - x)) - ((4 * y) / x)), ((((((((y / x) / 1) / (1 / (5 - x))) / x) / (x / (5 - 2))) / x) / x) - y), (((y / ((9 + x) + x)) - ((((y * x) * x) * x) / 4)) + y), ((x * (9 / 5)) * y), (((9 / 5) * ((x + (3 / 2)) * x)) * y), ((3 * (y + (y / ((1 / 3) + x)))) / (4 + x))
#+end_src

** live display of variable fitness landscapes
Write a simple script to scroll generate graphs of the best functions
of each board on its changing range.

#+begin_src clojure
  (require ((clojure.contrib
             (duck-streams :as f)
             (shell-out :as s))))
  
  
  (defn ingest
    "Organize output from boards" [path]
    (let [boards (ref {})]
      (dosync
       (alter boards assoc
              ))))
#+end_src

** DONE fitness-landscape scaling
at some interval my fitness is reset to the product of...

fitness_landscape_range = fitness_landscape_range mean_fitness/average(neighbor_mean_fitness)

see malleable

** graph partition
Distribute a graph over a set of boards s.t. the number of nodes per
board is as even as possible, and edges are stretched as little as
possible.

this could look good with a clojure-interface

*** representation
how to represent the graph?

- should be possible to represent only the relevant subgraph onboard
  -- i.e. the whole graph shouldn't need to exist on every board
- edges or nodes, either each board holds a list of its nodes, along
  with the nodes to which they are connected, or each board holds a
  list of the edges which have one end in themselves

*** moving a node
how to move a node between two boards -- need to update all of the
edges touching that node

** CANCELED clojure-interface --  simulation and visualization
   - State "CANCELED"   from "HOLD"       [2010-02-22 Mon 16:13] \\
     not right now, don't simulate!
   :PROPERTIES:
   :CUSTOM_ID: clojure-interface
   :END:

Since its naturally multi-threaded it could be a good way to simulate
a collection of boards.  If done well then the visualization for the
simulated boards could also be used to visualize data collected from a
real set of boards.

visualization takes data in collector form

started doing stuff in the =gui= directory under =research/ixm=

** DONE collector release
1) clean it up
2) push it up somewhere -- maybe to repo.or.cz



** add profiling to evolution
(see profiling-information)

** DONE overlapping fitness[3/3]
   DEADLINE: <2010-02-22 Mon>
   :PROPERTIES:
   :ID:       82ec05a5-5251-4341-b54a-dec9162bf396
   :END:
- overlapping fitness
- free rides for new guys

- [X] got it running
- [X] need to implement free ride
- [X] analyze results -- gnuplots with multiple graphs each over different domains

see overlapping-2d-distributed-fitness

** DONE clojure interface wrapper -- batch and repl
done. (see http://repo.or.cz/w/ixm-repl.git)

*** wrap sfbprog in obj which can print to screen
so this actually works... async reading from a command
#+begin_src clojure
  (defmacro while-let
    "Like while, but uses when-let instead of when."
    [test & body]
    `(loop []
       (when-let ~test
         ~@body
         (recur))))
  
  (defmacro in-cmd
    [cmd & body]
    `(let [proc# (.exec (Runtime/getRuntime) (into-array ~cmd))]
       (with-open [stdout# (BufferedReader. (InputStreamReader. (.getInputStream proc#)))
                   proc-input# (OutputStreamWriter. (.getOutputStream proc#))]
         (def proc-in proc-input#)
         (binding [*in* stdout#] ~@body))))
  
  (let [out *out*]
    (future
     (binding [*out* out]
       (in-cmd (list "guile")
               (while-let [line (read-line)] (println line))))))
  
  (binding [*out* proc-in] (println "(+ 1 2 3 4)"))
#+end_src

expose all of this through a ref @tribe
#+begin_src clojure
  (use 'clojure.contrib.except)
  
  (def tribe {:sfbprog-cmd "sfbprog"
              :usb-dev "/dev/ttyUSB0"})
  
  (def repl-out *out*)
  (def tribe-in nil)
  
  (def reflexes {:L repl-print})
  
  (defn repl-print [line]
    (binding [*out* repl-out] (println line)))
  
  (defn tribe-print [line]
    (when (nil? tribe-in) (throwf "not connected to tribe"))
    (binding [*out* tribe-in] (println line)))
  
  (defn dump [line])
  
  (defn connect []
    (future
     (let [proc (.exec (Runtime/getRuntime)
                       (into-array (list (:sfbprog-cmd tribe)
                                         "-n" (:usb-dev tribe) "-S" "-" "-t" "0")))]
       (with-open [stdout (BufferedReader. (InputStreamReader. (.getInputStream proc)))
                   proc-input (OutputStreamWriter. (.getOutputStream proc))]
         (def tribe-in proc-input)
         (binding [*in* stdout]
           (loop [] (when-let [line (read-line)] (react lines))))))))
#+end_src

seems to be working
#+begin_src clojure
  (ns #^{:author "Eric Schulte",
         :license "GPLV3",
         :doc "interact with an IXM tribe through a Clojure repl"}
    ixm-repl
    (:import (java.io InputStreamReader OutputStreamWriter BufferedReader)
             (clojure.lang LineNumberingPushbackReader))
    (:use [clojure.main :only (repl)]
          clojure.contrib.duck-streams
          clojure.contrib.command-line
          clojure.contrib.except
          clojure.contrib.repl-utils))
  
  (def tribe {:sfbprog-cmd "sfbprog"
              :usb-dev "/dev/ttyUSB0"})
  
  (def repl-out *out*)
  
  (def tribe-in nil)
  
  (defn repl-print [line]
    (binding [*out* repl-out] (println line)))
  
  (defn tribe-print [line]
    (when (nil? tribe-in) (throwf "not connected to tribe"))
    (binding [*out* tribe-in] (println line)))
  
  (defn dump [line])
  
  (def reflexes {:L 'repl-print})
  
  (defn react [line]
    (eval `(~(get reflexes (keyword (subs line 0 1)) 'repl-print) ~line)))
  
  (defn connect []
    (future
     (let [proc (.exec (Runtime/getRuntime)
                       (into-array
                        ;; (list (:sfbprog-cmd tribe)
                        ;;       "-n" (:usb-dev tribe) "-S" "-" "-t" "0")
                        (list "bash")
                        )
                       )]
       (with-open [stdout (BufferedReader. (InputStreamReader. (.getInputStream proc)))
                   proc-input (OutputStreamWriter. (.getOutputStream proc))]
         (def tribe-in proc-input)
         (binding [*in* stdout]
           (loop [] (when-let [line (read-line)] (react line) (recur))))))))
#+end_src

*** complex parsing of output
#+begin_src clojure :tangle ~/Desktop/experimenter :shebang #! /usr/bin/env clj
  (ns experimenter
    (:require (clojure.contrib (duck-streams :as f) (command-line :as c)))
    (:import (java.io InputStreamReader OutputStreamWriter BufferedReader)
             (clojure.lang LineNumberingPushbackReader)
             java.util.Date java.text.SimpleDateFormat)
    (:use [clojure.main :only (repl)]))
  
  (defn message
    [fmt & args]
    (binding [*out* *err*]
      (println (apply format (cons fmt args)))))
  
  (defn reset-and-cycle-resets [since resets counter]
    (dosync (ref-set since (new Date)))
    (message "resetting------------------------------------------")
    (message "%s" (nth resets @counter)) (println (nth resets @counter))
    (message "reset----------------------------------------------")
    (dosync (ref-set counter (mod (inc @counter) (.size resets)))))
  
  (defmacro while-let
    "Like while, but uses when-let instead of when."
    [test & body]
    `(loop []
       (when-let ~test
         ~@body
         (recur))))
  
  (defmacro in-cmd
    [cmd & body]
    `(let [proc# (.exec (Runtime/getRuntime) (into-array ~cmd))]
       (with-open [stdin# (OutputStreamWriter. (.getOutputStream proc#))
                   stdout# (BufferedReader. (InputStreamReader. (.getInputStream proc#)))]
         (binding [*in* stdout# *out* stdin#]
           ~@body))))
  
  (c/with-command-line (rest *command-line-args*)
    "Programmable interaction with IXM grid through sfbprog."
    [[usb-dev "Path to usb device connected to IXM grid" "/dev/ttyUSB0"]
     [sfbprog-cmd "Command used to call sfbprog" "sfbprog"]
     [out-file "file to which results will be saved" "experimenter.log"]
     [repl? "run interactively in a repl -- not yet supported"]
     rest]
    (in-cmd ;; sfbprog -n /dev/ttyUSB0 -S - -t 0
     (list sfbprog-cmd "-n" usb-dev "-S" "-" "-t" "0")
     (if repl?
       ;; interactive
       (message "repl mode is not currently supported")
       ;; batch
       (let [date-formatter (new SimpleDateFormat "dd:HH:mm:ss")
             since (ref (new Date))
             counter (ref 0)
             resets (list "r B:0 y:100 x:700 Y:0 X:14"  ;; interleaved
                          "r B:0 y:100 x:100 Y:0 X:100" ;; sectioned
                          "r B:0 y:100 x:120 Y:0 X:100" ;; sectioned overlap
                          "r B:100000 y:100 x:100 Y:0 X:100" ;; sectioned malleable
                          )]
         (doseq [n (range 10)]
           (message "%d %s" (- 10 n) (read-line))
           (println (format "L test %d" n)))
         (reset-and-cycle-resets since resets counter)
         (while-let
          [line (read-line)]
          ;; normal logging
          ;; (message "%s %s" (.format date-formatter (new Date)) line)
          (message "%d %s" (- (.getTime (new Date)) (.getTime @since)) line)
          ;; check if its time for the next experiment
          (when (> (- (.getTime (new Date)) (.getTime @since)) 14400000)
            (reset-and-cycle-resets since resets counter)))))))
#+end_src

*** attempt at a ixm repl
#+begin_src clojure
  (ns experimenter
    (:require (clojure.contrib
               (duck-streams :as f)
               (shell-out :as s)
               (command-line :as c)))
    (:import (java.io InputStreamReader OutputStreamWriter BufferedReader StringWriter)
             (clojure.lang LineNumberingPushbackReader)
             java.util.Date)
    (:use [clojure.main :only (repl)]))
  
  (defmacro while-let
    "Like while, but uses when-let instead of when."
    [test & body]
    `(loop []
       (when-let ~test
         ~@body
         (recur))))
  
  (defmacro in-cmd
    [cmd batch? & body]
    `(let [proc# (.exec (Runtime/getRuntime) (into-array ~cmd))]
       (with-open [stdin# (if ~batch?
                            (OutputStreamWriter. (.getOutputStream proc#))
                            (StringWriter. 200))
                   stdout# (if ~batch?
                             (BufferedReader. (InputStreamReader. (.getInputStream proc#)))
                             (LineNumberingPushbackReader. (InputStreamReader. (.getInputStream proc#))))]
         (binding [*in* stdout# *out* stdin#]
           ~@body))))
  
  (c/with-command-line (rest *command-line-args*)
    "Programmable interaction with IXM grid through sfbprog."
    [[usb-dev "Path to usb device connected to IXM grid" "/dev/ttyUSB0"]
     [sfbprog-cmd "Command used to call sfbprog" "sfbprog"]
     [out-file "file to which results will be saved" "experimenter.log"]
     [repl? "run interactively in a repl, or execute code in this file"]
     rest]
    (println (if repl? "interactive" "batch"))
    (in-cmd ;; sfbprog -n /dev/ttyUSB0 -S - -t 0
     (list sfbprog-cmd "-n" usb-dev "-S" "-" "-t" "0") (not repl?)
     (if repl?
       ;; interactive
       (repl)
       ;; batch
       (while-let
        [line (read-line)]
        (f/spit out-file (apply str (.toString (new Date)) " " line))))))
#+end_src

*** possibly related clojure library
This could be useful -- from the clojure mailing list
#+begin_quote 
: Hi all,
: 
: some time ago I wrote a simple control library (called "Robust") for
: Lego Mindstorms NXT.
: Recently I wrote a Clojure wrapper to the Robust library so that it is
: possible to write simple control applications for standard Mindstorms'
: vehicles directly in Clojure.
: 
: The Robust library together with Clojure interface (cljRobust) can be
: found at
: http://sourceforge.net/projects/robust/
: 
: enjoy,
: Konrad Kulakowski  
#+end_quote

** DONE fix collector
   DEADLINE: <2010-02-15 Mon>
   :PROPERTIES:
   :ID:       c9903a69-62ba-49b0-8f3a-238d999246ef
   :END:
- just print directly to another face

so it looks like the collector *does* prefix reporting strings so that
they can make it back to the base, so I guess rather than just writing
to the outermost face, we'll have to write to some collector-specific
face.

Following the makePacketPrinter example from hallucination-example

sent question to Ackley, not sure how to rework this.
#+begin_quote 
: I think the virtual face printer is
: probably the way to go.  If you can
: tolerate applying your prefix early --
: right after the previous packet ships,
: then its not too hard -- just do the
: prefix as part of the println of the
: previous.
: 
: Something like:
: 
:     u8 outputFace = NORTH;  // underlying actual destination face
:     u8 vFace;               // virtual face
:     const char * prefix = "Lfoo";
:     const char * suffix = "etc etc";
:     void myprint(u8 face, u8 byte) { facePrintf(outputFace,"%c",byte); }
:     void myprintln(u8 face) {
: facePrintf(outputFace,"%s\n%s",suffix,prefix); }
:     const FacePrinter myPrinter = { myprint, myprintln, 0, 0 };
: 
:     void setup() {
:      ..
:       bool worked = faceFindFreeFace(vFace);
:       API_ASSERT_TRUE(worked);
:       faceSetPrinter(vFace,&myPrinter);
:       facePrintf(vFace,"%s",prefix); // hack in first prefix
:      ..
:     }
: 
: should work, for constant prefix/suffix
: anyway.
: 
: More complicated approach could have a
: 'haveSentPrefix' bool that myprint would
: check and if clear it would send the
: prefix and set the bool, and myprintln
: would clear the bool.
: 
: That would allow deferring prefix
: generation until the moment it is
: needed.
: 
: The virtual face printer also avoids
: the need to burn RAM for another buffer.  
#+end_quote

done, pretty much as described above -- printing through a virtual face

** DONE find a paper
   DEADLINE: <2010-02-15 Mon>
   :PROPERTIES:
   :ID:       0e9ebc86-2675-4b97-a224-42b94c1bf6de
   :END:
from-earwigs-to-humans.pdf

** DONE reading on HP stuff
   DEADLINE: <2010-02-15 Mon>
   :PROPERTIES:
   :ID:       052c6225-dd51-4744-8e54-fb839adc9033
   :END:

#+begin_quote
: I can't seem to find a proper paper on this, but HP is working on an
: interesting and relevant project known as CeNSE (Central Nervous System
: for the Earth) that I thought would be worth discussing.
: 
: Here's HP's propaganda on the project:
: 
: http://www.hpl.hp.com/news/2009/oct-dec/cense.html
: 
: 
: And another article specifically discussing their proposed bridge sensor
: networks:
: 
: http://spectrum.ieee.org/semiconductors/devices/new-sensors-a-step-toward-monitoring-bridges  
#+end_quote

- "deaf, blind, can’t taste, can’t smell and can’t feel" -- Reminds me
  of Rodney Brooks
- sensors
  - quality through *quantity* of sensors, if many sensors report an
    abnormal result you are more likely to believe it

Steps
1) deploy sensors
2) collect and aggregate data
3) process the data
4) disseminate the results

the memristor is HP's hardware solution

working on an accelerometer for sensing problems in bridges.

** CANCELED find a GP conference
   - State "CANCELED"   from "STARTED"    [2010-02-23 Tue 17:23] \\
     looks like we'll just submit a journal article
   :PROPERTIES:
   :ID:       2fbdac1b-d850-4c35-92ab-23c39d953889
   :END:
here's a good-list of conferences

| conference                                     | paper deadline   | notes          |
|------------------------------------------------+------------------+----------------|
| international conference on evolvable systems  | <2010-03-05 Fri> |                |
| simulation of adaptive behavior                | <2010-02-22 Mon> |                |
| simulated evolution and learning               | <2010-07-05 Mon> |                |
| world conference on computational intelligence | <2010-03-02 Tue> | final deadline |
|                                                |                  |                |

too late
| conference                 | deadline         |
|----------------------------+------------------|
| unconventional computation | <2010-02-08 Mon> |
| EuroGP                     | <2009-11-10 Tue> |

look for a couple more...

** DONE find a paper for next week
   DEADLINE: <2010-02-01 Mon>
   :PROPERTIES:
   :ID:       658ea72f-f7d9-4f8f-8285-4fa43be86f65
   :END:
something good for this class
- GP?
- sensor network?

adaptive-mobile-agents.pdf

** DONE read paper which should have received
   DEADLINE: <2010-02-01 Mon>
   :PROPERTIES:
   :ID:       5005fc6a-44ed-4f1e-8ecc-8069124d3ab0
   :END:

diffusion.ps from (here)

** DONE email out this paper
Hints for Computer System Design

* experimental results
  :PROPERTIES:
  :exports:  code
  :END:
** paper experiments
*** interleaved sin with static horizon
with
- goal
  : g 2x*sy*
- reset packet
  : r B:0 y:100 x:700 Y:0 X:14
- start collecting with
  : L schulte

first long run save here sin-interleaved.log

** explorative experiments
*** malleable fitness landscape
    :PROPERTIES:
    :CUSTOM_ID: malleable
    :END:

#+results: malleable-first-run
malleable.first-run.log

malleable.first-run.later.log

#+results: malleable
: 1030y0961x/72//07/3072023+81*8x943x*x*-1*+*y//
#+call: rpn-to-alg(alg=malleable)

#+results: rpn-to-alg(alg=malleable)
: (8 / ((x * (9 + ((4 - ((3 * x) * x)) * 1))) / y))

#+begin_src gnuplot :exports code
    set isosample 40
    set xrange [-4:4]
    set yrange [-2:2]
    set zrange [-2:2]
    splot sin(2*x)*y, (8 / ((x * (9 + ((4 - ((3 * x) * x)) * 1))) / y))
#+end_src

#+results: malleable.0.0.horizons
malleable.0.0.horizons

#+results: malleable.0.0.mean-fit-and-horizons
malleable.0.0.mean-fit-and-horiz

#+begin_src gnuplot :var data=malleable.0.0.mean-fit-and-horizons :exports code
set yrange [0:200]
plot data using 1:2 title 'mean fitness', data using 1:3 title 'horizon'
#+end_src
file:data/malleable-mean-fit-and-horizon.png

**** holder
#+results: stuff
|   12.79 |  0.98 |
|   22.34 |  0.98 |
|   12.22 |  0.98 |
|   24.03 |  1.73 |
|   27.40 |  1.73 |
|   17.28 |  1.73 |
|   17.76 |  1.73 |
|   27.07 |  1.94 |
|   32.84 |  1.94 |
|   27.07 |  1.94 |
|   31.63 |  1.95 |
|   31.28 |  1.95 |
|   31.28 |  1.95 |
|   31.28 |  1.95 |
|   30.84 |  1.97 |
|   27.55 |  1.97 |
|   18.61 |  1.97 |
|   16.99 |  1.97 |
|   11.93 |  2.64 |
|    9.37 |  2.64 |
|   28.38 |  2.64 |
|    8.97 |  2.64 |
|   21.06 |  2.81 |
|   21.24 |  2.81 |
|   20.10 |  2.81 |
|   26.03 |  2.90 |
|   27.18 |  2.90 |
|   26.77 |  2.90 |
|   34.93 |  2.90 |
|   74.32 |  2.81 |
|   27.47 |  2.81 |
|   26.78 |  2.81 |
|   28.82 |  2.81 |
|   35.45 |  3.05 |
|   36.76 |  3.05 |
|   26.08 |  3.05 |
|   30.39 |  3.05 |
|   33.49 |  2.95 |
|   31.93 |  2.95 |
|   33.10 |  2.95 |
|   31.93 |  2.96 |
|   31.72 |  2.96 |
|   38.92 |  2.96 |
|   30.39 |  2.96 |
|   31.47 |  3.04 |
|   27.16 |  3.04 |
|   27.67 |  3.04 |
|   20.43 |  3.04 |
|   21.00 |  3.42 |
|   49.06 |  3.42 |
|   20.35 |  3.42 |
|   20.90 |  3.42 |
|   25.27 |  3.92 |
|   24.27 |  3.92 |
|   23.81 |  3.92 |
|   32.65 |  4.65 |
|   46.72 |  4.65 |
|   32.65 |  4.65 |
|   41.58 |  4.65 |
|   57.64 |  5.21 |
|   57.25 |  5.21 |
|   66.32 |  5.21 |
|  804.41 |  5.21 |
|   66.26 |  5.69 |
|   66.43 |  5.69 |
|   66.90 |  5.69 |
|  137.50 |  5.69 |
|   64.25 |  6.10 |
|   66.62 |  6.10 |
|   62.90 |  6.10 |
|   78.69 |  6.46 |
|   64.87 |  6.46 |
|   76.97 |  6.46 |
|   64.35 |  6.46 |
|   63.86 |  6.61 |
|   63.86 |  6.61 |
|   75.87 |  6.61 |
|   69.19 |  6.61 |
|   76.21 |  6.45 |
|   63.45 |  6.45 |
|   63.45 |  6.45 |
|   63.45 |  6.45 |
|   65.55 |  6.42 |
|   69.02 |  6.42 |
|   63.44 |  6.42 |
|   69.04 |  6.45 |
|   63.49 |  6.45 |
|   63.48 |  6.45 |
|   63.46 |  6.45 |
|   64.25 |  6.42 |
|   63.47 |  6.42 |
|   63.50 |  6.42 |
|   77.58 |  6.42 |
|   63.34 |  6.44 |
|   64.39 |  6.44 |
|   63.34 |  6.44 |
|   64.29 |  6.44 |
|   64.78 |  6.45 |
|   89.71 |  6.45 |
|   63.67 |  6.45 |
|   83.03 |  6.36 |
|   63.50 |  6.36 |
|   65.59 |  6.36 |
|   63.39 |  6.36 |
|   63.44 |  6.06 |
|   63.44 |  6.06 |
|   63.70 |  6.06 |
|   63.90 |  6.06 |
|   64.45 |  5.84 |
|   64.38 |  5.84 |
|   64.37 |  5.84 |
|   64.40 |  5.58 |
|   62.45 |  5.58 |
|   62.05 |  5.58 |
|   61.66 |  5.58 |
|   61.62 |  5.52 |
|   61.31 |  5.52 |
|   62.33 |  5.52 |
|   61.31 |  5.52 |
|   61.32 |  5.40 |
|   64.26 |  5.40 |
|   63.16 |  5.40 |
|   61.32 |  5.40 |
|   67.20 |  5.18 |
|   60.78 |  5.18 |
|   59.45 |  5.18 |
|   58.44 |  5.11 |
|   58.18 |  5.11 |
|   58.18 |  5.11 |
|   58.18 |  5.11 |
|   58.95 |  4.95 |
|   63.74 |  4.95 |
|   58.17 |  4.95 |
|   58.12 |  4.95 |
|   58.79 |  4.90 |
|   56.73 |  4.90 |
|   54.65 |  4.90 |
|   54.33 |  4.90 |
|   65.01 |  4.99 |
|   57.17 |  4.99 |
|   54.92 |  4.99 |
|   55.89 |  5.02 |
|   58.19 |  5.02 |
|   56.33 |  5.02 |
|   56.33 |  5.02 |
|   67.24 |  5.02 |
|   56.68 |  5.02 |
|   56.77 |  5.02 |
|   56.24 |  5.02 |
|   58.40 |  4.98 |
|   55.66 |  4.98 |
|   55.66 |  4.98 |
|   55.66 |  4.98 |
|   62.60 |  4.95 |
|   69.16 |  4.95 |
|   60.97 |  4.95 |
|   55.55 |  4.89 |
|   53.98 |  4.89 |
|   53.98 |  4.89 |
|   53.98 |  4.89 |
|   54.02 |  4.99 |
|   54.02 |  4.99 |
|   59.79 |  4.99 |
|   54.02 |  4.99 |
|   56.28 |  5.27 |
|   55.96 |  5.27 |
|   55.96 |  5.27 |
|   58.84 |  5.42 |
|   80.58 |  5.42 |
|   59.79 |  5.42 |
|   58.79 |  5.42 |
|   59.65 |  5.29 |
|   59.46 |  5.29 |
|   58.90 |  5.29 |
|   58.90 |  5.29 |
|   58.52 |  5.15 |
|   67.00 |  5.15 |
|   57.92 |  5.15 |
|   57.92 |  5.15 |
|   57.42 |  5.01 |
|   56.21 |  5.01 |
|   56.21 |  5.01 |
|   56.56 |  4.88 |
|   54.29 |  4.88 |
|   53.77 |  4.88 |
|   57.35 |  4.88 |
|   54.58 |  4.67 |
|   51.69 |  4.67 |
|   52.00 |  4.67 |
|   51.61 |  4.67 |
|  114.25 |  4.59 |
|   50.17 |  4.59 |
|   49.35 |  4.59 |
|  125.78 |  4.59 |
|   49.26 |  4.58 |
|   49.63 |  4.58 |
|   56.57 |  4.58 |
|   49.28 |  4.66 |
|   49.25 |  4.66 |
|   49.25 |  4.66 |
|   49.25 |  4.66 |
|   51.47 |  4.72 |
|   51.47 |  4.72 |
|   51.85 |  4.72 |
|   53.72 |  4.72 |
|   53.44 |  4.71 |
|   52.96 |  4.71 |
|   52.54 |  4.71 |
|   52.40 |  4.71 |
|   57.94 |  4.71 |
|   52.19 |  4.71 |
|   52.19 |  4.71 |
|   52.19 |  4.69 |
|   52.49 |  4.69 |
|   52.39 |  4.69 |
|   53.09 |  4.69 |
|   52.00 |  4.76 |
|   64.41 |  4.76 |
|   52.00 |  4.76 |
|   52.00 |  4.76 |
|   52.76 |  4.68 |
|   53.76 |  4.68 |
|   52.73 |  4.68 |
|   51.77 |  4.68 |
|   57.48 |  4.80 |
|   52.21 |  4.80 |
|   55.32 |  4.80 |
|   54.84 |  4.84 |
|   54.84 |  4.84 |
|   55.97 |  4.84 |
|   57.09 |  4.84 |
|   55.76 |  4.92 |
|   56.62 |  4.92 |
|   55.76 |  4.92 |
|   55.76 |  4.92 |
|   58.29 |  4.92 |
|   57.19 |  4.92 |
|   57.19 |  4.92 |
|   58.66 |  4.92 |
|   57.24 |  4.93 |
|   69.55 |  4.93 |
|   57.24 |  4.93 |
|   68.42 |  4.90 |
|   56.87 |  4.90 |
|   56.87 |  4.90 |
|   62.44 |  4.90 |
|   56.89 |  4.93 |
|   57.39 |  4.93 |
|   56.89 |  4.93 |
|   57.85 |  4.93 |
|   57.22 |  4.91 |
|   62.76 |  4.91 |
|   57.05 |  4.91 |
|   57.03 |  4.86 |
|   57.13 |  4.92 |
|   72.65 |  4.92 |
|   59.21 |  4.92 |
|   57.34 |  4.96 |
|   57.34 |  4.96 |
|   57.34 |  4.96 |
|   58.29 |  4.96 |
|   53.88 |  4.52 |
|   47.72 |  4.52 |
|   47.20 |  4.52 |
|   47.20 |  4.52 |
|   33.41 |  3.39 |
|   26.20 |  3.39 |
|   26.09 |  3.39 |
|   25.32 |  4.20 |
|   25.55 |  4.20 |
|   25.71 |  4.20 |
|   25.55 |  4.20 |
|   40.38 |  4.54 |
|   42.46 |  4.54 |
|   44.39 |  4.54 |
|   40.38 |  4.54 |
|   48.52 |  4.53 |
|   47.53 |  4.53 |
|   47.53 |  4.53 |
|   50.78 |  4.53 |
|   46.11 |  4.38 |
|   45.31 |  4.38 |
|   44.70 |  4.38 |
|   43.94 |  4.25 |
|   41.43 |  4.25 |
|   41.27 |  4.25 |
|   42.67 |  4.25 |
|   40.66 |  4.16 |
|   39.18 |  4.16 |
|   50.17 |  4.16 |
|   39.18 |  4.16 |
|   41.82 |  8.59 |
|   40.53 |  8.59 |
|   40.73 |  8.59 |
|   97.08 |  8.59 |
|   93.26 | 10.00 |
|  105.52 | 10.00 |
|   93.50 | 10.00 |
|  138.46 |  9.37 |
|   96.20 |  9.37 |
|  105.51 |  9.37 |
|  100.31 |  9.37 |
|   91.62 |  9.05 |
|   86.48 |  9.05 |
|   85.20 |  9.05 |
|   95.14 |  9.05 |
|   85.65 |  8.56 |
|   85.15 |  8.56 |
|   90.21 |  8.56 |
|   93.49 |  8.16 |
|  122.71 |  8.16 |
|   90.41 |  8.16 |
|  102.84 |  7.58 |
|  102.71 |  7.58 |
|  105.78 |  7.58 |
|  102.23 |  7.58 |
|  101.82 |  7.16 |
|   94.03 |  7.16 |
|   87.85 |  7.16 |
|   88.22 |  7.16 |
|   88.19 |  7.35 |
|   88.45 |  7.35 |
|   99.26 |  7.35 |
|   90.89 |  7.54 |
|   89.23 |  7.63 |
|   86.69 |  7.63 |
|   85.98 |  7.63 |
|   85.27 |  8.44 |
|   84.48 |  8.44 |
|   84.85 |  8.44 |
|  106.77 |  8.44 |
|   82.15 |  9.42 |
|   82.34 |  9.42 |
|   93.69 |  9.42 |
|   82.38 |  9.42 |
|   95.38 |  9.58 |
|   95.71 |  9.58 |
|   96.30 |  9.58 |
|  100.84 |  9.66 |
|  101.36 |  9.66 |
|  106.60 |  9.66 |
|  101.01 |  9.66 |
|  102.35 |  9.61 |
|   99.50 |  9.61 |
|   95.94 |  9.61 |
|   94.97 |  9.61 |
|   94.90 |  8.55 |
|   95.83 |  8.55 |
|   92.22 |  8.55 |
|   89.25 |  8.55 |
|   88.04 |  8.55 |
|   86.95 |  8.55 |
|   85.60 |  8.55 |
|   85.31 |  8.48 |
|   84.80 |  8.48 |
|   90.22 |  8.48 |
|   83.86 |  8.48 |
|   83.38 |  8.56 |
|  195.03 |  8.56 |
|   88.49 |  8.56 |
|   84.19 |  8.56 |
|   84.94 |  8.46 |
|   83.19 |  8.46 |
|   82.98 |  8.46 |
|   89.27 |  8.46 |
|  101.84 |  8.45 |
|   79.62 |  8.45 |
|   79.62 |  8.45 |
|   80.52 |  9.18 |
|   82.20 |  9.18 |
|   79.82 |  9.18 |
|   82.37 |  9.18 |
|   87.20 |  9.18 |
|   86.27 |  9.18 |
|   85.21 |  9.18 |
|   84.81 |  9.18 |
|   89.05 |  9.00 |
|   81.51 |  9.00 |
|   82.32 |  9.00 |
|   81.54 |  8.91 |
|   80.05 |  8.79 |
|   78.91 |  8.79 |
|   79.70 |  8.79 |
|  167.86 |  8.07 |
|   82.47 |  8.07 |
|   81.04 |  8.07 |
|   79.44 |  8.07 |
|  100.71 |  7.39 |
|   99.36 |  7.39 |
|   92.03 |  7.39 |
|   89.92 |  7.39 |
|   88.94 |  7.24 |
|   83.71 |  7.24 |
|   77.21 |  7.24 |
|   73.06 |  7.25 |
|   74.56 |  7.25 |
|   82.78 |  7.25 |
|   81.33 |  7.25 |
|   74.45 |  7.35 |
|   73.79 |  7.35 |
|   73.79 |  7.35 |
|   74.45 |  7.35 |
|   80.10 |  7.19 |
|   74.98 |  7.19 |
|   98.41 |  7.19 |
|   74.28 |  7.19 |
|   73.34 |  7.31 |
|   73.53 |  7.31 |
|   73.16 |  7.31 |
|   77.50 |  7.33 |
|   86.25 |  7.33 |
|   78.18 |  7.33 |
|   78.23 |  7.33 |
|   81.47 |  7.41 |
|   78.63 |  7.41 |
|   94.53 |  7.41 |
| 2144.07 |  7.41 |
|   81.26 |  7.16 |
|   74.27 |  7.16 |
|   73.74 |  7.16 |
|   73.48 |  7.16 |
|   71.85 |  7.13 |
|   80.49 |  7.13 |
|   66.69 |  7.13 |
|   69.19 |  8.21 |
|   69.19 |  8.21 |
|   70.29 |  8.21 |
|   80.49 |  8.21 |
|  150.93 |  6.63 |
|   76.84 |  6.63 |
|   73.65 |  6.63 |
|   68.82 |  6.63 |
|   69.33 |  7.13 |
|   66.33 |  7.13 |
|   65.30 |  7.13 |
|   64.54 |  7.13 |
|   65.73 |  7.70 |
|   65.65 |  7.70 |
|   67.02 |  7.70 |
|  117.46 |  6.73 |
|   75.54 |  6.73 |
|   65.92 |  6.73 |
|   74.28 |  6.73 |
|   65.13 |  7.18 |
|   64.45 |  7.18 |
|   65.01 |  7.18 |
|   64.26 |  7.18 |
|   72.59 |  7.40 |
|   68.55 |  7.40 |
|   69.36 |  7.40 |
|   84.69 |  7.04 |
|   71.93 |  7.04 |
|   63.29 |  7.04 |
|   63.30 |  7.04 |
|   64.43 |  6.73 |
|   75.18 |  6.73 |
|   83.95 |  6.73 |
|   62.37 |  6.73 |
|   65.76 |  6.65 |
|   63.20 |  6.65 |
|   58.51 |  6.65 |
|   56.25 |  6.65 |
|   55.89 |  6.72 |
|   54.28 |  6.72 |
|   53.60 |  6.72 |
|   53.59 |  6.76 |
|   53.03 |  6.76 |
|   52.55 |  6.76 |
|   52.50 |  6.76 |
|   51.94 |  6.61 |
|   48.41 |  6.61 |
|   46.15 |  6.61 |
|   45.06 |  6.61 |
|   47.04 |  8.04 |
| 1130.41 |  8.04 |
|   45.99 |  8.04 |
|  127.65 |  8.04 |
|  111.80 |  7.58 |
|   99.53 |  7.58 |
|   91.65 |  7.58 |
|   90.67 |  7.37 |
|   84.81 |  7.37 |
|   77.80 |  7.37 |
|   75.76 |  7.37 |
|   74.86 |  7.29 |
|   73.75 |  7.29 |
|   71.83 |  7.29 |
|   72.13 |  7.29 |
|   73.29 |  7.35 |
|   71.49 |  7.35 |
|   70.06 |  7.35 |
|   70.57 |  7.35 |
|   68.99 |  7.19 |
|   65.53 |  7.19 |
|   62.79 |  7.19 |
|   65.89 |  7.34 |
|   63.77 |  7.34 |
|   63.81 |  7.34 |
|   64.27 |  7.34 |
|   72.24 |  7.09 |
|   65.48 |  7.09 |
|   60.97 |  7.09 |
|   59.53 |  7.09 |
|   60.57 |  7.17 |
|   59.91 |  7.17 |
|   60.74 |  7.17 |
|   62.72 |  7.17 |
|   61.48 |  7.13 |
|   65.67 |  7.13 |
|   61.42 |  7.13 |
|   60.81 |  7.52 |
|   61.52 |  7.52 |
|   60.67 |  7.52 |
|  129.63 |  7.52 |
|   75.95 |  7.44 |
|   73.59 |  7.44 |
|   72.52 |  7.44 |
|   87.96 |  7.44 |
|   70.90 |  7.21 |
|   65.34 |  7.21 |
|  116.36 |  7.21 |
|   67.19 |  6.96 |
|   63.09 |  6.96 |
|   61.80 |  6.96 |
|   60.83 |  6.96 |
|   69.54 |  7.26 |
|   61.35 |  7.26 |
|  142.73 |  7.26 |
|   58.08 |  7.26 |
|   63.26 |  7.15 |
|   59.16 |  7.15 |
|   57.36 |  7.15 |
|   58.75 |  7.15 |
|   63.07 | 10.00 |
|   59.34 | 10.00 |
|   59.90 | 10.00 |
|  183.73 | 10.00 |
|  148.61 | 10.00 |
|  143.15 | 10.00 |
|  137.83 | 10.00 |
|  133.30 |  9.91 |
|  124.59 |  9.91 |
|  109.07 |  9.91 |
|  103.54 |  9.91 |
|   99.72 |  9.87 |
|   99.01 |  9.87 |
|  174.33 |  9.87 |
|   90.82 |  9.87 |
|   88.48 |  9.78 |
|   79.96 |  9.78 |
|   75.09 |  9.78 |
|   70.06 |  9.07 |
|   70.58 |  9.07 |
|   75.40 |  9.07 |
|   71.98 |  9.07 |
|  238.19 |  5.61 |
|   79.65 |  5.61 |
|   74.57 |  5.61 |
|  112.31 |  5.61 |
|  291.00 |  6.07 |
|   63.32 |  6.07 |
|   59.67 |  6.07 |
|   55.66 |  6.07 |
|   56.78 |  7.09 |
|   56.78 |  7.09 |
|   56.57 |  7.09 |
|  106.70 |  6.83 |
|   90.14 |  6.83 |
|   87.55 |  6.83 |
|   80.68 |  6.83 |
|   78.82 |  7.08 |
|   77.92 |  7.08 |
|   72.54 |  7.08 |
|   94.04 |  7.08 |
|   68.97 |  7.33 |
|   68.69 |  7.33 |
|   68.94 |  7.33 |
|   73.71 |  7.33 |
|   74.03 |  8.47 |
|   74.37 |  8.47 |
|   74.37 |  8.47 |
|  110.89 |  7.80 |
|   93.72 |  7.80 |
|   82.63 |  7.80 |
|   79.28 |  7.80 |
|   78.71 |  7.73 |
|   76.15 |  7.73 |
|   76.50 |  7.73 |
|   77.01 |  7.73 |
|   76.98 |  8.70 |
|   76.25 |  8.70 |
|   76.70 |  8.70 |
|  103.40 |  8.37 |
|   90.42 |  8.10 |
|   82.30 |  8.10 |
|   75.12 |  8.10 |
|   84.76 |  8.20 |
|   71.29 |  8.20 |
|   76.03 |  8.20 |
|   80.81 |  8.20 |
|   69.31 |  7.69 |
|   65.77 |  7.69 |
|   63.19 |  7.69 |
|   72.32 |  7.69 |
|   66.17 |  7.56 |
|   64.61 |  7.56 |
|   62.25 |  7.56 |
|   65.61 |  7.89 |
|   70.62 |  7.89 |
|   62.77 |  7.89 |
|   61.46 |  7.89 |
|   67.24 |  8.10 |
|   68.24 |  8.10 |
|   65.83 |  8.10 |
|   66.25 |  8.10 |
|   65.38 |  8.89 |
|   65.49 |  8.89 |
|   65.62 |  8.89 |
|   65.54 |  8.89 |
|   69.29 |  8.55 |
|   63.66 |  8.55 |
|   71.94 |  8.55 |
|   62.08 |  8.12 |
|   56.41 |  8.12 |
|   58.66 |  8.12 |
|   56.28 |  8.12 |
|   65.12 |  7.92 |
|   65.16 |  7.92 |
|   63.90 |  7.92 |
|   64.10 |  7.92 |
|   89.18 |  6.80 |
|   85.11 |  6.80 |
|   79.01 |  6.80 |
|   80.73 |  6.80 |
|   83.22 |  8.10 |
|   77.21 |  8.10 |
|   81.30 |  8.10 |
|  200.59 |  7.94 |
|  106.10 |  7.94 |
|  118.52 |  7.94 |
|   81.74 |  7.94 |
|   78.12 |  9.32 |
|   78.60 |  9.32 |
|   78.14 |  9.32 |
|   76.65 |  9.32 |
|   85.32 |  9.75 |
|   85.12 |  9.75 |
|   82.72 |  9.75 |
|   90.70 |  9.75 |
|   87.59 | 10.00 |
|   79.58 | 10.00 |
|   79.79 | 10.00 |
|   83.68 | 10.00 |
|   83.73 | 10.00 |
|   82.05 | 10.00 |
|   83.31 | 10.00 |
|   83.58 | 10.00 |
|   83.00 | 10.00 |
|   83.68 | 10.00 |
|   83.51 | 10.00 |
|  106.63 |  9.87 |
|   83.82 |  9.87 |
|   79.07 |  9.87 |
|   76.39 | 10.00 |
|   75.10 | 10.00 |
|   88.56 | 10.00 |
|   80.25 | 10.00 |
|   84.13 | 10.00 |
|   84.30 | 10.00 |
|   90.09 | 10.00 |
|   83.91 | 10.00 |
|   83.58 | 10.00 |
|   83.58 | 10.00 |
|   88.78 | 10.00 |
|   85.43 | 10.00 |
|   83.36 | 10.00 |
|   83.51 | 10.00 |
|  195.54 | 10.00 |
|   82.96 | 10.00 |
|   83.72 | 10.00 |
|   82.05 | 10.00 |
|   84.29 | 10.00 |
|   83.94 | 10.00 |
|   83.61 | 10.00 |
|   82.05 | 10.00 |
|   82.05 | 10.00 |
|   83.65 | 10.00 |
|   82.05 | 10.00 |
|   82.05 | 10.00 |
|   82.05 | 10.00 |
|   86.80 | 10.00 |
|   83.52 | 10.00 |
|   83.57 | 10.00 |
|   82.05 | 10.00 |
|   84.02 | 10.00 |
|   84.18 | 10.00 |
|   84.36 | 10.00 |
|   82.58 |  9.85 |
|   81.61 |  9.85 |
|   80.56 |  9.85 |
|   84.89 |  9.85 |
|   78.38 |  9.75 |
|   69.92 |  9.75 |
|   70.21 |  9.75 |
|   80.63 |  9.75 |
|   73.78 | 10.00 |
|   67.42 | 10.00 |
|   67.30 | 10.00 |
|   95.42 | 10.00 |
|  112.31 | 10.00 |
|   90.46 | 10.00 |
|   88.78 | 10.00 |
|   90.07 |  9.89 |
|   81.47 |  9.89 |
|   76.46 |  9.89 |
|   77.17 |  9.89 |
|   72.02 | 10.00 |
|   74.01 | 10.00 |
|   73.54 | 10.00 |
|   85.90 | 10.00 |
|   84.62 | 10.00 |
|   83.08 | 10.00 |
|   90.88 | 10.00 |
|   85.52 |  9.99 |
|   82.56 |  9.99 |
|   86.10 |  9.99 |
|   95.17 |  9.99 |
|   83.49 | 10.00 |
|   95.30 | 10.00 |
|   83.13 | 10.00 |
|   86.85 | 10.00 |
|   80.22 |  9.87 |
|   75.55 |  9.87 |
|   72.26 |  9.87 |
|   72.80 | 10.00 |
|   72.17 | 10.00 |
|   72.54 | 10.00 |
|   71.51 | 10.00 |
|   86.11 |  9.76 |
|  159.73 |  9.76 |
|  109.28 |  9.76 |
|   85.35 |  9.76 |
|   69.05 |  9.98 |
|   75.66 |  9.98 |
|  160.56 |  9.98 |
|   71.03 |  9.98 |
|   79.06 |  9.72 |
|   75.60 |  9.72 |
|  222.91 |  9.72 |
|   72.33 | 10.00 |
|   72.07 | 10.00 |
|   72.84 | 10.00 |
|   72.02 | 10.00 |
|   83.61 | 10.00 |
|   84.64 | 10.00 |
|   83.08 | 10.00 |
|   85.06 | 10.00 |
|   84.18 | 10.00 |
|   85.67 | 10.00 |
|   84.71 | 10.00 |
|  568.85 | 10.00 |
|   79.96 |  9.85 |
|   74.15 |  9.85 |
|   70.56 |  9.85 |
|   71.17 | 10.00 |
|   69.63 | 10.00 |
|   71.83 | 10.00 |
|   71.12 | 10.00 |
|   82.24 |  9.84 |
|   77.36 |  9.84 |
|   71.93 |  9.84 |
|   69.34 |  9.84 |
|   73.19 | 10.00 |
|   71.86 | 10.00 |
|   80.88 | 10.00 |
|   86.79 | 10.00 |
|   81.20 |  9.67 |
|   76.63 |  9.67 |
|   71.17 |  9.67 |
|   70.59 |  9.71 |
|   81.39 |  9.71 |
|   81.99 |  9.71 |
|   78.69 |  9.71 |
|   78.33 |  9.88 |
|   68.27 |  9.88 |
|   66.52 |  9.88 |
|   66.52 |  9.88 |
|   78.00 |  9.27 |
|   75.31 |  9.27 |
|   67.78 |  9.27 |
|   84.79 |  9.27 |
|   59.97 |  9.45 |
|   59.39 |  9.45 |
|   58.48 |  9.45 |
|   52.23 | 10.00 |
|   53.38 | 10.00 |
|   57.27 | 10.00 |
|   54.74 | 10.00 |
|  148.79 | 10.00 |
|  115.87 | 10.00 |
|  107.64 | 10.00 |
|  100.44 | 10.00 |
|   91.95 | 10.00 |
|   86.64 | 10.00 |
|   84.70 | 10.00 |
|   83.08 | 10.00 |
|  231.73 | 10.00 |
|   83.08 | 10.00 |
|   86.24 | 10.00 |
|   84.75 | 10.00 |
|   84.69 | 10.00 |
|   96.74 | 10.00 |
|   83.08 | 10.00 |
|   81.59 |  9.88 |
|   75.41 |  9.88 |
|   81.43 |  9.88 |
|   71.05 |  9.88 |
|   71.50 | 10.00 |
|   76.72 | 10.00 |
|   72.97 | 10.00 |
|   85.13 |  9.82 |
|   78.72 |  9.82 |
|   71.45 |  9.82 |
|   71.10 |  9.82 |
|   73.55 | 10.00 |
|   69.65 | 10.00 |
|   94.45 | 10.00 |
|   72.61 | 10.00 |
|   81.00 |  9.81 |
|   77.35 |  9.81 |
|   74.13 |  9.81 |
|   69.43 |  9.81 |
|   69.71 | 10.00 |
|   72.23 | 10.00 |
|   71.15 | 10.00 |
|   84.26 |  9.47 |
|   79.58 |  9.47 |
|   72.14 |  9.47 |
|   77.44 |  9.47 |
|   65.08 |  9.65 |
|   61.33 |  9.65 |
|   86.35 |  9.65 |
|   59.18 |  9.65 |
|   72.42 | 10.00 |
|   64.07 | 10.00 |
|   68.07 | 10.00 |
|  100.60 | 10.00 |
|   95.04 |  8.79 |
|   90.80 |  8.79 |
|   77.38 |  8.79 |
|   71.98 |  8.89 |
|   61.72 |  8.89 |
|   56.99 |  8.89 |
|   56.70 |  8.89 |
|   56.85 |  9.26 |
|   56.63 |  9.26 |
|   56.85 |  9.26 |
|   54.80 |  9.26 |
|   65.82 |  9.55 |
|  117.32 |  9.55 |
|   65.96 |  9.55 |
|   69.07 |  9.59 |
|   59.64 |  9.59 |
|   56.03 |  9.59 |
|   54.84 |  9.59 |
|   59.47 | 10.00 |
|   56.82 | 10.00 |
|   54.28 | 10.00 |
|   54.20 | 10.00 |
|  101.76 |  8.59 |
|  100.70 |  8.59 |
|  128.54 |  8.59 |
|   86.15 |  8.59 |
|   72.82 |  5.93 |
|   65.29 |  5.93 |
|   63.39 |  5.93 |
|   55.80 |  6.21 |
|   56.41 |  6.75 |
|   56.88 |  6.75 |
|   57.77 |  6.75 |
|   91.05 |  6.66 |
|   73.68 |  6.66 |
|   66.24 |  6.66 |
|   60.38 |  6.66 |
|   60.77 |  7.33 |
|   60.77 |  7.33 |
|   60.75 |  7.33 |
|   60.64 |  7.33 |
|  100.72 |  7.20 |
|   93.75 |  7.20 |
|  146.01 |  7.20 |
|   78.80 |  7.55 |
|   68.43 |  7.55 |
|   73.54 |  7.55 |
|   65.25 |  7.55 |
|   69.20 |  8.81 |
|   69.20 |  8.81 |
|   94.65 |  8.81 |
|   69.13 |  8.81 |
|   89.21 |  9.14 |
|   83.58 |  9.14 |
|   75.86 |  9.14 |
|   70.01 |  9.14 |
|   67.77 |  9.44 |
|   62.37 |  9.44 |
|   53.33 |  9.44 |
|   54.72 | 10.00 |
|   53.15 | 10.00 |
|   53.17 | 10.00 |
|   55.67 | 10.00 |
|  192.74 |  9.36 |
|   74.34 |  9.36 |
|   60.46 |  9.36 |
|   58.04 |  9.36 |
|   51.71 | 10.00 |
|   53.60 | 10.00 |
|   53.84 | 10.00 |
|  104.38 | 10.00 |
|   89.51 |  9.23 |
|  285.73 |  9.23 |
|  295.77 |  9.23 |
|   55.38 | 10.00 |
|   56.38 | 10.00 |
|   58.22 | 10.00 |
|   60.08 | 10.00 |
|  103.93 |  7.27 |
|  101.32 |  7.27 |
|   95.52 |  7.27 |
|   90.81 |  7.27 |
|   87.39 |  7.12 |
|   99.42 |  7.12 |
|   76.44 |  7.12 |
|  106.28 |  7.12 |
|   65.70 |  6.72 |
|   58.54 |  6.72 |
|   52.38 |  6.72 |
|   51.12 |  7.41 |
|   50.59 |  7.41 |
|   51.31 |  7.41 |
|   50.59 |  7.41 |
|   79.13 |  7.17 |
|   74.50 |  7.17 |
|   69.10 |  7.17 |
|   68.30 |  7.17 |
|   73.63 |  7.85 |
|   69.35 |  7.85 |
|   68.86 |  7.85 |
|   96.04 |  7.48 |
|  141.05 |  7.48 |
|   83.92 |  7.48 |
|  200.91 |  7.48 |
|   80.84 |  7.83 |
|   79.52 |  7.83 |
|   79.92 |  7.83 |
|   78.26 |  7.83 |
|   75.84 |  8.25 |
|   67.86 |  8.25 |
|   50.66 |  8.25 |
|   47.20 |  8.25 |
|   48.92 |  8.85 |
|   57.71 |  8.85 |
|   71.82 |  8.85 |
|   75.58 |  9.55 |
|   74.77 |  9.55 |
|   74.79 |  9.55 |
|   72.74 |  9.55 |
|         |       |

#+begin_src ruby :var table=stuff :results output raw
  count = 0
  table.map{|vars| count += 1; puts "|#{count} | #{vars[0]} | #{vars[1]} |" }
#+end_src

#+results:
|   1 |   12.79 | 0.98 |
|   2 |   22.34 | 0.98 |
|   3 |   12.22 | 0.98 |
|   4 |   24.03 | 1.73 |
|   5 |    27.4 | 1.73 |
|   6 |   17.28 | 1.73 |
|   7 |   17.76 | 1.73 |
|   8 |   27.07 | 1.94 |
|   9 |   32.84 | 1.94 |
|  10 |   27.07 | 1.94 |
|  11 |   31.63 | 1.95 |
|  12 |   31.28 | 1.95 |
|  13 |   31.28 | 1.95 |
|  14 |   31.28 | 1.95 |
|  15 |   30.84 | 1.97 |
|  16 |   27.55 | 1.97 |
|  17 |   18.61 | 1.97 |
|  18 |   16.99 | 1.97 |
|  19 |   11.93 | 2.64 |
|  20 |    9.37 | 2.64 |
|  21 |   28.38 | 2.64 |
|  22 |    8.97 | 2.64 |
|  23 |   21.06 | 2.81 |
|  24 |   21.24 | 2.81 |
|  25 |    20.1 | 2.81 |
|  26 |   26.03 |  2.9 |
|  27 |   27.18 |  2.9 |
|  28 |   26.77 |  2.9 |
|  29 |   34.93 |  2.9 |
|  30 |   74.32 | 2.81 |
|  31 |   27.47 | 2.81 |
|  32 |   26.78 | 2.81 |
|  33 |   28.82 | 2.81 |
|  34 |   35.45 | 3.05 |
|  35 |   36.76 | 3.05 |
|  36 |   26.08 | 3.05 |
|  37 |   30.39 | 3.05 |
|  38 |   33.49 | 2.95 |
|  39 |   31.93 | 2.95 |
|  40 |    33.1 | 2.95 |
|  41 |   31.93 | 2.96 |
|  42 |   31.72 | 2.96 |
|  43 |   38.92 | 2.96 |
|  44 |   30.39 | 2.96 |
|  45 |   31.47 | 3.04 |
|  46 |   27.16 | 3.04 |
|  47 |   27.67 | 3.04 |
|  48 |   20.43 | 3.04 |
|  49 |    21.0 | 3.42 |
|  50 |   49.06 | 3.42 |
|  51 |   20.35 | 3.42 |
|  52 |    20.9 | 3.42 |
|  53 |   25.27 | 3.92 |
|  54 |   24.27 | 3.92 |
|  55 |   23.81 | 3.92 |
|  56 |   32.65 | 4.65 |
|  57 |   46.72 | 4.65 |
|  58 |   32.65 | 4.65 |
|  59 |   41.58 | 4.65 |
|  60 |   57.64 | 5.21 |
|  61 |   57.25 | 5.21 |
|  62 |   66.32 | 5.21 |
|  63 |  804.41 | 5.21 |
|  64 |   66.26 | 5.69 |
|  65 |   66.43 | 5.69 |
|  66 |    66.9 | 5.69 |
|  67 |   137.5 | 5.69 |
|  68 |   64.25 |  6.1 |
|  69 |   66.62 |  6.1 |
|  70 |    62.9 |  6.1 |
|  71 |   78.69 | 6.46 |
|  72 |   64.87 | 6.46 |
|  73 |   76.97 | 6.46 |
|  74 |   64.35 | 6.46 |
|  75 |   63.86 | 6.61 |
|  76 |   63.86 | 6.61 |
|  77 |   75.87 | 6.61 |
|  78 |   69.19 | 6.61 |
|  79 |   76.21 | 6.45 |
|  80 |   63.45 | 6.45 |
|  81 |   63.45 | 6.45 |
|  82 |   63.45 | 6.45 |
|  83 |   65.55 | 6.42 |
|  84 |   69.02 | 6.42 |
|  85 |   63.44 | 6.42 |
|  86 |   69.04 | 6.45 |
|  87 |   63.49 | 6.45 |
|  88 |   63.48 | 6.45 |
|  89 |   63.46 | 6.45 |
|  90 |   64.25 | 6.42 |
|  91 |   63.47 | 6.42 |
|  92 |    63.5 | 6.42 |
|  93 |   77.58 | 6.42 |
|  94 |   63.34 | 6.44 |
|  95 |   64.39 | 6.44 |
|  96 |   63.34 | 6.44 |
|  97 |   64.29 | 6.44 |
|  98 |   64.78 | 6.45 |
|  99 |   89.71 | 6.45 |
| 100 |   63.67 | 6.45 |
| 101 |   83.03 | 6.36 |
| 102 |    63.5 | 6.36 |
| 103 |   65.59 | 6.36 |
| 104 |   63.39 | 6.36 |
| 105 |   63.44 | 6.06 |
| 106 |   63.44 | 6.06 |
| 107 |    63.7 | 6.06 |
| 108 |    63.9 | 6.06 |
| 109 |   64.45 | 5.84 |
| 110 |   64.38 | 5.84 |
| 111 |   64.37 | 5.84 |
| 112 |    64.4 | 5.58 |
| 113 |   62.45 | 5.58 |
| 114 |   62.05 | 5.58 |
| 115 |   61.66 | 5.58 |
| 116 |   61.62 | 5.52 |
| 117 |   61.31 | 5.52 |
| 118 |   62.33 | 5.52 |
| 119 |   61.31 | 5.52 |
| 120 |   61.32 |  5.4 |
| 121 |   64.26 |  5.4 |
| 122 |   63.16 |  5.4 |
| 123 |   61.32 |  5.4 |
| 124 |    67.2 | 5.18 |
| 125 |   60.78 | 5.18 |
| 126 |   59.45 | 5.18 |
| 127 |   58.44 | 5.11 |
| 128 |   58.18 | 5.11 |
| 129 |   58.18 | 5.11 |
| 130 |   58.18 | 5.11 |
| 131 |   58.95 | 4.95 |
| 132 |   63.74 | 4.95 |
| 133 |   58.17 | 4.95 |
| 134 |   58.12 | 4.95 |
| 135 |   58.79 |  4.9 |
| 136 |   56.73 |  4.9 |
| 137 |   54.65 |  4.9 |
| 138 |   54.33 |  4.9 |
| 139 |   65.01 | 4.99 |
| 140 |   57.17 | 4.99 |
| 141 |   54.92 | 4.99 |
| 142 |   55.89 | 5.02 |
| 143 |   58.19 | 5.02 |
| 144 |   56.33 | 5.02 |
| 145 |   56.33 | 5.02 |
| 146 |   67.24 | 5.02 |
| 147 |   56.68 | 5.02 |
| 148 |   56.77 | 5.02 |
| 149 |   56.24 | 5.02 |
| 150 |    58.4 | 4.98 |
| 151 |   55.66 | 4.98 |
| 152 |   55.66 | 4.98 |
| 153 |   55.66 | 4.98 |
| 154 |    62.6 | 4.95 |
| 155 |   69.16 | 4.95 |
| 156 |   60.97 | 4.95 |
| 157 |   55.55 | 4.89 |
| 158 |   53.98 | 4.89 |
| 159 |   53.98 | 4.89 |
| 160 |   53.98 | 4.89 |
| 161 |   54.02 | 4.99 |
| 162 |   54.02 | 4.99 |
| 163 |   59.79 | 4.99 |
| 164 |   54.02 | 4.99 |
| 165 |   56.28 | 5.27 |
| 166 |   55.96 | 5.27 |
| 167 |   55.96 | 5.27 |
| 168 |   58.84 | 5.42 |
| 169 |   80.58 | 5.42 |
| 170 |   59.79 | 5.42 |
| 171 |   58.79 | 5.42 |
| 172 |   59.65 | 5.29 |
| 173 |   59.46 | 5.29 |
| 174 |    58.9 | 5.29 |
| 175 |    58.9 | 5.29 |
| 176 |   58.52 | 5.15 |
| 177 |    67.0 | 5.15 |
| 178 |   57.92 | 5.15 |
| 179 |   57.92 | 5.15 |
| 180 |   57.42 | 5.01 |
| 181 |   56.21 | 5.01 |
| 182 |   56.21 | 5.01 |
| 183 |   56.56 | 4.88 |
| 184 |   54.29 | 4.88 |
| 185 |   53.77 | 4.88 |
| 186 |   57.35 | 4.88 |
| 187 |   54.58 | 4.67 |
| 188 |   51.69 | 4.67 |
| 189 |    52.0 | 4.67 |
| 190 |   51.61 | 4.67 |
| 191 |  114.25 | 4.59 |
| 192 |   50.17 | 4.59 |
| 193 |   49.35 | 4.59 |
| 194 |  125.78 | 4.59 |
| 195 |   49.26 | 4.58 |
| 196 |   49.63 | 4.58 |
| 197 |   56.57 | 4.58 |
| 198 |   49.28 | 4.66 |
| 199 |   49.25 | 4.66 |
| 200 |   49.25 | 4.66 |
| 201 |   49.25 | 4.66 |
| 202 |   51.47 | 4.72 |
| 203 |   51.47 | 4.72 |
| 204 |   51.85 | 4.72 |
| 205 |   53.72 | 4.72 |
| 206 |   53.44 | 4.71 |
| 207 |   52.96 | 4.71 |
| 208 |   52.54 | 4.71 |
| 209 |    52.4 | 4.71 |
| 210 |   57.94 | 4.71 |
| 211 |   52.19 | 4.71 |
| 212 |   52.19 | 4.71 |
| 213 |   52.19 | 4.69 |
| 214 |   52.49 | 4.69 |
| 215 |   52.39 | 4.69 |
| 216 |   53.09 | 4.69 |
| 217 |    52.0 | 4.76 |
| 218 |   64.41 | 4.76 |
| 219 |    52.0 | 4.76 |
| 220 |    52.0 | 4.76 |
| 221 |   52.76 | 4.68 |
| 222 |   53.76 | 4.68 |
| 223 |   52.73 | 4.68 |
| 224 |   51.77 | 4.68 |
| 225 |   57.48 |  4.8 |
| 226 |   52.21 |  4.8 |
| 227 |   55.32 |  4.8 |
| 228 |   54.84 | 4.84 |
| 229 |   54.84 | 4.84 |
| 230 |   55.97 | 4.84 |
| 231 |   57.09 | 4.84 |
| 232 |   55.76 | 4.92 |
| 233 |   56.62 | 4.92 |
| 234 |   55.76 | 4.92 |
| 235 |   55.76 | 4.92 |
| 236 |   58.29 | 4.92 |
| 237 |   57.19 | 4.92 |
| 238 |   57.19 | 4.92 |
| 239 |   58.66 | 4.92 |
| 240 |   57.24 | 4.93 |
| 241 |   69.55 | 4.93 |
| 242 |   57.24 | 4.93 |
| 243 |   68.42 |  4.9 |
| 244 |   56.87 |  4.9 |
| 245 |   56.87 |  4.9 |
| 246 |   62.44 |  4.9 |
| 247 |   56.89 | 4.93 |
| 248 |   57.39 | 4.93 |
| 249 |   56.89 | 4.93 |
| 250 |   57.85 | 4.93 |
| 251 |   57.22 | 4.91 |
| 252 |   62.76 | 4.91 |
| 253 |   57.05 | 4.91 |
| 254 |   57.03 | 4.86 |
| 255 |   57.13 | 4.92 |
| 256 |   72.65 | 4.92 |
| 257 |   59.21 | 4.92 |
| 258 |   57.34 | 4.96 |
| 259 |   57.34 | 4.96 |
| 260 |   57.34 | 4.96 |
| 261 |   58.29 | 4.96 |
| 262 |   53.88 | 4.52 |
| 263 |   47.72 | 4.52 |
| 264 |    47.2 | 4.52 |
| 265 |    47.2 | 4.52 |
| 266 |   33.41 | 3.39 |
| 267 |    26.2 | 3.39 |
| 268 |   26.09 | 3.39 |
| 269 |   25.32 |  4.2 |
| 270 |   25.55 |  4.2 |
| 271 |   25.71 |  4.2 |
| 272 |   25.55 |  4.2 |
| 273 |   40.38 | 4.54 |
| 274 |   42.46 | 4.54 |
| 275 |   44.39 | 4.54 |
| 276 |   40.38 | 4.54 |
| 277 |   48.52 | 4.53 |
| 278 |   47.53 | 4.53 |
| 279 |   47.53 | 4.53 |
| 280 |   50.78 | 4.53 |
| 281 |   46.11 | 4.38 |
| 282 |   45.31 | 4.38 |
| 283 |    44.7 | 4.38 |
| 284 |   43.94 | 4.25 |
| 285 |   41.43 | 4.25 |
| 286 |   41.27 | 4.25 |
| 287 |   42.67 | 4.25 |
| 288 |   40.66 | 4.16 |
| 289 |   39.18 | 4.16 |
| 290 |   50.17 | 4.16 |
| 291 |   39.18 | 4.16 |
| 292 |   41.82 | 8.59 |
| 293 |   40.53 | 8.59 |
| 294 |   40.73 | 8.59 |
| 295 |   97.08 | 8.59 |
| 296 |   93.26 | 10.0 |
| 297 |  105.52 | 10.0 |
| 298 |    93.5 | 10.0 |
| 299 |  138.46 | 9.37 |
| 300 |    96.2 | 9.37 |
| 301 |  105.51 | 9.37 |
| 302 |  100.31 | 9.37 |
| 303 |   91.62 | 9.05 |
| 304 |   86.48 | 9.05 |
| 305 |    85.2 | 9.05 |
| 306 |   95.14 | 9.05 |
| 307 |   85.65 | 8.56 |
| 308 |   85.15 | 8.56 |
| 309 |   90.21 | 8.56 |
| 310 |   93.49 | 8.16 |
| 311 |  122.71 | 8.16 |
| 312 |   90.41 | 8.16 |
| 313 |  102.84 | 7.58 |
| 314 |  102.71 | 7.58 |
| 315 |  105.78 | 7.58 |
| 316 |  102.23 | 7.58 |
| 317 |  101.82 | 7.16 |
| 318 |   94.03 | 7.16 |
| 319 |   87.85 | 7.16 |
| 320 |   88.22 | 7.16 |
| 321 |   88.19 | 7.35 |
| 322 |   88.45 | 7.35 |
| 323 |   99.26 | 7.35 |
| 324 |   90.89 | 7.54 |
| 325 |   89.23 | 7.63 |
| 326 |   86.69 | 7.63 |
| 327 |   85.98 | 7.63 |
| 328 |   85.27 | 8.44 |
| 329 |   84.48 | 8.44 |
| 330 |   84.85 | 8.44 |
| 331 |  106.77 | 8.44 |
| 332 |   82.15 | 9.42 |
| 333 |   82.34 | 9.42 |
| 334 |   93.69 | 9.42 |
| 335 |   82.38 | 9.42 |
| 336 |   95.38 | 9.58 |
| 337 |   95.71 | 9.58 |
| 338 |    96.3 | 9.58 |
| 339 |  100.84 | 9.66 |
| 340 |  101.36 | 9.66 |
| 341 |   106.6 | 9.66 |
| 342 |  101.01 | 9.66 |
| 343 |  102.35 | 9.61 |
| 344 |    99.5 | 9.61 |
| 345 |   95.94 | 9.61 |
| 346 |   94.97 | 9.61 |
| 347 |    94.9 | 8.55 |
| 348 |   95.83 | 8.55 |
| 349 |   92.22 | 8.55 |
| 350 |   89.25 | 8.55 |
| 351 |   88.04 | 8.55 |
| 352 |   86.95 | 8.55 |
| 353 |    85.6 | 8.55 |
| 354 |   85.31 | 8.48 |
| 355 |    84.8 | 8.48 |
| 356 |   90.22 | 8.48 |
| 357 |   83.86 | 8.48 |
| 358 |   83.38 | 8.56 |
| 359 |  195.03 | 8.56 |
| 360 |   88.49 | 8.56 |
| 361 |   84.19 | 8.56 |
| 362 |   84.94 | 8.46 |
| 363 |   83.19 | 8.46 |
| 364 |   82.98 | 8.46 |
| 365 |   89.27 | 8.46 |
| 366 |  101.84 | 8.45 |
| 367 |   79.62 | 8.45 |
| 368 |   79.62 | 8.45 |
| 369 |   80.52 | 9.18 |
| 370 |    82.2 | 9.18 |
| 371 |   79.82 | 9.18 |
| 372 |   82.37 | 9.18 |
| 373 |    87.2 | 9.18 |
| 374 |   86.27 | 9.18 |
| 375 |   85.21 | 9.18 |
| 376 |   84.81 | 9.18 |
| 377 |   89.05 |  9.0 |
| 378 |   81.51 |  9.0 |
| 379 |   82.32 |  9.0 |
| 380 |   81.54 | 8.91 |
| 381 |   80.05 | 8.79 |
| 382 |   78.91 | 8.79 |
| 383 |    79.7 | 8.79 |
| 384 |  167.86 | 8.07 |
| 385 |   82.47 | 8.07 |
| 386 |   81.04 | 8.07 |
| 387 |   79.44 | 8.07 |
| 388 |  100.71 | 7.39 |
| 389 |   99.36 | 7.39 |
| 390 |   92.03 | 7.39 |
| 391 |   89.92 | 7.39 |
| 392 |   88.94 | 7.24 |
| 393 |   83.71 | 7.24 |
| 394 |   77.21 | 7.24 |
| 395 |   73.06 | 7.25 |
| 396 |   74.56 | 7.25 |
| 397 |   82.78 | 7.25 |
| 398 |   81.33 | 7.25 |
| 399 |   74.45 | 7.35 |
| 400 |   73.79 | 7.35 |
| 401 |   73.79 | 7.35 |
| 402 |   74.45 | 7.35 |
| 403 |    80.1 | 7.19 |
| 404 |   74.98 | 7.19 |
| 405 |   98.41 | 7.19 |
| 406 |   74.28 | 7.19 |
| 407 |   73.34 | 7.31 |
| 408 |   73.53 | 7.31 |
| 409 |   73.16 | 7.31 |
| 410 |    77.5 | 7.33 |
| 411 |   86.25 | 7.33 |
| 412 |   78.18 | 7.33 |
| 413 |   78.23 | 7.33 |
| 414 |   81.47 | 7.41 |
| 415 |   78.63 | 7.41 |
| 416 |   94.53 | 7.41 |
| 417 | 2144.07 | 7.41 |
| 418 |   81.26 | 7.16 |
| 419 |   74.27 | 7.16 |
| 420 |   73.74 | 7.16 |
| 421 |   73.48 | 7.16 |
| 422 |   71.85 | 7.13 |
| 423 |   80.49 | 7.13 |
| 424 |   66.69 | 7.13 |
| 425 |   69.19 | 8.21 |
| 426 |   69.19 | 8.21 |
| 427 |   70.29 | 8.21 |
| 428 |   80.49 | 8.21 |
| 429 |  150.93 | 6.63 |
| 430 |   76.84 | 6.63 |
| 431 |   73.65 | 6.63 |
| 432 |   68.82 | 6.63 |
| 433 |   69.33 | 7.13 |
| 434 |   66.33 | 7.13 |
| 435 |    65.3 | 7.13 |
| 436 |   64.54 | 7.13 |
| 437 |   65.73 |  7.7 |
| 438 |   65.65 |  7.7 |
| 439 |   67.02 |  7.7 |
| 440 |  117.46 | 6.73 |
| 441 |   75.54 | 6.73 |
| 442 |   65.92 | 6.73 |
| 443 |   74.28 | 6.73 |
| 444 |   65.13 | 7.18 |
| 445 |   64.45 | 7.18 |
| 446 |   65.01 | 7.18 |
| 447 |   64.26 | 7.18 |
| 448 |   72.59 |  7.4 |
| 449 |   68.55 |  7.4 |
| 450 |   69.36 |  7.4 |
| 451 |   84.69 | 7.04 |
| 452 |   71.93 | 7.04 |
| 453 |   63.29 | 7.04 |
| 454 |    63.3 | 7.04 |
| 455 |   64.43 | 6.73 |
| 456 |   75.18 | 6.73 |
| 457 |   83.95 | 6.73 |
| 458 |   62.37 | 6.73 |
| 459 |   65.76 | 6.65 |
| 460 |    63.2 | 6.65 |
| 461 |   58.51 | 6.65 |
| 462 |   56.25 | 6.65 |
| 463 |   55.89 | 6.72 |
| 464 |   54.28 | 6.72 |
| 465 |    53.6 | 6.72 |
| 466 |   53.59 | 6.76 |
| 467 |   53.03 | 6.76 |
| 468 |   52.55 | 6.76 |
| 469 |    52.5 | 6.76 |
| 470 |   51.94 | 6.61 |
| 471 |   48.41 | 6.61 |
| 472 |   46.15 | 6.61 |
| 473 |   45.06 | 6.61 |
| 474 |   47.04 | 8.04 |
| 475 | 1130.41 | 8.04 |
| 476 |   45.99 | 8.04 |
| 477 |  127.65 | 8.04 |
| 478 |   111.8 | 7.58 |
| 479 |   99.53 | 7.58 |
| 480 |   91.65 | 7.58 |
| 481 |   90.67 | 7.37 |
| 482 |   84.81 | 7.37 |
| 483 |    77.8 | 7.37 |
| 484 |   75.76 | 7.37 |
| 485 |   74.86 | 7.29 |
| 486 |   73.75 | 7.29 |
| 487 |   71.83 | 7.29 |
| 488 |   72.13 | 7.29 |
| 489 |   73.29 | 7.35 |
| 490 |   71.49 | 7.35 |
| 491 |   70.06 | 7.35 |
| 492 |   70.57 | 7.35 |
| 493 |   68.99 | 7.19 |
| 494 |   65.53 | 7.19 |
| 495 |   62.79 | 7.19 |
| 496 |   65.89 | 7.34 |
| 497 |   63.77 | 7.34 |
| 498 |   63.81 | 7.34 |
| 499 |   64.27 | 7.34 |
| 500 |   72.24 | 7.09 |
| 501 |   65.48 | 7.09 |
| 502 |   60.97 | 7.09 |
| 503 |   59.53 | 7.09 |
| 504 |   60.57 | 7.17 |
| 505 |   59.91 | 7.17 |
| 506 |   60.74 | 7.17 |
| 507 |   62.72 | 7.17 |
| 508 |   61.48 | 7.13 |
| 509 |   65.67 | 7.13 |
| 510 |   61.42 | 7.13 |
| 511 |   60.81 | 7.52 |
| 512 |   61.52 | 7.52 |
| 513 |   60.67 | 7.52 |
| 514 |  129.63 | 7.52 |
| 515 |   75.95 | 7.44 |
| 516 |   73.59 | 7.44 |
| 517 |   72.52 | 7.44 |
| 518 |   87.96 | 7.44 |
| 519 |    70.9 | 7.21 |
| 520 |   65.34 | 7.21 |
| 521 |  116.36 | 7.21 |
| 522 |   67.19 | 6.96 |
| 523 |   63.09 | 6.96 |
| 524 |    61.8 | 6.96 |
| 525 |   60.83 | 6.96 |
| 526 |   69.54 | 7.26 |
| 527 |   61.35 | 7.26 |
| 528 |  142.73 | 7.26 |
| 529 |   58.08 | 7.26 |
| 530 |   63.26 | 7.15 |
| 531 |   59.16 | 7.15 |
| 532 |   57.36 | 7.15 |
| 533 |   58.75 | 7.15 |
| 534 |   63.07 | 10.0 |
| 535 |   59.34 | 10.0 |
| 536 |    59.9 | 10.0 |
| 537 |  183.73 | 10.0 |
| 538 |  148.61 | 10.0 |
| 539 |  143.15 | 10.0 |
| 540 |  137.83 | 10.0 |
| 541 |   133.3 | 9.91 |
| 542 |  124.59 | 9.91 |
| 543 |  109.07 | 9.91 |
| 544 |  103.54 | 9.91 |
| 545 |   99.72 | 9.87 |
| 546 |   99.01 | 9.87 |
| 547 |  174.33 | 9.87 |
| 548 |   90.82 | 9.87 |
| 549 |   88.48 | 9.78 |
| 550 |   79.96 | 9.78 |
| 551 |   75.09 | 9.78 |
| 552 |   70.06 | 9.07 |
| 553 |   70.58 | 9.07 |
| 554 |    75.4 | 9.07 |
| 555 |   71.98 | 9.07 |
| 556 |  238.19 | 5.61 |
| 557 |   79.65 | 5.61 |
| 558 |   74.57 | 5.61 |
| 559 |  112.31 | 5.61 |
| 560 |   291.0 | 6.07 |
| 561 |   63.32 | 6.07 |
| 562 |   59.67 | 6.07 |
| 563 |   55.66 | 6.07 |
| 564 |   56.78 | 7.09 |
| 565 |   56.78 | 7.09 |
| 566 |   56.57 | 7.09 |
| 567 |   106.7 | 6.83 |
| 568 |   90.14 | 6.83 |
| 569 |   87.55 | 6.83 |
| 570 |   80.68 | 6.83 |
| 571 |   78.82 | 7.08 |
| 572 |   77.92 | 7.08 |
| 573 |   72.54 | 7.08 |
| 574 |   94.04 | 7.08 |
| 575 |   68.97 | 7.33 |
| 576 |   68.69 | 7.33 |
| 577 |   68.94 | 7.33 |
| 578 |   73.71 | 7.33 |
| 579 |   74.03 | 8.47 |
| 580 |   74.37 | 8.47 |
| 581 |   74.37 | 8.47 |
| 582 |  110.89 |  7.8 |
| 583 |   93.72 |  7.8 |
| 584 |   82.63 |  7.8 |
| 585 |   79.28 |  7.8 |
| 586 |   78.71 | 7.73 |
| 587 |   76.15 | 7.73 |
| 588 |    76.5 | 7.73 |
| 589 |   77.01 | 7.73 |
| 590 |   76.98 |  8.7 |
| 591 |   76.25 |  8.7 |
| 592 |    76.7 |  8.7 |
| 593 |   103.4 | 8.37 |
| 594 |   90.42 |  8.1 |
| 595 |    82.3 |  8.1 |
| 596 |   75.12 |  8.1 |
| 597 |   84.76 |  8.2 |
| 598 |   71.29 |  8.2 |
| 599 |   76.03 |  8.2 |
| 600 |   80.81 |  8.2 |
| 601 |   69.31 | 7.69 |
| 602 |   65.77 | 7.69 |
| 603 |   63.19 | 7.69 |
| 604 |   72.32 | 7.69 |
| 605 |   66.17 | 7.56 |
| 606 |   64.61 | 7.56 |
| 607 |   62.25 | 7.56 |
| 608 |   65.61 | 7.89 |
| 609 |   70.62 | 7.89 |
| 610 |   62.77 | 7.89 |
| 611 |   61.46 | 7.89 |
| 612 |   67.24 |  8.1 |
| 613 |   68.24 |  8.1 |
| 614 |   65.83 |  8.1 |
| 615 |   66.25 |  8.1 |
| 616 |   65.38 | 8.89 |
| 617 |   65.49 | 8.89 |
| 618 |   65.62 | 8.89 |
| 619 |   65.54 | 8.89 |
| 620 |   69.29 | 8.55 |
| 621 |   63.66 | 8.55 |
| 622 |   71.94 | 8.55 |
| 623 |   62.08 | 8.12 |
| 624 |   56.41 | 8.12 |
| 625 |   58.66 | 8.12 |
| 626 |   56.28 | 8.12 |
| 627 |   65.12 | 7.92 |
| 628 |   65.16 | 7.92 |
| 629 |    63.9 | 7.92 |
| 630 |    64.1 | 7.92 |
| 631 |   89.18 |  6.8 |
| 632 |   85.11 |  6.8 |
| 633 |   79.01 |  6.8 |
| 634 |   80.73 |  6.8 |
| 635 |   83.22 |  8.1 |
| 636 |   77.21 |  8.1 |
| 637 |    81.3 |  8.1 |
| 638 |  200.59 | 7.94 |
| 639 |   106.1 | 7.94 |
| 640 |  118.52 | 7.94 |
| 641 |   81.74 | 7.94 |
| 642 |   78.12 | 9.32 |
| 643 |    78.6 | 9.32 |
| 644 |   78.14 | 9.32 |
| 645 |   76.65 | 9.32 |
| 646 |   85.32 | 9.75 |
| 647 |   85.12 | 9.75 |
| 648 |   82.72 | 9.75 |
| 649 |    90.7 | 9.75 |
| 650 |   87.59 | 10.0 |
| 651 |   79.58 | 10.0 |
| 652 |   79.79 | 10.0 |
| 653 |   83.68 | 10.0 |
| 654 |   83.73 | 10.0 |
| 655 |   82.05 | 10.0 |
| 656 |   83.31 | 10.0 |
| 657 |   83.58 | 10.0 |
| 658 |    83.0 | 10.0 |
| 659 |   83.68 | 10.0 |
| 660 |   83.51 | 10.0 |
| 661 |  106.63 | 9.87 |
| 662 |   83.82 | 9.87 |
| 663 |   79.07 | 9.87 |
| 664 |   76.39 | 10.0 |
| 665 |    75.1 | 10.0 |
| 666 |   88.56 | 10.0 |
| 667 |   80.25 | 10.0 |
| 668 |   84.13 | 10.0 |
| 669 |    84.3 | 10.0 |
| 670 |   90.09 | 10.0 |
| 671 |   83.91 | 10.0 |
| 672 |   83.58 | 10.0 |
| 673 |   83.58 | 10.0 |
| 674 |   88.78 | 10.0 |
| 675 |   85.43 | 10.0 |
| 676 |   83.36 | 10.0 |
| 677 |   83.51 | 10.0 |
| 678 |  195.54 | 10.0 |
| 679 |   82.96 | 10.0 |
| 680 |   83.72 | 10.0 |
| 681 |   82.05 | 10.0 |
| 682 |   84.29 | 10.0 |
| 683 |   83.94 | 10.0 |
| 684 |   83.61 | 10.0 |
| 685 |   82.05 | 10.0 |
| 686 |   82.05 | 10.0 |
| 687 |   83.65 | 10.0 |
| 688 |   82.05 | 10.0 |
| 689 |   82.05 | 10.0 |
| 690 |   82.05 | 10.0 |
| 691 |    86.8 | 10.0 |
| 692 |   83.52 | 10.0 |
| 693 |   83.57 | 10.0 |
| 694 |   82.05 | 10.0 |
| 695 |   84.02 | 10.0 |
| 696 |   84.18 | 10.0 |
| 697 |   84.36 | 10.0 |
| 698 |   82.58 | 9.85 |
| 699 |   81.61 | 9.85 |
| 700 |   80.56 | 9.85 |
| 701 |   84.89 | 9.85 |
| 702 |   78.38 | 9.75 |
| 703 |   69.92 | 9.75 |
| 704 |   70.21 | 9.75 |
| 705 |   80.63 | 9.75 |
| 706 |   73.78 | 10.0 |
| 707 |   67.42 | 10.0 |
| 708 |    67.3 | 10.0 |
| 709 |   95.42 | 10.0 |
| 710 |  112.31 | 10.0 |
| 711 |   90.46 | 10.0 |
| 712 |   88.78 | 10.0 |
| 713 |   90.07 | 9.89 |
| 714 |   81.47 | 9.89 |
| 715 |   76.46 | 9.89 |
| 716 |   77.17 | 9.89 |
| 717 |   72.02 | 10.0 |
| 718 |   74.01 | 10.0 |
| 719 |   73.54 | 10.0 |
| 720 |    85.9 | 10.0 |
| 721 |   84.62 | 10.0 |
| 722 |   83.08 | 10.0 |
| 723 |   90.88 | 10.0 |
| 724 |   85.52 | 9.99 |
| 725 |   82.56 | 9.99 |
| 726 |    86.1 | 9.99 |
| 727 |   95.17 | 9.99 |
| 728 |   83.49 | 10.0 |
| 729 |    95.3 | 10.0 |
| 730 |   83.13 | 10.0 |
| 731 |   86.85 | 10.0 |
| 732 |   80.22 | 9.87 |
| 733 |   75.55 | 9.87 |
| 734 |   72.26 | 9.87 |
| 735 |    72.8 | 10.0 |
| 736 |   72.17 | 10.0 |
| 737 |   72.54 | 10.0 |
| 738 |   71.51 | 10.0 |
| 739 |   86.11 | 9.76 |
| 740 |  159.73 | 9.76 |
| 741 |  109.28 | 9.76 |
| 742 |   85.35 | 9.76 |
| 743 |   69.05 | 9.98 |
| 744 |   75.66 | 9.98 |
| 745 |  160.56 | 9.98 |
| 746 |   71.03 | 9.98 |
| 747 |   79.06 | 9.72 |
| 748 |    75.6 | 9.72 |
| 749 |  222.91 | 9.72 |
| 750 |   72.33 | 10.0 |
| 751 |   72.07 | 10.0 |
| 752 |   72.84 | 10.0 |
| 753 |   72.02 | 10.0 |
| 754 |   83.61 | 10.0 |
| 755 |   84.64 | 10.0 |
| 756 |   83.08 | 10.0 |
| 757 |   85.06 | 10.0 |
| 758 |   84.18 | 10.0 |
| 759 |   85.67 | 10.0 |
| 760 |   84.71 | 10.0 |
| 761 |  568.85 | 10.0 |
| 762 |   79.96 | 9.85 |
| 763 |   74.15 | 9.85 |
| 764 |   70.56 | 9.85 |
| 765 |   71.17 | 10.0 |
| 766 |   69.63 | 10.0 |
| 767 |   71.83 | 10.0 |
| 768 |   71.12 | 10.0 |
| 769 |   82.24 | 9.84 |
| 770 |   77.36 | 9.84 |
| 771 |   71.93 | 9.84 |
| 772 |   69.34 | 9.84 |
| 773 |   73.19 | 10.0 |
| 774 |   71.86 | 10.0 |
| 775 |   80.88 | 10.0 |
| 776 |   86.79 | 10.0 |
| 777 |    81.2 | 9.67 |
| 778 |   76.63 | 9.67 |
| 779 |   71.17 | 9.67 |
| 780 |   70.59 | 9.71 |
| 781 |   81.39 | 9.71 |
| 782 |   81.99 | 9.71 |
| 783 |   78.69 | 9.71 |
| 784 |   78.33 | 9.88 |
| 785 |   68.27 | 9.88 |
| 786 |   66.52 | 9.88 |
| 787 |   66.52 | 9.88 |
| 788 |    78.0 | 9.27 |
| 789 |   75.31 | 9.27 |
| 790 |   67.78 | 9.27 |
| 791 |   84.79 | 9.27 |
| 792 |   59.97 | 9.45 |
| 793 |   59.39 | 9.45 |
| 794 |   58.48 | 9.45 |
| 795 |   52.23 | 10.0 |
| 796 |   53.38 | 10.0 |
| 797 |   57.27 | 10.0 |
| 798 |   54.74 | 10.0 |
| 799 |  148.79 | 10.0 |
| 800 |  115.87 | 10.0 |
| 801 |  107.64 | 10.0 |
| 802 |  100.44 | 10.0 |
| 803 |   91.95 | 10.0 |
| 804 |   86.64 | 10.0 |
| 805 |    84.7 | 10.0 |
| 806 |   83.08 | 10.0 |
| 807 |  231.73 | 10.0 |
| 808 |   83.08 | 10.0 |
| 809 |   86.24 | 10.0 |
| 810 |   84.75 | 10.0 |
| 811 |   84.69 | 10.0 |
| 812 |   96.74 | 10.0 |
| 813 |   83.08 | 10.0 |
| 814 |   81.59 | 9.88 |
| 815 |   75.41 | 9.88 |
| 816 |   81.43 | 9.88 |
| 817 |   71.05 | 9.88 |
| 818 |    71.5 | 10.0 |
| 819 |   76.72 | 10.0 |
| 820 |   72.97 | 10.0 |
| 821 |   85.13 | 9.82 |
| 822 |   78.72 | 9.82 |
| 823 |   71.45 | 9.82 |
| 824 |    71.1 | 9.82 |
| 825 |   73.55 | 10.0 |
| 826 |   69.65 | 10.0 |
| 827 |   94.45 | 10.0 |
| 828 |   72.61 | 10.0 |
| 829 |    81.0 | 9.81 |
| 830 |   77.35 | 9.81 |
| 831 |   74.13 | 9.81 |
| 832 |   69.43 | 9.81 |
| 833 |   69.71 | 10.0 |
| 834 |   72.23 | 10.0 |
| 835 |   71.15 | 10.0 |
| 836 |   84.26 | 9.47 |
| 837 |   79.58 | 9.47 |
| 838 |   72.14 | 9.47 |
| 839 |   77.44 | 9.47 |
| 840 |   65.08 | 9.65 |
| 841 |   61.33 | 9.65 |
| 842 |   86.35 | 9.65 |
| 843 |   59.18 | 9.65 |
| 844 |   72.42 | 10.0 |
| 845 |   64.07 | 10.0 |
| 846 |   68.07 | 10.0 |
| 847 |   100.6 | 10.0 |
| 848 |   95.04 | 8.79 |
| 849 |    90.8 | 8.79 |
| 850 |   77.38 | 8.79 |
| 851 |   71.98 | 8.89 |
| 852 |   61.72 | 8.89 |
| 853 |   56.99 | 8.89 |
| 854 |    56.7 | 8.89 |
| 855 |   56.85 | 9.26 |
| 856 |   56.63 | 9.26 |
| 857 |   56.85 | 9.26 |
| 858 |    54.8 | 9.26 |
| 859 |   65.82 | 9.55 |
| 860 |  117.32 | 9.55 |
| 861 |   65.96 | 9.55 |
| 862 |   69.07 | 9.59 |
| 863 |   59.64 | 9.59 |
| 864 |   56.03 | 9.59 |
| 865 |   54.84 | 9.59 |
| 866 |   59.47 | 10.0 |
| 867 |   56.82 | 10.0 |
| 868 |   54.28 | 10.0 |
| 869 |    54.2 | 10.0 |
| 870 |  101.76 | 8.59 |
| 871 |   100.7 | 8.59 |
| 872 |  128.54 | 8.59 |
| 873 |   86.15 | 8.59 |
| 874 |   72.82 | 5.93 |
| 875 |   65.29 | 5.93 |
| 876 |   63.39 | 5.93 |
| 877 |    55.8 | 6.21 |
| 878 |   56.41 | 6.75 |
| 879 |   56.88 | 6.75 |
| 880 |   57.77 | 6.75 |
| 881 |   91.05 | 6.66 |
| 882 |   73.68 | 6.66 |
| 883 |   66.24 | 6.66 |
| 884 |   60.38 | 6.66 |
| 885 |   60.77 | 7.33 |
| 886 |   60.77 | 7.33 |
| 887 |   60.75 | 7.33 |
| 888 |   60.64 | 7.33 |
| 889 |  100.72 |  7.2 |
| 890 |   93.75 |  7.2 |
| 891 |  146.01 |  7.2 |
| 892 |    78.8 | 7.55 |
| 893 |   68.43 | 7.55 |
| 894 |   73.54 | 7.55 |
| 895 |   65.25 | 7.55 |
| 896 |    69.2 | 8.81 |
| 897 |    69.2 | 8.81 |
| 898 |   94.65 | 8.81 |
| 899 |   69.13 | 8.81 |
| 900 |   89.21 | 9.14 |
| 901 |   83.58 | 9.14 |
| 902 |   75.86 | 9.14 |
| 903 |   70.01 | 9.14 |
| 904 |   67.77 | 9.44 |
| 905 |   62.37 | 9.44 |
| 906 |   53.33 | 9.44 |
| 907 |   54.72 | 10.0 |
| 908 |   53.15 | 10.0 |
| 909 |   53.17 | 10.0 |
| 910 |   55.67 | 10.0 |
| 911 |  192.74 | 9.36 |
| 912 |   74.34 | 9.36 |
| 913 |   60.46 | 9.36 |
| 914 |   58.04 | 9.36 |
| 915 |   51.71 | 10.0 |
| 916 |    53.6 | 10.0 |
| 917 |   53.84 | 10.0 |
| 918 |  104.38 | 10.0 |
| 919 |   89.51 | 9.23 |
| 920 |  285.73 | 9.23 |
| 921 |  295.77 | 9.23 |
| 922 |   55.38 | 10.0 |
| 923 |   56.38 | 10.0 |
| 924 |   58.22 | 10.0 |
| 925 |   60.08 | 10.0 |
| 926 |  103.93 | 7.27 |
| 927 |  101.32 | 7.27 |
| 928 |   95.52 | 7.27 |
| 929 |   90.81 | 7.27 |
| 930 |   87.39 | 7.12 |
| 931 |   99.42 | 7.12 |
| 932 |   76.44 | 7.12 |
| 933 |  106.28 | 7.12 |
| 934 |    65.7 | 6.72 |
| 935 |   58.54 | 6.72 |
| 936 |   52.38 | 6.72 |
| 937 |   51.12 | 7.41 |
| 938 |   50.59 | 7.41 |
| 939 |   51.31 | 7.41 |
| 940 |   50.59 | 7.41 |
| 941 |   79.13 | 7.17 |
| 942 |    74.5 | 7.17 |
| 943 |    69.1 | 7.17 |
| 944 |    68.3 | 7.17 |
| 945 |   73.63 | 7.85 |
| 946 |   69.35 | 7.85 |
| 947 |   68.86 | 7.85 |
| 948 |   96.04 | 7.48 |
| 949 |  141.05 | 7.48 |
| 950 |   83.92 | 7.48 |
| 951 |  200.91 | 7.48 |
| 952 |   80.84 | 7.83 |
| 953 |   79.52 | 7.83 |
| 954 |   79.92 | 7.83 |
| 955 |   78.26 | 7.83 |
| 956 |   75.84 | 8.25 |
| 957 |   67.86 | 8.25 |
| 958 |   50.66 | 8.25 |
| 959 |    47.2 | 8.25 |
| 960 |   48.92 | 8.85 |
| 961 |   57.71 | 8.85 |
| 962 |   71.82 | 8.85 |
| 963 |   75.58 | 9.55 |
| 964 |   74.77 | 9.55 |
| 965 |   74.79 | 9.55 |
| 966 |   72.74 | 9.55 |
| 967 |         |      |

*** malleable easy task
malleable.easy-task.log

*** overlapping 2D distributed fitness landscape
    :PROPERTIES:
    :CUSTOM_ID: overlapping-2d-distributed-fitness
    :END:

**** y * sin(2*x)
***** with |-| config
with a
: xxx
:  x 
: xxx
configuration

#+results: goal
: 91+06*x3+y3/5598y+x8600yyy3/557/0+x56/x/*+x-**
#+call: rpn-to-alg(alg=goal)

#+results: rpn-to-alg(alg=goal)
: ((y / 3) * (5 * ((((5 / 7) + 0) + (x * ((5 / 6) / x))) - x)))

- detailed log saved in overlapping-sin2x-y.log
- log form the next day in file:data/overlapping-sin2x-y.the-next-day.log

#+results: middle-guy
: /3x0+79-3-y11x-6y*6xxx+x+2+-80-9/-+7/*
#+call: rpn-to-alg(alg=middle-guy)

#+results:
: ((6 * y) * ((6 + ((x - (((x + x) + x) + 2)) - ((8 - 0) / 9))) / 7))

the next day
| position | rpn                                              | alg                                                                                               |
|----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------|
| (0,0)    | "+0+91-/2+4y450++2822x9//x65*x+*/1//-x82x*/+/y*" | (((8 - (2 / (((2 / (x / 9)) / (x * ((6 * 5) + x))) / 1))) / (x + (8 / (2 * x)))) * y)             |
| (1,1)    | "91+06*x3+y3/5598y+x8600yyy3/557/0+x56/x/*+x-**" | ((y / 3) * (5 * ((((5 / 7) + 0) + (x * ((5 / 6) / x))) - x)))                                     |
| (1,0)    | "*9++6*x*+y3/559/0+y8+0*2yy3/557/0+x56/x/*+x-**" | ((y / 3) * (5 * ((((5 / 7) + 0) + (x * ((5 / 6) / x))) - x)))                                     |
| (1,-1)   | "09x860x*2y31870/077*/103+y//557/0+x56/x/*+x-**" | ((1 / ((0 + 3) / y)) * (5 * ((((5 / 7) + 0) + (x * ((5 / 6) / x))) - x)))                         |
| (-1,1)   | "14/770y028x9/1x65*x-*/1//-x82x*/+//+/2*"        | ((y / (0 + (2 / ((8 - ((x / 9) / ((1 / (x * ((6 * 5) - x))) / 1))) / (x + (8 / (2 * x))))))) * 2) |
| (-1,0)   | "44x7x+y028x9/1x65*x-*/1//-x82x*/+//+/2*"        | ((y / (0 + (2 / ((8 - ((x / 9) / ((1 / (x * ((6 * 5) - x))) / 1))) / (x + (8 / (2 * x))))))) * 2) |
| (-1,-1)  | "4/x74-y028-y028x9/1x65*x-*/1//-x82x*/+//+/2*"   | ((y / (0 + (2 / ((8 - ((x / 9) / ((1 / (x * ((6 * 5) - x))) / 1))) / (x + (8 / (2 * x))))))) * 2) |
#+TBLFM: $3='(if (> (length $2) 1) (sbe "rpn-to-alg" (alg $2)) "")

#+begin_src gnuplot :exports code
    set isosample 40
    set xrange [-2:2]
    set yrange [-2:2]
    set zrange [-2:2]
    f(x,y) =  ((x < -1) ? ((y / (0 + (2 / ((8 - ((x / 9) / ((1 / (x * ((6 * 5) - x))) / 1))) / (x + (8 / (2 * x))))))) * 2) : (x > 1) ? ((y / 3) * (5 * ((((5 / 7) + 0) + (x * ((5 / 6) / x))) - x))) : (((8 - (2 / (((2 / (x / 9)) / (x * ((6 * 5) + x))) / 1))) / (x + (8 / (2 * x)))) * y) )
    splot y*sin(2*x), f(x,y)
#+end_src

***** with line config
#+results: line-three
: 1x*y71x*x60417+x*1y8-yx35/4x-3*2--2*//
#+call: rpn-to-alg(alg=line-three)

#+results: rpn-to-alg(alg=line-three)
: (y / (x / (((3 / 5) - (((4 - x) * 3) - 2)) * 2)))

#+begin_src gnuplot :exports code
  set isosample 40
  set xrange [-3:4.33]
  set yrange [-1:1]
  set zrange [-2:2]
  f(x,y) = (((x > 3) && (x < 4.33)) ? (y / (x / (((3 / 5) - (((6 - x) * 3) - 8)) * 2))) : {0,1})
  g(x,y) = (((x > 2) && (x < 3.33)) ? ((2 - ((9 / 6) / (4 - x))) / (2 / ((((y / ((x - 2) * ((2 / 9) - 1))) - y) / 6) - y))) : {0,1})
  h(x,y) = (((x > 1) && (x < 2.33)) ? ((((8 - (5 * x)) - (2 / 8)) * y) / 3) : {0,1})
  i(x,y) = (((x > 0) && (x < 1.33)) ? ((((x * 4) + 3) / 7) / ((x / y) / x)) : {0,1})
  j(x,y) = (((x > -1) && (x < 0.33)) ? ((((x + 3) - 7) + 4) * y) : {0,1})
  k(x,y) = (((x > -2) && (x < -0.67)) ? ((y / 1) / ((x - 7) / ((((3 + x) + x) / 1) * 7))) : {0,1})
  l(x,y) = (((x > -3) && (x < -1.67)) ? (y * ((4 + x) / 2)) : {0,1})
  splot f(x,y), g(x,y), h(x,y), i(x,y), j(x,y), k(x,y), l(x,y)
#+end_src

some pretty plots
file:data/sine-line.1.png

file:data/sine-line.2.png

then some time after the run had started...
overlapping-sin2x-y-in-line.log

#+begin_src gnuplot :exports code
    set isosample 40
    set xrange [-3:4.33]
    set yrange [-1:1]
    set zrange [-2:2]
    f(x,y) = (((x > 3) && (x < 4.33)) ? (y / (x / (((3 / 5) - (((4 - x) * 3) - 2)) * 2))) : {0,1})
    g(x,y) = (((x > 2) && (x < 3.33)) ? ((2 - ((9 / 6) / (4 - x))) / (2 / ((((y / ((x - 2) / ((2 / 8) - 1))) - y) / 4) - y))) : {0,1})
    h(x,y) = (((x > 1) && (x < 2.33)) ? ((((8 - (5 * x)) - (2 / 8)) * y) / 3) : {0,1})
    i(x,y) = (((x > 0) && (x < 1.33)) ? ((3 + 2) / ((((5 * x) / (5 / ((5 - 1) + (0 + (7 / (x * 5)))))) / y) / x)) : {0,1})
    j(x,y) = (((x > -1) && (x < 0.33)) ? ((((8 + (1 + x)) - 7) * x) * y) : {0,1})
    k(x,y) = (((x > -2) && (x < -0.67)) ? (7 / ((7 - x) / ((y / 1) * ((x - 3) - (((x + x) + x) / 1))))) : {0,1})
    l(x,y) = (((x > -3) && (x < -1.67)) ? (y * ((6 + x) / 5)) : {0,1})
    splot f(x,y), g(x,y), h(x,y), i(x,y), j(x,y), k(x,y), l(x,y)
#+end_src

file:data/sine-line.old.1.png

file:data/sine-line.old.2.png

***** with line config -- no overlap in plots
#+results: line-three
: 1x*y71x*x60417+x*1y8-yx35/4x-3*2--2*//
#+call: rpn-to-alg(alg=line-three)

#+results: rpn-to-alg(alg=line-three)
: (y / (x / (((3 / 5) - (((4 - x) * 3) - 2)) * 2)))

#+begin_src gnuplot :exports code
    set isosample 40
    set xrange [-3:4]
    set yrange [-1:1]
    set zrange [-2:2]
    f(x,y) = ((x > 3) ? (y / (x / (((3 / 5) - (((6 - x) * 3) - 8)) * 2))) : {0,1})
    g(x,y) = (((x > 2) && (x < 3)) ? ((2 - ((9 / 6) / (4 - x))) / (2 / ((((y / ((x - 2) * ((2 / 9) - 1))) - y) / 6) - y))) : {0,1})
    h(x,y) = (((x > 1) && (x < 2)) ? ((((8 - (5 * x)) - (2 / 8)) * y) / 3) : {0,1})
    i(x,y) = (((x > 0) && (x < 1)) ? ((((x * 4) + 3) / 7) / ((x / y) / x)) : {0,1})
    j(x,y) = (((x > -1) && (x < 0)) ? ((((x + 3) - 7) + 4) * y) : {0,1})
    k(x,y) = (((x > -2) && (x < -1)) ? ((y / 1) / ((x - 7) / ((((3 + x) + x) / 1) * 7))) : {0,1})
    l(x,y) = (((x > -3) && (x < -2)) ? (y * ((4 + x) / 2)) : {0,1})
    splot f(x,y), g(x,y), h(x,y), i(x,y), j(x,y), k(x,y), l(x,y)
#+end_src

some pretty plots
file:data/sine-line.png

file:data/sine-line.2.png

file:data/sine-line.3.png

then some time after the run had started...
overlapping-sin2x-y-in-line.log

#+begin_src gnuplot :exports code
    set isosample 40
    set xrange [-3:4]
    set yrange [-1:1]
    set zrange [-2:2]
    f(x,y) = (((x > 3) && (x < 4)) ? (y / (x / (((3 / 5) - (((4 - x) * 3) - 2)) * 2))) : {0,1})
    g(x,y) = (((x > 2) && (x < 3)) ? ((2 - ((9 / 6) / (4 - x))) / (2 / ((((y / ((x - 2) / ((2 / 8) - 1))) - y) / 4) - y))) : {0,1})
    h(x,y) = (((x > 1) && (x < 2)) ? ((((8 - (5 * x)) - (2 / 8)) * y) / 3) : {0,1})
    i(x,y) = (((x > 0) && (x < 1)) ? ((3 + 2) / ((((5 * x) / (5 / ((5 - 1) + (0 + (7 / (x * 5)))))) / y) / x)) : {0,1})
    j(x,y) = (((x > -1) && (x < 0)) ? ((((8 + (1 + x)) - 7) * x) * y) : {0,1})
    k(x,y) = (((x > -2) && (x < -1)) ? (7 / ((7 - x) / ((y / 1) * ((x - 3) - (((x + x) + x) / 1))))) : {0,1})
    l(x,y) = (((x > -3) && (x < -2)) ? (y * ((6 + x) / 5)) : {0,1})
    splot f(x,y), g(x,y), h(x,y), i(x,y), j(x,y), k(x,y), l(x,y)
#+end_src

file:data/sine-line.old.1.png

file:data/sine-line.old.2.png
*** 2d distributed fitness landscape
**** with |-| config
with a
: xxx
:  x 
: xxx
configuration

***** x+y
pretty quickly got
#+results: center
: *22+725/2615517yy67/x*+5+9/**/xy-7138*/*y1yx+*
#+call: rpn-to-alg(alg=center)
#+results: rpn-to-alg(alg=center)
: ( ( x + y ) * 1 )

which is a perfect match

***** x^2 + y^2
getting the following individual as the best against the goal of x^2 *
| position | rpn                                        | alg                             |
|----------+--------------------------------------------+---------------------------------|
| (0,0)    | "903+*4/22xx*923y8*9249yy*2xx2/**+"        | ((y * y) + (2 * (x * (x / 2)))) |
| (1,1)    | "99/y4060x048*94y2yy*2xx2/**+"             | ((y * y) + (2 * (x * (x / 2)))) |
| (1,0)    | "99653x09484*094y24*0x048*94y2yy*2xx2/**+" | ((y * y) + (2 * (x * (x / 2)))) |
| (1,-1)   | "9//y2+x0+1-8**9y0yy*2xx2/**+"             | ((y * y) + (2 * (x * (x / 2)))) |
| (-1,1)   | "4/++*x432+7*9+348*91y2yy*2xx2/**+"        | ((y * y) + (2 * (x * (x / 2)))) |
| (-1,0)   | "9/++*4-325x*0x348*94y2yy*2xx2/**+"        | ((y * y) + (2 * (x * (x / 2)))) |
| (-1,-1)  | "91++*46325x*0x348*94y2yy*2xx2/**+"        | ((y * y) + (2 * (x * (x / 2)))) |
#+TBLFM: $3='(sbe "rpn-to-alg" (alg $2))

#+begin_src gnuplot :exports code
  set isosample 40
  set xrange [-2:2]
  set yrange [-2:2]
  set zrange [-8:8]
  splot (x**2)+(y**2), ((y * y) + (2 * (x * (x / 2))))
#+end_src

***** y * sin(2*x)
detailed log saved in 2d-y-sin-2x.log

getting the following individual after ~20 minutes
| position | rpn                                           | alg                                                                                |
|----------+-----------------------------------------------+------------------------------------------------------------------------------------|
| (0,0)    | "9920826+2379+2+5*8y5x+x+x+x+/83+*x*"         | (((y / ((((5 + x) + x) + x) + x)) * (8 + 3)) * x)...                               |
| (1,1)    | "yy4x-806357180y653-523x-/++x45+/x*6*5*-5y//" | ((((5 - 3) + (5 + (2 / (3 - x)))) - ((((x / (4 + 5)) * x) * 6) * 5)) / (5 / y))... |
| (1,0)    | "x350x*532523x+/++x55+/x*6*5*-5y//"           | (((2 + (5 + (2 / (3 + x)))) - ((((x / (5 + 5)) * x) * 6) * 5)) / (5 / y))...       |
| (1,-1)   | "x68--19+357150x*532523x+/++x55+/x*6*5*-5y//" | (((2 + (5 + (2 / (3 + x)))) - ((((x / (5 + 5)) * x) * 6) * 5)) / (5 / y))...       |
| (-1,1)   | "yxxy587-2xx3/x58782xx3/6+5///5-/y*"          | ((8 / ((2 / (x / (((x / 3) + 6) / 5))) - 5)) * y)...                               |
| (-1,0)   | "+38*2y5258+7--9-8306-4382x30/6+5///5-/y*"    | ((8 / ((2 / (x / (((3 / 0) + 6) / 5))) - 5)) * y)...                               |
| (-1,-1)  | "-518919427661-3/++x25/282xy3/6+5///5-/y*"    | ((8 / ((2 / (x / (((y / 3) + 6) / 5))) - 5)) * y)...                               |
#+TBLFM: $3='(if (> (length $2) 1) (sbe "rpn-to-alg" (alg $2)) "")

now after ~80 minutes
| position | rpn                                              | alg                                                                                                                       |
|----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------|
| (0,0)    | "588y0+/302y-5*457+117y5x*1+1+3+/48+*x*"         | (((y / ((((5 * x) + 1) + 1) + 3)) * (4 + 8)) * x)                                                                         |
| (1,1)    | "477-*1x/x/665/2/-/7+2+7-3x+/7+657+/x*6*x*-5y//" | ((((((((((1 / x) / x) / (6 - ((6 / 5) / 2))) + 7) + 2) - 7) / (3 + x)) + 7) - ((((6 / (5 + 7)) * x) * 6) * x)) / (5 / y)) |
| (1,0)    | "476-*1x/x/665/2/-/7+2+7-3x+/7+657+/x*6*x*-5y//" | ((((((((((1 / x) / x) / (6 - ((6 / 5) / 2))) + 7) + 2) - 7) / (3 + x)) + 7) - ((((6 / (5 + 7)) * x) * 6) * x)) / (5 / y)) |
| (1,-1)   | "497-*1x/x/665/2/-/7+2+7-3x+/7+657+/x*6*x*-5y//" | ((((((((((1 / x) / x) / (6 - ((6 / 5) / 2))) + 7) + 2) - 7) / (3 + x)) + 7) - ((((6 / (5 + 7)) * x) * 6) * x)) / (5 / y)) |
| (-1,1)   | "18x*/01089/3281-96+x73x*+2x62+0+7///2-/y*"      | (((7 + (3 * x)) / ((2 / (x / (((6 + 2) + 0) / 7))) - 2)) * y)                                                             |
| (-1,0)   | "19x*/21089/3291x+69x73x*+2x62+0+7///2-/y*"      | (((7 + (3 * x)) / ((2 / (x / (((6 + 2) + 0) / 7))) - 2)) * y)                                                             |
| (-1,-1)  | "19x*/21089/32995+69x73x*+2x62+0+7///2-/y*"      | (((7 + (3 * x)) / ((2 / (x / (((6 + 2) + 0) / 7))) - 2)) * y)                                                             |
#+TBLFM: $3='(if (> (length $2) 1) (sbe "rpn-to-alg" (alg $2)) "")

#+begin_src gnuplot :exports code
  set isosample 40
  set xrange [-2:2]
  set yrange [-2:2]
  set zrange [-2:2]
  splot y*sin(2*x), ((((5 - 3) + (5 + (2 / (3 - x)))) - ((((x / (4 + 5)) * x) * 6) * 5)) / (5 / y))
#+end_src

**** with line config
after letting it run in a line for an hour or so
#+results: with-line
: 1-1x98+46y3/307889+//3y87y*0-9+69x2+y+4/xyy*+*
#+call: rpn-to-alg(alg=with-line)

#+results:
: ((((x + 2) + y) / 4) * (x + (y * y)))
** tools
*** rpn-to-alg
mainly for clojure practice, lets re-write the above

#+source: rpn-to-alg(alg)
#+begin_src clojure :results output :var alg="00+"
  (def binary-operators '(\+ \- \* \/))
  (def unary-operators '(\s))
  (defn rpn-to-alg [chars stack]
    (if (> (.size chars) 0)
      (let [el (first chars)]
        (if (some #{el} binary-operators)
          (rpn-to-alg (rest chars)
                      (cons
                       (apply str "(" (or (second stack) 1) " " el " " (or (first stack) 1) ")")
                       (rest (rest stack))))
          (if (some #{el} unary-operators)
            (rpn-to-alg (rest chars)
                        (cons
                         (apply str "(" el " " (or (first stack) 1) ")")
                         (rest (rest stack))))
            (rpn-to-alg (rest chars) (cons el stack)))))
      (first stack)))
  (println (apply str (rpn-to-alg (seq alg) '())))
#+end_src

#+results: rpn-to-alg
: (0 + 0)