Logic Life Search

For scripts to aid with computation or simulation in cellular automata.
Post Reply
User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » February 27th, 2018, 11:13 am

Rhombic wrote:LLS seems to struggle with the following input:

Code: Select all

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 0 0 
0 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 0 
0 x30 x31 x32 x33 x34 x35 x36 x37 x38 x39 x40 x41 x42 x43 x44 x45 0 
0 x46 x47 x48 x49 x50 x51 x52 x53 x54 x55 x56 x57 x58 x59 x60 x61 0 
0 x62 x63 x64 x65 x66 x67 x68 x69 x70 x71 x72 x73 x74 x75 x76 x77 0 
0 x78 x79 x80 x81 x82 x83 x84 x85 x86 x87 x88 x89 x90 x91 x92 x93 0 
0 0 x94 x95 x96 x97 x98 x99 x100 x101 x102 x103 x104 x105 x106 x107 0 0 
0 0 x108 x109 x110 x111 x112 x113 x114 x115 x116 x117 x118 x119 x120 x121 0 0 
0 0 x122 x123 x124 x125 x126 x127 x128 x129 x130 x131 x132 x133 x134 0 0 0 
0 0 0 x135 x136 x137 x138 x139 x140 x141 x142 x143 x144 x145 0 0 0 0 
0 0 0 0 0 x146 x147 x148 x149 x150 x151 x152 x153 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 * * * * * * * * * * * * * * * 0 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0 
0 * * * * * * * * * * * * * * * * 0  
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 0 0 
0 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 0 
0 x30 x31 x32 x33 x34 x35 x36 x37 x38 x39 x40 x41 x42 x43 x44 x45 0 
0 x46 x47 x48 x49 x50 x51 x52 x53 x54 x55 x56 x57 x58 x59 x60 x61 0 
0 x62 x63 x64 x65 x66 x67 x68 x69 x70 x71 x72 x73 x74 x75 x76 x77 0 
0 x78 x79 x80 x81 x82 x83 x84 x85 x86 x87 x88 x89 x90 x91 x92 x93 0 
0 0 x94 x95 x96 x97 x98 x99 x100 x101 x102 x103 x104 x105 x106 x107 0 0 
0 0 x108 x109 x110 x111 x112 x113 x114 x115 x116 x117 x118 x119 x120 x121 0 0 
0 0 x122 x123 x124 x125 x126 x127 x128 x129 x130 x131 x132 x133 x134 0 0 0 
0 0 0 x135 x136 x137 x138 x139 x140 x141 x142 x143 x144 x145 0 0 0 0 
0 0 0 0 0 x146 x147 x148 x149 x150 x151 x152 x153 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
as ./lls -S lingeling input -r B.../S...(Snowflakes)

I think it has something to do with the number of columns or something? For some reason it "proves" in the pre-processing that it is unsatisfiable - this would mean that the 1s and 0s I had written cannot evolve like that but they totally do in that rule.
I think your generation 2 looks like this

Code: Select all

x = 8, y = 11, rule = B2ci3ai4c8/S02ae3eijkq4iz5ar6i7e
4bo$2b5o$2bo3bo$b2obob2o$2bo3bo$2b5o$bo$5bo$5o$o3bo$2bo!
when it should look like

Code: Select all

x = 8, y = 11, rule = B2ci3ai4c8/S02ae3eijkq4iz5ar6i7e
4bo$2b5o$2bo3bo$b2obob2o$2bo3bo$2b5o3$5o$o3bo$2bo!

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Logic Life Search

Post by Rhombic » March 9th, 2018, 7:09 am

An input-sanitising script would be tremendously useful. With big patterns one loses the reference of what is not cuboidal or what transition made it unsatisfiable just because of an acidental shift.
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
cordership3
Posts: 129
Joined: August 23rd, 2016, 8:53 am
Location: Smome tomato
Contact:

Re: Logic Life Search

Post by cordership3 » March 27th, 2018, 8:36 pm

Could someone explain what happened here? (specifically the "IndexError: list index out of range" line)

Code: Select all

$ ./lls -S lingeling -m -b 20 20 -p 8 -x 0 -y 1 -o/nope

Getting search pattern...
Done

Preprocessing...
Done

Number of undetermined cells: 3180
Number of variables: 3664
Number of clauses: 526703

Active width: 20
Active height: 20
Active duration: 9

Solving...
Traceback (most recent call last):
  File "./lls", line 425, in <module>
    indent = indent, verbosity = verbosity
  File "/home/LOL/lls/src/LLS_main.py", line 68, in LLS
    indent = indent, verbosity = verbosity
  File "/home/LOL/lls/src/LLS_main.py", line 272, in preprocess_and_solve
    indent = indent, verbosity = verbosity
  File "/home/LOL/lls/src/LLS_main.py", line 410, in solve
    indent = indent + 1, verbosity = verbosity
  File "/home/LOL/lls/src/LLS_SAT_solvers.py", line 50, in SAT_solve
    solution, time_taken = use_solver(solver, dimacs_file, parameters = parameters, timeout = timeout, indent = indent, verbosity = verbosity)
  File "/home/LOL/lls/src/LLS_SAT_solvers.py", line 122, in use_solver
    solution = out.split("\ns ")[1].split("\nc")[0].split("\nv ")
IndexError: list index out of range
evil twin of cordership2

wildmyron
Posts: 1542
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: Logic Life Search

Post by wildmyron » March 27th, 2018, 10:52 pm

cordership3 wrote:Could someone explain what happened here? (specifically the "IndexError: list index out of range" line)

Code: Select all

$ ./lls -S lingeling -m -b 20 20 -p 8 -x 0 -y 1 -o/nope
<snip output>
lls was unable to correctly parse the output of the solver. I don't know why that would be - try with the -v3 option to see what the output of lingeling is. On second thought, there is no way that search had run to completion. Does lingeling timeout by default if it is unable to determine satisfiability after a set time? Perhaps lls didn't interpret this timeout message correctly

There are a few other issues with your command line:
* -m is unnecessary for spaceship searches if you use -i to force an On cell in gen0. I'm not certain, but I suspect using -i is more efficient because it only requires one clause.
* Did you mean to save the output to a file named "nope" in the root directory?
* Most importantly, I'll eat my hat if you get an answer from this search before your computer is dead. Try with a smaller bounding box first.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Logic Life Search

Post by Rhombic » March 29th, 2018, 4:00 am

cordership3 wrote:Could someone explain what happened here? (specifically the "IndexError: list index out of range" line)

Code: Select all

$ ./lls -S lingeling -m -b 20 20 -p 8 -x 0 -y 1 -o/nope

Getting search pattern...
Done

Preprocessing...
Done

Number of undetermined cells: 3180
Number of variables: 3664
Number of clauses: 526703

Active width: 20
Active height: 20
Active duration: 9

Solving...
Traceback (most recent call last):
  File "./lls", line 425, in <module>
    indent = indent, verbosity = verbosity
  File "/home/LOL/lls/src/LLS_main.py", line 68, in LLS
    indent = indent, verbosity = verbosity
  File "/home/LOL/lls/src/LLS_main.py", line 272, in preprocess_and_solve
    indent = indent, verbosity = verbosity
  File "/home/LOL/lls/src/LLS_main.py", line 410, in solve
    indent = indent + 1, verbosity = verbosity
  File "/home/LOL/lls/src/LLS_SAT_solvers.py", line 50, in SAT_solve
    solution, time_taken = use_solver(solver, dimacs_file, parameters = parameters, timeout = timeout, indent = indent, verbosity = verbosity)
  File "/home/LOL/lls/src/LLS_SAT_solvers.py", line 122, in use_solver
    solution = out.split("\ns ")[1].split("\nc")[0].split("\nv ")
IndexError: list index out of range
Pad your pattern with two rows and columns in each direction of dead cells.
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
cordership3
Posts: 129
Joined: August 23rd, 2016, 8:53 am
Location: Smome tomato
Contact:

Re: Logic Life Search

Post by cordership3 » March 29th, 2018, 3:15 pm

wildmyron wrote:
cordership3 wrote:Could someone explain what happened here? (specifically the "IndexError: list index out of range" line)

Code: Select all

$ ./lls -S lingeling -m -b 20 20 -p 8 -x 0 -y 1 -o/nope
<snip output>
lls was unable to correctly parse the output of the solver. I don't know why that would be - try with the -v3 option to see what the output of lingeling is. On second thought, there is no way that search had run to completion. Does lingeling timeout by default if it is unable to determine satisfiability after a set time? Perhaps lls didn't interpret this timeout message correctly

There are a few other issues with your command line:
* -m is unnecessary for spaceship searches if you use -i to force an On cell in gen0. I'm not certain, but I suspect using -i is more efficient because it only requires one clause.
* Did you mean to save the output to a file named "nope" in the root directory?
* Most importantly, I'll eat my hat if you get an answer from this search before your computer is dead. Try with a smaller bounding box first.
Unfortunately, I did not see your post, and I started the exact same search again. Oops.
The search stopped after -12-18 hours, so either something bad happened (likely), or LLS has found the c/8 equivalent of the copperhead. Also, the -o/nope is for the situation where Cygwin mysteriously closes (it happens more than you would think).
Rhombic wrote:
cordership3 wrote:Could someone explain what happened here? (specifically the "IndexError: list index out of range" line)

Code: Select all

$ ./lls -S lingeling -m -b 20 20 -p 8 -x 0 -y 1 -o/nope
<output>
Pad your pattern with two rows and columns in each direction of dead cells.
Do you mean increase the bounding box size?
evil twin of cordership2

User avatar
cordership3
Posts: 129
Joined: August 23rd, 2016, 8:53 am
Location: Smome tomato
Contact:

Re: Logic Life Search

Post by cordership3 » April 29th, 2018, 11:23 am

Well, the exact same error happened again, this time with much more sane parameters:

Code: Select all

$ ./lls -S lingeling -m -b 10 10 -p 4 -x 0 -y 1 -o/yoot

Getting search pattern...
Done

Preprocessing...
Done

Number of undetermined cells: 388
Number of variables: 486
Number of clauses: 53191

Active width: 10
Active height: 10
Active duration: 5

Solving...
Traceback (most recent call last):
  File "./lls", line 195, in <module>
    indent = indent, verbosity = verbosity
  File "/home/L/lls/src/LLS.py", line 61, in preprocess_solve_and_postprocess
    indent = indent, verbosity = verbosity
  File "/home/L/lls/src/LLS.py", line 175, in preprocess_and_solve
    indent = indent, verbosity = verbosity)
  File "/home/L/lls/src/LLS.py", line 246, in solve
    DIMACS_string, solver=solver, parameters=parameters, timeout=timeout, save_dimacs = save_dimacs, dry_run = dry_run, indent = indent + 1, verbosity = verbosity)
  File "/home/L/lls/src/LLS_SAT_solvers.py", line 48, in SAT_solve
    solution, time_taken = use_solver(solver, dimacs_file, parameters = parameters, timeout = timeout, indent = indent, verbosity = verbosity)
  File "/home/L/lls/src/LLS_SAT_solvers.py", line 120, in use_solver
    solution = out.split("\ns ")[1].split("\nc")[0].split("\nv ")
IndexError: list index out of range
The funny thing is, if you use ctrl+c to stop the program, it outputs a "Timed Out" message without any error.
evil twin of cordership2

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » April 29th, 2018, 4:16 pm

cordership3 wrote:Well, the exact same error happened again, this time with much more sane parameters:

Code: Select all

$ ./lls -S lingeling -m -b 10 10 -p 4 -x 0 -y 1 -o/yoot

Getting search pattern...
Done

Preprocessing...
Done

Number of undetermined cells: 388
Number of variables: 486
Number of clauses: 53191

Active width: 10
Active height: 10
Active duration: 5

Solving...
Traceback (most recent call last):
  File "./lls", line 195, in <module>
    indent = indent, verbosity = verbosity
  File "/home/L/lls/src/LLS.py", line 61, in preprocess_solve_and_postprocess
    indent = indent, verbosity = verbosity
  File "/home/L/lls/src/LLS.py", line 175, in preprocess_and_solve
    indent = indent, verbosity = verbosity)
  File "/home/L/lls/src/LLS.py", line 246, in solve
    DIMACS_string, solver=solver, parameters=parameters, timeout=timeout, save_dimacs = save_dimacs, dry_run = dry_run, indent = indent + 1, verbosity = verbosity)
  File "/home/L/lls/src/LLS_SAT_solvers.py", line 48, in SAT_solve
    solution, time_taken = use_solver(solver, dimacs_file, parameters = parameters, timeout = timeout, indent = indent, verbosity = verbosity)
  File "/home/L/lls/src/LLS_SAT_solvers.py", line 120, in use_solver
    solution = out.split("\ns ")[1].split("\nc")[0].split("\nv ")
IndexError: list index out of range
Sorry, I don't have time to look into this at the moment. I can tell you the source of the problem though. The SAT solver completes its search and reports back to LLS, but LLS is failing to parse its output for some reason.
The funny thing is, if you use ctrl+c to stop the program, it outputs a "Timed Out" message without any error.
Yeah, LLS catches the Ctrl+C and interprets it as a timeout.

User avatar
cordership3
Posts: 129
Joined: August 23rd, 2016, 8:53 am
Location: Smome tomato
Contact:

Re: Logic Life Search

Post by cordership3 » April 29th, 2018, 6:47 pm

I ran the search again and it concluded with this output...

Code: Select all

UnsatisfiableUnsatisfiableUnsatisfiableUnsatisfiableUnsatisfiableUnsatisfiableUnsatisfiableUnsatisfiable
Don't know what's going on.
evil twin of cordership2

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Logic Life Search

Post by Saka » May 1st, 2018, 3:25 am

How hard would it be to modify LLS so that it supports LTL rules?

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » May 1st, 2018, 5:44 am

Saka wrote:How hard would it be to modify LLS so that it supports LTL rules?
A little bit hard, but it's the kind of thing I'd like to do when I have some free time. The problem is that SAT solvers work on problems presented in logical terms, ANDs and ORs of Booleans. But LTL rules involve counting a number of cells. You can convert from one format to the other in various ways, but the way that LLS does it at the moment is inefficient (for example try searching for a still life in a 100x100 grid with population 30). There are more efficient methods but they're quite complicated so they take longer to code.

Also, I'm not sure how effective LLS would be for LTL searches. Most LTL ships are quite big.

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Logic Life Search

Post by dvgrn » May 7th, 2018, 7:33 pm

Has anyone tried applying SAT solvers to other open Life problems, especially signal turns?

Looking up some details for the 5c/9 LifeWiki article, I ran into this old "almost-omniperiodic" result again:

Code: Select all

#C 5c/9 signal turns a corner, becoming 2c/3.  But the corner is
#C damaged.
#C Dean Hickerson, 4/11/97
x = 63, y = 40, rule = B3/S23
4bob2o$4b2o2bo$7bo2bo$2b5ob2obo2bo$bo2bo3bo2b4o$bob2obobobo6bo$2obob4o
bo2b5o38b2o$3bo6bobo5b2o35bo2bo2b2o$2obob4obo2bob2obobo34bobobo2bo$o2b
obo2bob2obobobo2bo31b2obobo2b2o$2b2o2bo2bo3bobo4bob2o29bobobo$4b2o4b4o
b2o2b2o2bo29bobo2b4o$4bo3bobo6bo3bo28b2obobo5bo$5b4obob5ob3o3bo24bobob
o2b3o$9bobo4bobo2b4o24bobobo4bo$7bo3bo2bo3bobo6bo18b2obobo2b4o$7b2o2bo
bob4obo2b5o19bobobo$10b2obo6bobo5b2o3b2o12bobo2b4o$13bob4obo2bob2obobo
bobo9b2obobo5bo$13bobo2bob2obobobo2bobo10bobobo2b3o$12b2o2bo2bo3bobo4b
ob2o9bobobo4bo$14b2o4b4ob2o2b2o4bo4b2obobo2b4o$14bo3bobo6bo3b4obo4bobo
bo$15b4obob5ob3o5bo4bobo2b4o$19bobo4bobo2b6ob2obobo5bo$17bo3bo2bo3bobo
6bobobo2b3o$17b2o2bobob4obo2b2o2bobobo4bo$20b2obo6bobo2bobobo2b4o$23bo
b4obo2bobobobo$23bobo2bob2obobobo2b4o$20bob2o2bo2bo3bobobo5bo$20b2o2b
2o4b4obo2b3o$23bo2b4o5bo4bo$24bo5b4ob5o$25b3o2bo2bo$27bo3bo2b6o$28b3o
5bo2bo2$28b2obo$28bob2o!
If it weren't for the damage, either 2c/3 or 5c/9 wires recover plenty fast enough that four of these turns in a loop could be adjusted to support p19+ oscillators.

(Yes, this has been said before elsewhere, but this particular close-call pattern may not have been gotten much attention, though it is actually one of the patterns quoted higher up in that Omniperiodicity Problem thread. In that previous post I wasn't thinking so much about the option of switching from 2c/3 to 5c/9 and back at every corner.)

Is there any way to set up a search space looking for a patched version of this elbow -- or maybe another more recent wire elbow that I vaguely remember someone posting a couple of years ago, but can't find it right now (?) -- that's small enough that a SAT solver can handle it but big enough that there might actually be a solution?

wildmyron
Posts: 1542
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: Logic Life Search

Post by wildmyron » May 7th, 2018, 11:56 pm

dvgrn wrote:Has anyone tried applying SAT solvers to other open Life problems, especially signal turns?
When I've considered setting up searches for problems like this I'm discouraged by the difficulty in setting up the search in a way which doesn't arbitrarily constrain it. I generally viewed this type of problem similar to finding new conduits which the catalyst search tools are very well suited to. For more restricted problems the way I tend to set up the search (mostly in JLS for this type of problem up until now) involves knowing the phase and position of the output signal. The way I do this is pretty tedious in JLS, and even more laborious in LLS, but perhaps that's just pointing to a need to be able to define these problems in a different way which can be programmatically converted to a JLS or LLS search input. The technique works well for finding variants of known conduits which have different periods (such as the p3 bumper) but seems too restrictive for finding new, as yet unknown conduits. I don't know a good way to set up a general search other than setting up multiple searches and conducting a parameter sweep across output lane, timing and phase.

The almost 5c/9 -> 2c/3 turner is probably amenable to this kind of search though. This comparison between JLS and SAT points to SAT solvers scaling much better for a class of problems which I believe are defined by being entirely constrained around the boundaries. Fixing up the almost turner fits this description reasonably well, so a SAT solver might be a useful tool to attack this problem.

If anyone has any ideas about how to define conduit and signal search problems in terms of SAT problems, I'd love to hear them.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

wildmyron
Posts: 1542
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: Logic Life Search

Post by wildmyron » May 9th, 2018, 2:24 am

Here's an interesting test case based on the almost turner. In the attachment are two files: a JLS search file with initial state set up to search for a replacement corner for the turner; and a text file containing the equivalent LLS search input. I wasn't expecting this to find a result, and it doesn't, so don't get your hopes up :)

JLS takes about 2.5 hrs to run the search whereas LLS takes 13.5 minutes.

The LLS input file I created by manual conversion of the JLS search state. Only the area inside the unset region is contained in the LLS search. There's a reasonable correspondence between JLS and LLS - the biggest difference is that there's no concept of unchecked cells in LLS, so I made them unset. In JLS I used frozen cells in gen 2 because this works to define stable regions at the beginning of the search. In the LLS input file this is combined with the wrapping of cells from last gen to first gen.

A JLS -> LLS converter would be very useful to translate this kind of search, not sure if I'm up for writing it myself though.

I'm also very interested to know what other methods there are to run this kind of search. Can Bellman be used in a similar way? And if so, how does the search time compare?
Attachments
B3S23-5c9_2c3_turner.zip
(5.57 KiB) Downloaded 460 times
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » May 9th, 2018, 2:50 am

Can someone explain to me what "unchecked" cells do? And the other cell types in JLS? I might have implemented them, but I couldn't grasp what they all did from the JLS documentation.

wildmyron
Posts: 1542
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: Logic Life Search

Post by wildmyron » May 9th, 2018, 4:59 am

Macbi wrote:Can someone explain to me what "unchecked" cells do? And the other cell types in JLS? I might have implemented them, but I couldn't grasp what they all did from the JLS documentation.
  • Unchecked cells won't be set On or Off, but if a consistency check deems the cell must be a certain state, then it will hold that state and it will be used in later consistency checks.
  • Unset cells correspond very closely to *' cells in LLS and never take on either state.
  • Frozen cells will be unchanged from the previous generation, but this doesn't apply if the cell state was manually set to On or Off.
  • The periodic constraints work independently of cell type and state. Essentially if a cell is set in gen(t) and has period(p) then it will be forced to have the same state in gen(t+p) (and gen(t+2p), etc.). If the whole grid is periodic then this constraint will wrap around.
I think that covers the different cell types. Ask away if there's anything else needing clarification.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » May 9th, 2018, 6:17 am

I think I understand all of them except the unchecked cells. Perhaps I just don't understand how JLS works. What's a consistency check? How is "holding a state" any different than being set On or Off?

Sokwe
Moderator
Posts: 2643
Joined: July 9th, 2009, 2:44 pm

Re: Logic Life Search

Post by Sokwe » May 9th, 2018, 2:33 pm

Macbi wrote:What's a consistency check?
While JLS is running, it continuously looks at all cells that have not yet been set, and tries to determine if they must be set a certain way. For example, try this in JLS:
  1. Set all cells to period-1 (select the entire field and press the '1' key).
  2. Draw a tub using only on cells.
When you draw the tub, the center cell will automatically be given the off state - with color slightly faded to show that it wasn't manually set by the user - because giving it the on state would cause inconsistencies.
Macbi wrote:How is "holding a state" any different than being set On or Off?
"set On or Off" might be ambiguous, as it could refer to cells that have a chosen state at some point in the search, or it could refer only to cells that were manually set by the user at the beginning of the search. I think "holding a state" would refer only to the former situation.
-Matthias Merzenich

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » May 9th, 2018, 4:00 pm

I think I understand. So are unchecked cells just like "*" in LLS?

Then LLS can essentially simulate JLS without too much trouble. Unset cells are like "*'", and frozen and periodic cells can be simulated by giving the cells names.

wildmyron
Posts: 1542
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: Logic Life Search

Post by wildmyron » May 10th, 2018, 12:43 am

Macbi wrote:I think I understand. So are unchecked cells just like "*" in LLS?
No, that's not a good correspondence.
  • * cells in LLS correspond to Empty cells in JLS
  • *' cells in LLS correspond to Unset (#) cells in JLS
  • On and Off cells are obviously the same
  • Frozen cells and periodic cells can be can be simulated, as you say, by naming the cells in corresponding generations
I don't think there's a good correspondence to Unchecked cells other than *'. This is probably OK, because the main usefulness of Unchecked cells is that they reject partials which cannot be extended (mostly, I think there's actually some bugs in JLS in this area) and they reduce the search time by rejecting those partials earlier than they might otherwise be. Further description below.
Sokwe wrote:
Macbi wrote:How is "holding a state" any different than being set On or Off?
"set On or Off" might be ambiguous, as it could refer to cells that have a chosen state at some point in the search, or it could refer only to cells that were manually set by the user at the beginning of the search. I think "holding a state" would refer only to the former situation.
Sorry for the confusion, let me clarify what I meant - though this is my interpretation and I'm not sure of the exact details (been a long time since I looked at the code too).

The starting configuration contains cells which are Empty, Set On, Set Off, Unset (Ignore) and Unchecked. JLS refers to Set cells here as Manually Set. Then there is a preprocessing step which conducts the consistency check I mentioned and Sokwe explained. This is similar to LLS's preprocessing but doesn't try to identify cells which can be ignored in the way that LLS does. After this step there will be some cells that were Manually Set and probably some cells which were Set by the consistency check (this is what I referred to by holding a state). The search proceeds in a depth first manner according to a predetermined and strict search order, unlike WLS where the search order (within layers) is responsive to the current state. This search order is configurable and can be modified during the search.

At each iteration of the search JLS finds the next Empty cell in the current search order and tries to Set it Off. (I'll refer to his as a cell being Trial Set). Then it does a consistency check and Sets any cells accordingly. The consistency check uses the CA rule to determine if a cell must be On or Off, applies the periodic constraints, and Sets Frozen cells if they have been set in the previous generation. If no inconsistency is found the search proceeds to the next Empty cell. If there's an inconsistency, then JLS will backtrack to the last Trial Set cell. Any cells set by the consistency check after this Trial Set cell are cleared. If the last Trial Set cell is Off, then Set it On and continue as before; if it is On then clear the cell (so it's Empty) and backtrack again. There are almost certainly some details about how this process is optimised which I've missed here - particularly around the backtracking and keeping track of cells Set by the consistency check. There is no visual difference in the GUI between cells which were Trial Set and those Set by the consistency check.

So with that in mind, Unchecked cells work by allowing JLS to set them during the consistency checks and this information can be propagated to other Unchecked cells and Empty cells. But they will never be Trial Set during the search process. This significantly reduces the search time compared to them being Empty cells. So using * cells in LLS for Unchecked cells would force LLS to conduct a much larger search and depending on the number of Unchecked cells may make it impractical. As I said above, I don't think it is a big issue to lose this feature by using *' in LLS for Unchecked cells instead. For search problems where SAT performs much better than DFS you can probably get the same effect by replacing a thin layer of Unchecked cells at the boundary with * (or periodic cells, as appropriate) instead of *'.

Apologies for veering off track a bit in this thread for LLS. If I've been unclear or incorrectly described any details please let me know.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » May 10th, 2018, 2:19 am

Wow, thanks! I understand much better now. So they're like Empty cells except that JLS knows that it's okay for them never to be determined, and might return a solution where they're neither alive or dead.

Sokwe
Moderator
Posts: 2643
Joined: July 9th, 2009, 2:44 pm

Re: Logic Life Search

Post by Sokwe » May 11th, 2018, 2:57 pm

I was previously dismissive of the possibility of finding new high-period oscillators with LLS, but I've changed my view somewhat based on these recent posts. I am reminded of my work on phase shift reactions. A while back I built a number of phase shift oscillators by applying JLS to a known shift reaction, culminating in the creation of this table:

Code: Select all

x = 839, y = 497, rule = B3/S23
12bob2o33b2obo69b2obo33b2obo59bob2o31b2o63bob2o31b2o73b2obo31b2o63b2ob
o33b2obo49b2obo31b2o46b2o5b2obo33b2obo42b2o5b2obo31b2o$12b2obo33bob2o
69bob2o33bob2o59b2obo32bo63b2obo32bo73bob2o32bo63bob2o33bob2o49bob2o
32bo47bo5bob2o33bob2o43bo5bob2o32bo$10b2o41b2o65b2o35b2o4b2o61b2o29bo
68b2o29bo72b2o4b2o29bo62b2o4b2o35b2o45b2o4b2o29bo47bo4b2o4b2o35b2o40bo
4b2o4b2o29bo$11bo26bo14bo66bo27bo8bo5bo63bo29b2o68bo20bo8b2o71bo5bo21b
o8b2o61bo5bo21bo14bo46bo5bo21bo8b2o46b2o3bo5bo36bo41b2o3bo5bo21bo8b2o$
10bo10bo2b2o11bobo14bo66bo9bo2b2o11bobo8bo5bo61bo4bo2b2o90bo4bo2b2o11b
obo81bo5bo3bo2b2o11bobo71bo5bo3bo2b2o11bobo14bo46bo5bo3bo2b2o11bobo61b
o5bo3bo2b2o28bo46bo5bo3bo2b2o11bobo$10b2o9b4o2bo9bobo13b2o65b2o9b4o2bo
9bobo7b2o4b2o61b2o3b4o2bo19b2o67b2o3b4o2bo9bobo7b2o71b2o4b2o3b4o2bo9bo
bo7b2o61b2o4b2o3b4o2bo9bobo13b2o45b2o4b2o3b4o2bo9bobo7b2o46b2o3b2o4b2o
3b4o2bo25b2o40b2o3b2o4b2o3b4o2bo9bobo7b2o$12bob2o10b2o7b3ob3o7b2obo69b
2obo10b2o7b3ob3o7b2obo61b2o10b2o7bob2ob2o6bo65b2o10b2o7b3ob3o6bo73b2ob
o10b2o7b3ob3o6bo63b2obo10b2o7b3ob3o7b2obo49b2obo10b2o7b3ob3o6bo47bo3bo
5bo9b2o7bob2ob2o7b2obo43bo3bo5bo9b2o7b3ob3o6bo$12b2obo5b2o5b2o4bo7bo6b
ob2o69bob2o5b2o5b2o4bo7bo6bob2o62bo5b2o5b2o5b2ob2obo5bo67bo5b2o5b2o4bo
7bo4bo74bob2o5b2o5b2o4bo7bo4bo64bob2o5b2o5b2o4bo7bo6bob2o49bob2o5b2o5b
2o4bo7bo4bo47bo5bo5bo3b2o5b2o5b2ob2obo7bob2o42bo5bo5bo3b2o5b2o4bo7bo4b
o$16b2o4bo5bo6b3ob3o5b2o71b2o4b2o4bo5bo6b3ob3o5b2o4b2o59bo7bo5bo18b2o
65bo7bo5bo6b3ob3o5b2o71b2o4b2o4bo5bo6b3ob3o5b2o61b2o4b2o4bo5bo6b3ob3o
5b2o57b2o4bo5bo6b3ob3o5b2o46b2o3b2o4b2o4bo5bo18b2o46b2o3b2o4b2o4bo5bo
6b3ob3o5b2o$17bo3bo7bo7bobo7bo72bo5bo4bo7bo7bobo7bo5bo60b2o5bo7bo84b2o
5bo7bo7bobo80bo5bo4bo7bo7bobo70bo5bo4bo7bo7bobo7bo58bo4bo7bo7bobo60bo
5bo4bo7bo17bo52bo5bo4bo7bo7bobo$16bo4b2o5b2o7bobo8bo72bo5bo3b2o5b2o7bo
bo8bo5bo57b2o7b2o5b2o17b2o63b2o7b2o5b2o7bobo7b2o72bo5bo3b2o5b2o7bobo7b
2o62bo5bo3b2o5b2o7bobo8bo58bo3b2o5b2o7bobo7b2o46b2o4bo5bo3b2o5b2o18bo
46b2o4bo5bo3b2o5b2o7bobo7b2o$16b2o4bo5bo9bo8b2o71b2o4b2o4bo5bo9bo8b2o
4b2o58bo8bo5bo19bo64bo8bo5bo9bo9bo71b2o4b2o4bo5bo9bo9bo61b2o4b2o4bo5bo
9bo8b2o57b2o4bo5bo9bo9bo47bo3b2o4b2o4bo5bo18b2o47bo3b2o4b2o4bo5bo9bo9b
o$12bob2o5bo7bo19b2obo69b2obo5bo7bo19b2obo59bo8bo7bo17bo64bo8bo7bo17bo
74b2obo5bo7bo17bo64b2obo5bo7bo19b2obo49b2obo5bo7bo17bo47bo6b2obo5bo7bo
19b2obo42bo6b2obo5bo7bo17bo$12b2obo5b2o5b2o19bob2o69bob2o5b2o5b2o19bob
2o59b2o7b2o5b2o17b2o63b2o7b2o5b2o17b2o73bob2o5b2o5b2o17b2o63bob2o5b2o
5b2o19bob2o49bob2o5b2o5b2o17b2o46b2o5bob2o5b2o5b2o19bob2o42b2o5bob2o5b
2o5b2o17b2o7$648bo$647bobo$646bobobo$643bo2bo3bo84b2o88b2o$43b2o300bo
296bobob2ob2ob2o81bo89bo$38b2obo2bo300b3o295bo2bo3bob2o82bo89bo$38b2ob
2obob2o200b2o98bo108b2o97b2o88bo3bo82b3obo85b3obo$42bobob2o94b2o104b2o
97b2o108b2o97b2o86bobobob6o76bo4bo84bo4bo$36b6ob2o98bo500b2obobo3bo2bo
74bobobobobo81bob5obo$36bo3bo3bob2o94bo103b6o98b2o103b6o93b6o87bo2bo4b
obo73bobo4bobo80bo6bobo$38b2o5b2o94bob3o99bo4bobo201bo3bo2bo91bo3bo2bo
86b3o3bo2bo71b2obobo2b2o2bo77b2obo2bob2o2bo$37b2obo3bo3bo92bo4bo99b4o
2bo95bobo102bobo4bobo89bobo4bobo88b6o72b2obobo3bobo78b2obo3bobobo$40b
2ob6o89b2ob2o2b2o101bo3bob2o90b3obo103bo3bo2bo91bo3bo2bo88bo82b2obo2bo
83b2obo2bo$37b2obobo95bobo3bobob2o100bobo2bo89bo4bo2bo101b6o93b6o89b2o
2bo80bob2o86bob2o$37b2obob2ob2o94b4obob2o99b2ob2o92b3obob2o298bobo79bo
89bo$40bo2bob2o98bo202bobo106b2o97b2o95bo79b2o88b2o$40b2o101bo205b2o
106b2o97b2o$143b2o6$735b2o$731b2obo2bo$730bobob2obo$39b2o600b2o2b2o82b
o2bo4bob2o2bo$38bob3o508b2o88bo3bobo81bobobobobo2b4o$36b3o4bo507bobo
84b2obobobobo2b2o76b2obobo4bo$35bo3b4o2b2o304b2o200bo84bo2bobo3bobobo
79bobo2b2ob3o$12bob2o6bo12b4obo2b2o2bob2o65b2o3b2o3b2o17bo76b2obo96b2o
bo24bo2bo78b2obo21b2o66b2o5b2obo13b4ob2o59b2o5b2obo13b2o3bo2bobo62b2ob
o15bobo3bo4bo57b2o4b2o4bo12b2o$12b2obo5bobo14bo3bo2bobobobo65bo3b2o3b
2o15b5o6b2o66bob2o96bob2o19bo4bobobo77bob2o21b2o67bo5bob2o13bo4bo61bo
5bob2o15b3ob2obobo61bob2o16b2obob2o2b2o58bo5bo3bobo7b2obo2bo$16b2o4bo
12b3o2bo2bobobobobo64bo25bo5bob2o2bobo63b2o98b2o4b2o17b3o3bo2bo75b2o4b
2o87bo4b2o4b2o13b2obo2bo57bo4b2o4b2o13bo2bobo3bo59b2o4b2o16b2obobo60bo
5bo5bo7bobob2obo$17bo16bo3b5obobob2ob2o63b2o3b2o3b2o13bob3o2bobobobo2b
o2b2o58bo28b2o2bo66bo5bo21bo6bo74bo5bo18b6o4b2o58b2o3bo5bo16bob3o57b2o
3bo5bo17bob2ob2ob2o56bo5bo13b3o3bo3b3o57b2o4b2o11bo2bo4bob2o2bo$16bo
17bob2o4bobobo3bo2bo67bobobobo13bo4bobo4bobobo2bo60bo28b4o67bo5bo19b2o
3bobo76bo5bo16bo3bo2bo2bobo64bo5bo11b3o2bo66bo5bo15b2obo3bob2o57bo5bo
12bo2b2o3b2o3bo75bobob5o2b4o$16b2o17bo2b4ob2ob2ob2ob2o62b2o5bobo12b2ob
2o2b2o2b4o2bob2obo59b2o26bo71b2o4b2o102b2o4b2o15bobo4bo3bo60b2o3b2o4b
2o11bo4b6o55b2o3b2o4b2o16bobo3bo6b2o51b2o4b2o15bob3o3bo2bo55b2o4b2o10b
2obo6bo$14b2o17bobobo2bo3bobo3bobo64bo4b2obo12bobo3bobo2b2ob2obobo2b2o
60b2obo20b6o70b2obo24b2o80b2obo18bo3bo2b3ob4o57bo3bo5bo13b4o3bo2bo3b2o
50bo3bo5bo17bobobob6o2bo53b2obo19bo3b5o57bo5bo13bo2bob2ob3o$15bo16bobo
bob2o5b2obobobo63bo9b2o13b4ob2o2bo2bob2o2bo2bo59bob2o19bo4bobo69bob2o
106bob2o19b6o4bo2bo56bo5bo5bo10bobo3bo4bo3bobo49bo5bo5bo17bobobo3bo2b
2o54bob2o17bo2b2o62bo5bo14bo3bo3bo2bo$14bo17bobo3bobo3bo2bobobo64b2o9b
o17bo2bobo2bobo4b2o58b2o4b2o18b4o2bo67b2o4b2o20bobo85b2o22bo2bo61b2o3b
2o4b2o10b2o3bo3bo2b4o51b2o3b2o4b2o19bo2bo4bo54b2o4b2o14bob2o4b2o58b2o
4b2o14b2obo3bobobo$14b2o15b2ob2ob2ob2ob4o2bo76bo16bobob2obobo2b5o60bo
5bo21bo3bob2o64bo5bo19b3obo85bo20b4o2bo66bo5bo17b6o4bo55bo5bo20b3o3bo
2b4o50bo5bo16bo2b4o2bo81bob4obobo$12b2o17bo2bo3bobobo4b2obo65b2o8b2o
15b2o2bo2bo2b2o4bo61bo5bo22bobo2bo65bo5bo17bo4bo2bo83bo18bo2bo2b2obob
2o56b2o4bo5bo21bo2b3o50b2o4bo5bo22b6o4bo50bo5bo16bobo2b4o57b2o4b2o16bo
6bob2o$13bo18b2ob2obobob5o3bo66bo9bo19bo2bo3bob3o61b2o4b2o21b2ob2o66b
2o4b2o18b3obob2o82b2o19bo5bob2obo57bo3b2o4b2o18b3obo55bo3b2o4b2o21bo5b
o2b3o49b2o4b2o15b2o2b2o62bo5bo15b2ob4obo$12bo20bobobobobo2bo2b3o66bo9b
o21b2o4bobo65b2obo96b2obo22bobo81b2obo22b5o62bo6b2obo20bo2bob2o52bo6b
2obo24b5obo55b2obo19b3obo2b3o55bo5bo19bo2bobo$12b2o19bobobobo2bo3bo69b
2o8b2o27bo66bob2o96bob2o23b2o81bob2o24bo64b2o5bob2o23bo4bo50b2o5bob2o
26bo2bob2o53bob2o16bobo4bobo2bo55b2o4b2o18bo2bob2o$34b2obo2b2o2bob4o
508b2ob4o90bo4bo71b2obo5bobo83b2o$38b2o2b4o3bo510bo93b2ob4o74bob2ob2ob
2o$41bo4b3o511bobo93bo78bo2b2o4bo$42b3obo514b2o93bobo77b2o2b4o$44b2o
611b2o79bo2bo$738b2o6$457bo$40bo415bobo$40b3o414bo2b2o91bo181b2o$43bo
417bo90bobo180bo$38b5o2bo197bob2o3b2o102b2o99b6o90bobobo180bo$6b2o4b2o
bo21bo2bo2b3o66b2obo6b2obo92b2o2b2obo6bo10b2obo4bo63b2o5bob2o28bo72b2o
3bob2o6bo11bo3bo2b3o61b2o5b2obo15bobob3o57b2o5b2obo6bo72b2o5b2obo17b3o
bob2o56b2obo5b2o17b2o$7bo4bob2o20bobo3bo5bo63bob2o6bob2o93bo2bob2o5bob
o7b2o3bob3o65bo5b2obo30bo71bo3b2obo5bobo10b2o4bo3bob2o58bo5bob2o12b2ob
o6bo57bo5bob2o5bobo72bo5bob2o16bo4bobo57bob2o6bo13b2obo2bo$6bo9b2o19bo
2bo2bo3bobo66b2o2b2o4b2o90bo7b2o4bo7bo2b2obobo66bo4b2o30b4obo69bo8b2o
4bo15bo2bo2bobobo56bo4b2o4b2o10bobobobobobo56bo4b2o4b2o4bo72bo4b2o4b2o
13bobobobo3bo59b2o3bo13bobob2obo$6b2o8bo21b5obobobobo65bo3bo5bo91b2o6b
o14bobo2bo68b2o4bo23bo5bo4bo70b2o8bo16b7obobo3bo2bo53b2o3bo5bo13bo2b2o
b2o57b2o3bo5bo78b2o3bo5bo14bobo4b4o59bo4b2o11bo2bo4bob2o2bo$17bo16b2o
6bobobo3bo66bo3bo5bo99bo12b2o2b2o74bo24b3o3bo2b2o80bo16bo6bobobo3bobob
o58bo5bo11bobobo67bo5bo83bo5bo10b2obobo2b2o4b2o58bo16bobob5o2b4o$6b2o
8b2o17bo2b4ob2ob2ob2ob2o62b2o2b2o4b2o90b2o6b2o14bobobo2b2o2bo61b2o3b2o
26bo6bo71b2o7b2o15bo2b4ob2ob2ob2o2bo53b2o3b2o4b2o12bo2b7o55b2o3b2o4b2o
77b2o3b2o4b2o10b2obobo3bob2o3bo56b2o3b2o10b2obo6bo$7bo4b2obo17bobobo2b
o3bobo3bobo59b2obo4bo5bo92bo2b2obo16bo2bo4b4o62bo5bob2o21b2o3bo3b2o70b
o5b2o14b2obobo2bo3bobo3bo57bo5b2obo15b2o4bo2bo55bo5b2obo80bo5b2obo16b
2obob3ob2o2bo51b2obo6bo13bo2bob2ob2ob2o$6bo5bob2o16bobobob2o5b2obobobo
59bob2o5bo5bo90bo3bob2o17b2o3bo66bo6b2obo28b2ob3o67bo7bo14bobobob2o5b
2obobobo54bo6bob2o17b2o4b2o54bo6bob2o79bo6bob2o18b2obo5b2o52bob2o5bo
14bo3bobobob2obo$6b2o2b2o20bobo3bobo3bo2bobobo58b2o8b2o4b2o90b2o6b2o
17b7o63b2o9b2o22b2o3bo4bo66b2o5bo17bo3bobo3bo2bobob2o54b2o3b2o4b2o15bo
3bo3b2o52b2o9b2o77b2o3b2o4b2o12b3o3bo2b4o52b2o9b2o14b2obob2o6bo$10bo
20b2ob2ob2ob2ob4o2bo60bo9bo5bo99bo18bo4bobo74bo27bob3o74b2o13bo2b2ob2o
b2ob4o2bo62bo5bo17b7o2bo62bo83bo5bo13bo2b3o7b2o50bo28bobo2b2ob3o$6b2o
3bo22bo3bobobo6b2o60bo9bo5bo90b2o7bo18b4o2bo62b2o9bo21bobo5b2o69b2o3b
2o14bobobo3bobobo6bo57b2o4bo5bo21bo2bobo50b2o10bo77b2o4bo5bo15bo2b4ob
2o2bo50bo9b2o16bobo3bobo$7bo2b2o22bobobobob5o63b2o8b2o4b2o91bo6b2o20bo
3bob2o60bo9b2o18b3obo77bo4bo15bo2bo3bobob7o59bo3b2o4b2o18b3o4bo52bo9b
2o78bo3b2o4b2o17bo4bobobo50b2o10bo15b2obobo$6bo5b2obo19bobo3bo2bo2bo
64b2obo6b2obo92bo3b2obo24bobo2bo59bo6bob2o19bo4bo2bo73bo4bo19bobobo2bo
2bo62bo6b2obo19bobobobobobo49bo6b2obo79bo6b2obo18b2ob2o3bob2o51b2obo5b
o20bobo$6b2o4bob2o20bo5bo3bobo63bob2o6bob2o92b2o2bob2o23b2ob2o61b2o5b
2obo20b3obob2o73b2o3b2o19b2obo3bo4b2o58b2o5bob2o19bo3b2obob2o49b2o5bob
2o79b2o5bob2o21bo2bobo54bob2o5b2o20b2o2bo$39b3o2bo2bo300bobo106b3o2bo
3bo89b3obobo174bob2obo87b3o$39bo2b5o302b2o109b6o92bobobo175bo2bo86b2o$
41bo417bo99bobo177b2o86bo2bo$42b3o414b2o2bo96bo267b2o$44bo417bobo$463b
o5$644b2o$39bo603bo2bo$38bobo603b2o$39bo2b2o323bo273b3o$43bo201b2o10bo
107bo2bo272bo2b2o$37b6o202bobo5bob3o90b2o7bo6bo5bo273bobo$7b2o3bob2o6b
o13bo3bo2b3o66b2obo6b2obo6bo79b2obo6b2obo21bo2bo2b2o9bo47b2obo6b2obo
23bo6bobo4bo6bo51b2obo6bob2o6bo79b2obo6b2obo76b2obo6b2obo12b2o5bobo54b
2obo6b2obo6bo74b2obo5b2o4bo$8bo3b2obo5bobo12b2o4bo3bob2o62bob2o6bob2o
5bobo78bob2o6bob2o17b4o3b3o3b2o4b3o47bob2o6bob2o23bobo11bo2bo55bob2o6b
2obo5bobo78bob2o6bob2o76bob2o6bob2o12bo2bobo3bo54bob2o6bob2o5bobo73bob
2o6bo3bobo$7bo8b2o4bo17bo2bo2bobobo65b2o2b2o10bo83b2o2b2o4b2o14bo4b3o
3b3obo3bo5bob2o45b2o8b2o22b2o3bo2bo3bobo61b2o2b2o10bo83b2o2b2o84b2o2b
2o4b2o11b3ob2o2bobo56b2o2b2o4b2o4bo78b2o3bo5bo$7b2o8bo18b7obobo3bo2bo
62bo3bo95bo3bo5bo12bo2bobobo4b2o2bo6bo4b2obo45bo9bo28b2o3bobo2b2ob2o
56bo4bo94bo3bo85bo3bo5bo18b2obobo55bo3bo5bo84bo4b2o$16bo18bo6bobobo3bo
bobo62bo3bo95bo3bo5bo11b3o2bobob3o2b3o4bobo2b2o50bo9bo25b2ob2o2bobo3b
2o59bo2bo96bo3bo85bo3bo5bo13b2obobo3bo56bo3bo5bo84bo$7b2o7b2o17bo2b4ob
2ob2ob2o2bo62b2o2b2o94b2o2b2o4b2o14b2o2bobo2bobob2o5bobo3b2o46b2o8b2o
17bo12bobo3bo2bo3b2o53b2o2b2o94b2o2b2o84b2o2b2o4b2o13bob2ob2ob2ob2o52b
2o2b2o4b2o83b2o3b2o$8bo5b2o16b2obobo2bo3bobo3bo61b2obo6b2obo86b2obo4bo
5bo14bo2bobo4bo2b2o2b2obobob3ob3o40b2obo6b2obo19b3o8bo2bo11bobo48b2obo
6bob2o86b2obo6b2obo76b2obo6b2obo20bo3bob2o48b2obo6b2obo81b2obo6bo$7bo
7bo16bobobob2o5b2obobobo59bob2o6bob2o86bob2o5bo5bo14b3obo3b2o2bo4b2o2b
o8bo39bob2o6bob2o22bo3bo6bo4bobo6bo48bob2o6b2obo86bob2o6bob2o76bob2o6b
ob2o20bo3bo51bob2o6bob2o81bob2o5bo$7b2o5bo19bo3bobo3bo2bobob2o57b2o8b
2o4b2o82b2o8b2o4b2o17bo2bo5bo2bob2ob2o2b7o37b2o8b2o25b2o3bo5bo6bo7b2o
45b2o14b2o82b2o8b2o4b2o72b2o8b2o4b2o16bobobob6o44b2o8b2o4b2o83b2o3b2o$
14b2o15bo2b2ob2ob2ob4o2bo60bo9bo5bo83bo9bo5bo15b2o2b6o3b2o3bo2b2ob2o
42bo9bo33bo2bo62bo16bo82bo9bo5bo73bo9bo5bo17b2obobo3bo2bo43bo9bo5bo84b
o$7b2o3b2o16bobobo3bobobo6bo61bo9bo5bo83bo9bo5bo14bo7bobo4bobo2b2o4b3o
40bo9bo28b2o3bo65bo14bo84bo9bo5bo73bo9bo5bo19bo2bo4bo45bo9bo5bo84bo3b
2o$8bo4bo17bo2bo3bobob7o61b2o8b2o4b2o82b2o8b2o4b2o15b7o2bo2b3o3b2o4bob
obo38b2o8b2o98b2o14b2o82b2o8b2o4b2o72b2o8b2o4b2o19b3o3bo2b3o41b2o8b2o
4b2o83b2o4bo$7bo4bo21bobobo2bo2bo67b2obo6b2obo86b2obo6b2obo19bo2bo3bob
o2bobo5b3obo2bo39b2obo6b2obo22bobo71b2obo6bob2o86b2obo6b2obo76b2obo6b
2obo24b6o3bo3bo38b2obo6b2obo81b2obo5bo$7b2o3b2o21b2obo3bo4b2o63bob2o6b
ob2o86bob2o6bob2o24bobob3o2b6o3bob2o40bob2o6bob2o20b3obo71bob2o6b2obo
86bob2o6bob2o76bob2o6bob2o23bo5bo2bobobobo37bob2o6bob2o81bob2o5b2o$39b
3o2bo3bo200b2obo4b2o7b2o2bo74bo4bo2bo295b2o2b2obo2b2obobo$42b6o204bo3b
o2bo2b4o4bobo73b3obob2o299bo2b2o3bobo$41bo210b2o3b2o3bo2bo5b2o75bobo
303bo6bo$41b2o2bo303b2o302b2ob2o2b2o$44bobo609bo$45bo610bobo$657b2o9$
156b2o91bo108bo6bo$2b2obo6b2obo6bo89b2obo6b2obo16b2o11bobo2b2o3b2o47b
2obo4bob2o22bobo105b3o4b3o58b2obo4b2obo87b2obo4b2o3b2o76b2obo4bob2o6bo
69b2obo6b2obo6bo73b2o3b2o3b2o4bo$2bob2o6bob2o5bobo88bob2o6bob2o17bo5b
2o4bobobo2bobo2bo46bob2o4b2obo21bobobo103bo6bo61bob2o4bob2o87bob2o4b2o
3b2o76bob2o4b2obo5bobo68bob2o6bob2o5bobo72b2o3b2o4bo3bobo$6b2o8b2o4bo
93b2o8b2o14bo5bobo3b2obobo2bob2o2bo49b2o6b2o19bo3bo104bo6bo64b2o6b2o
89b2o89b2o6b2o4bo73b2o2b2o4b2o4bo83bo5bo$6bo9bo99bo9bo14bob3o2bo2b2o3b
ob2ob2o3b2o50bo8bo13b2o2b2ob3o101bo3bo2bo3bo64bo7bo90bo3b2o3b2o80bo8bo
78bo3bo5bo79b2o3b2o3b2o$7bo9bo99bo9bo13bo4bob2obob2o2bob2o2b2o54bo6bo
14bo2bobobo180bo7bo90bo2bobobobo81bo6bo80bo3bo5bo78bobobobo$6b2o8b2o
98b2o8b2o10b2ob2o2b2obo2bobob3o3bobob3o50b2o6b2o10b2obob2obo105bobo4bo
bo66b2o6b2o89b2o4bobo82b2o6b2o78b2o2b2o4b2o80bobo5b2o$2b2obo6b2obo96b
2obo6b2obo12bobo3bobo2bobobo2bo3b3o2bo2bo45b2obo6b2o12bo2bo2bobob3o2b
2o98bo6bo63b2obo4b2obo87b2obo5b2obo78b2obo6b2o76b2obo6b2obo81b2obo6bo$
2bob2o6bob2o96bob2o6bob2o15b4ob2o5b2ob3o5bobobo45bob2o7bo14bobo3b2obob
o2bo169bob2o4bob2o87bob2o9b2o76bob2o7bo76bob2o6bob2o85b2o3bo$2o8b2o
104b2o2b2o23bo3bo4bobo2b4o3bob2o42b2o10bo16bo3bo4b4o174b2o6b2o89b2o8bo
80b2o4bo81b2o2b2o4b2o84bo3b2o$o9bo105bo3bo20b3o2b2o4bobob3o3b4obo44bo
11b2o18bo3bo95bo24bo58bo7bo90bo8bo81bo5b2o80bo3bo5bo84bo$bo9bo105bo3bo
17bo2bo4bobo4bobo3bo6bo45bo8b2o20b8o60b2obo6b2obo6bo10bobo3bobo10bobo
3bobo58bo7bo90bo7b2o81bo2b2o83bo3bo5bo83b2o3b2o$2o8b2o104b2o2b2o17b2o
3bo2bob4obo2b4ob2o3b2o43b2o9bo26bobo59bob2o6bob2o5bobo10bo4bo2bo8bo2bo
4bo58b2o6b2o89b2o8bo80b2o3bo82b2o2b2o4b2o84bo4bo$2b2obo6b2obo96b2obo6b
2obo17b2o3bo4bob2o4bobo50b2obo4bo23b4o2bo63b2o2b2o4b2o4bo16bobo10bobo
59b2obo4b2obo87b2obo9bo77b2obo4bo79b2obo6b2obo85bo4bo$2bob2o6bob2o96bo
b2o6bob2o24bo2bo2bo2bo54bob2o4b2o21bo2bo3bob2o60bo3bo5bo97bob2o4bob2o
87bob2o9b2o76bob2o4b2o78bob2o6bob2o85b2o3b2o$149b2o3b2o3b2o84b2o3bobo
2bo61bo3bo5bo$249b2ob2o62b2o2b2o4b2o$312b2obo6b2obo23bobo10bobo$312bob
2o6bob2o18bo4bo2bo8bo2bo4bo$310b2o14b2o15bobo3bobo10bobo3bobo$310bo15b
o17bo24bo$311bo15bo$310b2o14b2o$312b2obo6b2obo19bo7bo6bo$312bob2o6bob
2o19b3o4bobo4bobo$348bo$347b2o3bo3bo2bo3bo$356bo6bo$350b2o3bo6bo$356b
3o4b3o$348bobo7bo6bo$112b2obo6b2obo6bo80b2obo4b2o3b2o118b3obo75b2o3b2o
3b2o4bo78b2o3b2o4b2obo75b2o3b2o4b2obo75b2o3b2o4b2obo$112bob2o6bob2o5bo
bo79bob2o4b2o3b2o117bo4bo2bo72b2o3b2o4bo3bobo77b2o3b2o4bob2o75b2o3b2o
4bob2o75b2o3b2o4bob2o$116b2o2b2o4b2o4bo84b2o127b3obob2o82bo5bo93b2o82b
2o88b2o4b2o$37bo78bo3bo5bo90bo3b2o3b2o120bobo75b2o3b2o3b2o83b2o3b2o8bo
74b2o3b2o2bo80b2o3b2o2bo5bo$35b5obo5b2o4b2o62bo3bo5bo90bo2bobobobo121b
2o75bobobobo88bobobobo9bo73bobobobo3bo79bobobobo3bo5bo$29bob2obo5b2o4b
o2bo3bo62b2o2b2o4b2o89b2o4bobo202bobo5b2o85bobo10b2o75bobo4b2o81bobo4b
2o4b2o$29b2obobo2b2o3b2o2b2obo4bo57b2obo6b2obo87b2obo5b2obo201b2obo6bo
84b2obo6b2obo76b2obo6b2obo76b2obo6b2obo$34bo4b3o2bobo2b2o2b2o57bob2o6b
ob2o87bob2o9b2o203b2o3bo89b2o4bob2o80b2o4bob2o80b2o4bob2o$33b2obo6bo2b
obo2bo64b2o2b2o4b2o89b2o8bo204bo3b2o89bo2b2o85bo2b2o4b2o79bo2b2o4b2o$
32bobo2b6o3b2ob6o61bo3bo5bo90bo8bo204bo94bo3bo85bo3bo5bo79bo3bo5bo$4b
2obo4bob2o14b3ob3o3bo2b3o3bo5bo61bo3bo5bo90bo7b2o203b2o3b2o88b2o3bo84b
2o3bo5bo78b2o3bo5bo$4bob2o4b2obo13bo3bo3bo4bo3b2obobo3bo60b2o2b2o4b2o
89b2o8bo204bo4bo89bo2b2o85bo2b2o4b2o79bo2b2o4b2o$8b2o6b2o11bobo2bobo3b
o2bo2bobobo2bob2o55b2obo6b2obo87b2obo9bo204bo4bo89bo5b2obo80bo5b2obo
80bo5b2obo$8bo8bo12b5ob7obobo3bo2bobo56bob2o6bob2o87bob2o9b2o203b2o3b
2o88b2o4bob2o80b2o4bob2o80b2o4bob2o$9bo6bo18bo6bobobo3bobo2bo$8b2o6b2o
14bo2bo2b4ob2ob2ob2obobo$4b2obo6b2o15bobobobo2bo3bobo3bobob2o$4bob2o7b
o15bo2bobob2o5b2obobo2bo$2b2o10bo14b2obobo3bobo3bo2bobobobo319b2o$2bo
11b2o14bobob2ob2ob2ob4o2bo2bo294b2o23bo2bo$3bo8b2o15bo2bobo3bobobo6bo
262b2obo6b2obo22bo24bobo$2b2o9bo15bobo2bo3bobob7ob5o257bob2o6bob2o22bo
bo18b2o3bo$4b2obo4bo15b2obo2bobobo2bo2bo3bobo2bobo260b2o2b2o27b2o3b2o
5b2o7bob2o$4bob2o4b2o15bo3bobob2o3bo4bo3bo3bo260bo3bo24bo8b2o2bo3b2o8b
o$29bo5bo3b3o2bo3b3ob3o262bo3bo23b3o12b3o9bo$30b6ob2o3b6o2bobo263b2o2b
2o26bo3bo4bo2bo$33bo2bobo2bo6bob2o260b2obo6b2obo21b2o3bo3b3o$30b2o2b2o
2bobo2b3o4bo261bob2o6bob2o48b3o3bo$30bo4bob2o2b2o3b2o2bobob2o260b2o2b
2o4b2o22b2o20bo2bo4bo$31bo3bo2bo4b2o5bob2obo260bo3bo5bo33bo9b3o$30b2o
4b2o5bob5o62b2o3b2o2b2o3b2o88b2o3b2o3b2o4bo84bo3bo5bo20bobo9bo8b2o3bo
2b2o42b2o3b2o4b2obo6bo79bob2o6b2obo$47bo64b2o3b2o2b2o3b2o88b2o3b2o4bo
3bobo82b2o2b2o4b2o18b3obo8b2obo7b2o5b2o3b2o37b2o3b2o4bob2o5bobo78b2obo
6bob2o6bo$226bo5bo79b2obo6b2obo19bo4bo2bo4bo3b2o18bobo45b2o4b2o4bo77b
2o8b2o4b2o3bobo$112b2o3b2o2b2o3b2o88b2o3b2o3b2o84bob2o6bob2o20b3obob2o
3bobo24bo36b2o3b2o2bo5bo84bo8bo5bo5bo$112bobobobo2bobobobo88bobobobo
125bobo6bo2bo23b2o35bobobobo3bo5bo82bo10bo5bo$114bobo6bobo92bobo5b2o
121b2o7b2o63bobo4b2o4b2o82b2o8b2o4b2o$113b2obo5b2obo91b2obo6bo194b2obo
6b2obo86bob2o4bo5bo$117b2o7b2o93b2o3bo199b2o4bob2o86b2obo5bo5bo$118bo
8bo94bo3b2o199bo8b2o88b2o2b2o4b2o$117bo8bo94bo204bo9bo90bo2bo5bo$117b
2o7b2o93b2o3b2o198b2o9bo88bo4bo5bo$118bo8bo94bo4bo199bo8b2o88b2o2b2o4b
2o$117bo8bo94bo4bo199bo5b2obo86bob2o6b2obo$117b2o7b2o93b2o3b2o198b2o4b
ob2o86b2obo6bob2o7$2b2obo6b2obo6bo$2bob2o6bob2o5bobo$6b2o8b2o4bo$6bo9b
o$7bo9bo$6b2o8b2o$2b2obo6b2obo$2bob2o6bob2o$6b2o2b2o$6bo3bo228b2o15b2o
$7bo3bo100bob2o6b2obo6bo78b2o3b2o4b2obo13bobo13bobo55b2o3b2o2b2obo6bo$
6b2o2b2o100b2obo6bob2o5bobo77b2o3b2o4bob2o15bo13bo57b2o3b2o2bob2o5bobo
$2b2obo6b2obo94b2o8b2o4b2o4bo87b2o4b2o13b3o9b3o70b2o4bo$2bob2o6bob2o
95bo8bo5bo84b2o3b2o2bo5bo18bo5bo61b2o3b2o6bo$110bo10bo5bo83bobobobo3bo
5bo13b5o5b5o57bobobobo7bo$110b2o8b2o4b2o85bobo4b2o4b2o13bo4bo3bo4bo59b
obo8b2o$112bob2o4bo5bo85b2obo6b2obo17b4o3b5o59b2obo4b2obo$112b2obo5bo
5bo88b2o4bob2o16b2o4bo5bobo61b2o2bob2o$116b2o2b2o4b2o89bo2b2o4b2o18b6o
3b2o62bo6b2o$117bo2bo5bo89bo3bo5bo18bo4bobo65bo7bo$116bo4bo5bo88b2o3bo
5bo18b4o2bo65b2o7bo$116b2o2b2o4b2o89bo2b2o4b2o20bo3bob2o63bo6b2o$112bo
b2o6b2obo90bo5b2obo24bobo2bo62bo3b2obo$112b2obo6bob2o90b2o4bob2o23b2ob
2o64b2o2bob2o7$4b2obo4bob2o6bo$4bob2o4b2obo5bobo$8b2o6b2o4bo$8bo8bo$9b
o6bo$8b2o6b2o330bo2bo$4b2obo6b2o330b3o2b3o$4bob2o7bo329bo3b2o3bo$8b2o
4bo329bo2bobo2bobo$8bo5b2o328bob2ob5o$9bo2b2o329b2o2bobo$8b2o3bo328bo
2bo2b6o$4b2obo4bo329bobo7bobo$4bob2o4b2o327b2ob2o4bo3bo$341bo3bo2b2ob
3o$342b3o4bobo$344bob2o$345b6o$346b3o2$312bob2o6b2obo27bo$312b2obo6bob
2o25bo3bo$310b2o8b2o4b2o22bo$311bo8bo5bo11b2ob2o6bo5bo$310bo10bo5bo10b
o10bo3b2o$310b2o8b2o4b2o11b2o2bo5bo3bo11b2o$312bob2o4bo5bo13b3o7bo14bo
$312b2obo5bo5bo12b3o8b3o13bo$316b2o2b2o4b2o11b2o2bo7bo4b2o5b4obo$317bo
2bo5bo11bo11b2o4b2o4bo4bo$b2o3b2o4b2obo300bo4bo5bo10b2ob2o7b2o4bo5bo2b
2o$b2o3b2o4bob2o300b2o2b2o4b2o26b3o9bo$16b2o294bob2o6b2obo31bo5bo3b2ob
2o$b2o3b2o8bo295b2obo6bob2o28bo3bo6b2ob2obo$bobobobo9bo327bo7b2o3bo7bo
$3bobo10b2o327b3o4bo5bo7bo$2b2obo6b2obo332bo8bo7b2obo2bo$6b2o4bob2o
331b2o3bo3bo8bo2b4o2bo$7bo2b2o342bo12bo4b3o$6bo3bo339b2o14b2ob2o$6b2o
3bo347b3o7bob2o$7bo2b2o336bobo6b4o5b3o4bo$6bo5b2obo330b3obo6bo4b2ob2ob
ob2o2bo$6b2o4bob2o329bo4bo2bo4bobob2obobobo2bobo$346b3obob2o3b2ob2obob
obo2bobob2o$348bobo6b2o5b2obo4bo$349b2o6bo10b3obo$358bob2o9bo$356bobob
o2bo6bo$356b2o4b2o6b2o11$3b2o3b2o2bob2o6bo$3b2o3b2o2b2obo5bobo$16b2o4b
o$3b2o3b2o7bo$3bobobobo6bo$5bobo8b2o$4b2obo6b2o$8b2o5bo$9bo4bo$8bo5b2o
$8b2o2b2o$9bo3bo$8bo3bo$8b2o2b2o91$287b2o$287bo$289bo$285b5o$284bo$
280b2obob5o$13b2o48b2o49bo36b2o127b2obo6bobo$12bo2bo46bo2bo47bobo35bob
o78b2o49bobob3ob2o$11bo4bo44bo4bo46bobo37bo5b2o70bo2bo48bo3bobo37b2o$
10bo6bo42bo6bo42b2obob2o36b2o2bo73b3obo48b2obobo37bo$10bo6bo42bo6bo42b
ob2o3bo33b2o4b3o2bo66b2o4bo50bobo40bo$11bo4bo44bo4bo47bob2o32bo2b6obob
o62b2obobob3o51bo38b5o$12bo2bo46bo2bo48bo2bo33b2o6b2o65bobobobo52b2o
37bo$13b2o48b2o50b3o35b4o2b3o61b3o2bob2o88b2obob5o$118b4o31bo3bobo62bo
3b2ob2o89b2obobobo2bobo$115b2obobobo31bo2bobo61bo2bo3bo94bobo2b2ob2o$
115b2obo3b3o30bobobobo58bob7o62bo31bobo3bo$119b2o4bo30b2obob3o56bo6bo
62bobo31b2obobo$121b4o33bobo3bo56b3ob2o62bobobo32bobo$121bo36bobo2b2o
58bobo63bo3bo32bo$122bo36bo65bo60b2ob2ob2ob2o28b2o$121b2o102b2o59b2obo
3bob2o$289bo3bo$289bobobo$290bobo$291bo3$59b2o$59b2o4$63b2o$57b2o4bo$
52b2o2b2obo6bo165b2o$52b2obo3bo5b2o47bo6b2o38b2o68bo2bo$56b3o54bobo5bo
33bob2obobo68b3obo$57bo19b2o34bobo3bobo33b2obobo68b2o4bo$70b2o5b2o31b
2obob2o2b2o4bo34b2o63b2obobob3o6b2o$63b2o5b2o38bob2o3bo5b3o33b2o65bobo
bobo8b2o82bo$9bo8bo43bo2bo11bo36bob2o4bo38bo3bo2b2o53b3o2bob2o4b3o86b
3o$9b3o4b3o34b2o6b2ob2o10bobo35bo2bo4b2o39b2obo2bo52bo3b2ob2o54b2o2bo
38bo$12bo2bo37b2o7bobo10b2ob2o35b3o48bobo52bo2bo3bo14bo40bob4o37bo3bo$
11b2o2b2o46bo12bo2bo38b4o38b3o4bo52bob7o2b3o3b3o2bobo39bo7b2o29b2obo3b
obo$5b2o14b2o54b2o5b2o29b2obobobo32b2o4b6o53bo6bo2bo3bobo3bo2bo38b2ob
5o2bo2bo26bobob2o3b2o$6bo6b2o6bo41b2o19b2o29b2obo3b3o30bobo3b3o57b3ob
2o3bo3bobo3bo42bo6bobob2o25bo2bo4bo3b2o$6bobo3bo2bo3bobo27b2o11bo2bo5b
o47b2o4bo31bo7b2o2bo53bobo4bo3bobo3bo42bobob3obobo27bobob8o2bo$7b2o2bo
4bo2b2o29bo4b2o4bo4bo3b3o48b4o32b2o5bob4o55bo5b3o3b3o42b2o3bobo3bo26b
2obobobo6b2o$10bo6bo29bo6bob2o2bo6bobo3bo5b2o40bo38bo60bo3b2o22bo31bo
2b2obob2ob2ob2o26bobo2b3o$10bo6bo29b2o5bo3bobo6bo2b2obo6bo41bo32b5o2b
2ob3o52bobo25bobo30b2o3b2obo3bob2o26bobo3bobo$7b2o2bo4bo2b2o34b3o3bo4b
o4b2o4bo43b2o31bo4bo3bo3bo4b2o4b2o36b2o3bo27bo3b2o28b2o4bo3bo30b2obo3b
o$6bobo3bo2bo3bobo34bo5bo2bo11b2o76b3obob2ob3o5bo4bobo36b2o35b2o28bo5b
obobo32bob3o$6bo6b2o6bo20b2o19b2o92bo6bo4b2obo3bo45b3o7b2o3b2o7b3o35bo
5bobo33bobo$5b2o14b2o19b2o5b2o117bobob2obob2o42bo3bo6b2o3b2o6bo3bo33b
2o6bo35bo$11b2o2b2o31bo2bo12bo93bo4bo4bobo2bobo3bo38bo2bo3bo4b2o7b2o4b
o3bo2bo$12bo2bo32b2ob2o10bobo7b2o76b2o7b2o5b2o3bo2bo2bo39bo2bo3bo4b2o
7b2o4bo3bo2bo$9b3o4b3o30bobo10bo3bo6b2o76bobo11bo3b2o3b2o2bo39bo3b3o
21b3o3bo$9bo8bo31bo12bobo87bo5b2o7bobo3b3o6b2o$153b2o2bo6bo3bo5b3o2bob
o2bo33bo3b3o21b3o3bo$49b2o12b3o85b2o4b3o2bobo6bo4bo3b4o34bo2bo3bo4b2o
7b2o4bo3bo2bo$49b2o12b3o84bo2b6obobo5b3o9bo37bo2bo3bo4b2o7b2o4bo3bo2bo
$151b2o6b2o4bo4bobo9b2o37bo3bo6b2o3b2o6bo3bo$153b4o2b3o5b2obob3o8bo38b
3o7b2o3b2o7b3o$153bo3bobo8bobo4bo6bo33b2o35b2o$154bo2bobo8bobo3b2o6b2o
32b2o3bo27bo3b2o$155bobobobo7bo50bobo25bobo$156b2obob3o57bo27bo$158bob
o3bo66b3o3b3o$158bobo2b2o65bo3bobo3bo$63b3o93bo70bo3bobo3bo$63b3o161bo
2bo3bobo3bo2bo$226bobo2b3o3b3o2bobo$63bobo161bo15bo$62bo3bo$63bobo166b
3ob3o$63bobo162b2o11b2o$228b2o11b2o2$66b2o2bo$62b2o2b2o3bo$62b2o7bo$
67b4o!
Perhaps LLS is better suited to the task of completing these oscillators.

There are a few phase shift oscillators that actually have two rotors mutually shifting each other. All of the examples I can think of use the 8n+1 reaction in some way:

Code: Select all

x = 145, y = 29, rule = B3/S23
125bo$123b5obo5b2o4b2o$87bo29bob2obo5b2o4bo2bo3bo$60bo25bobo28b2obobo
2b2o3b2o2b2obo4bo$58b3o2b2o22bo2b2o30bo4b3o2bobo2b2o2b2o$57bo6bo26bo
29b2obo6bo2bobo2bo$4b2o2bo22bo26b6o21b6o29bobo2b6o3b2ob6o$3bob4o21bobo
22b3o3bo2b3o17bo3bo2b3o24b3ob3o3bo2b3o3bo5bo$3bo7b2o16bobobo21bo2bo4bo
2bo17b2o4bo3bob2o19bo3bo3bo4bo3b2obobo3bo$b2ob5o2bo2bo11bo2bo3bo19bobo
bo3bo2bobob2o18bo2bo2bobobo18bobo2bobo3bo2bo2bobobo2bob2o$2bo6bobob2o
10bobobo3bob2o15bobobob6obobobo14b7obobo3bo2bo16b5ob7obobo3bo2bobo$2bo
bob3obobo13bo2b2ob2ob2o15bobo3bo4bo3bo15bo6bobobo3bobobo20bo6bobobo3bo
bo2bo$b2o3bobo3bo16bo3bo17b2obo3bob2ob2ob2o15bo2b4ob2ob2ob2o2bo18bo2bo
2b4ob2ob2ob2obobo$o2b2obob2ob2ob2o11bobobob6o15b2ob2ob2obo3bob2o9b2obo
bo2bo3bobo3bo20bobobobo2bo3bobo3bobob2o$2o3b2obo3bob2o11b2obobo2bo3bo
14bo3bo4bo3bobo10bobobob2o5b2obobobo18bo2bobob2o5b2obobo2bo$2b2o4bo3bo
17bo2bo4bobo11bobobob6obobobo12bo3bobo3bo2bobob2o16b2obobo3bobo3bo2bob
obobo$2bo5bobobo17b3o2bo3bo12b2obobo2bo3bobobo10bo2b2ob2ob2ob4o2bo20bo
bob2ob2ob2ob4o2bo2bo$3bo5bobo21b6o16bo2bo4bo2bo11bobobo3bobobo6bo19bo
2bobo3bobobo6bo$2b2o6bo21bo22b3o2bo3b3o12bo2bo3bobob7o20bobo2bo3bobob
7ob5o$32b2o2bo21b6o18bobobo2bo2bo23b2obo2bobobo2bo2bo3bobo2bobo$35bobo
19bo6bo18b2obo3bo4b2o20bo3bobob2o3bo4bo3bo3bo$36bo20b2o2b3o23b3o2bo3bo
20bo5bo3b3o2bo3b3ob3o$61bo28b6o22b6ob2o3b6o2bobo$89bo31bo2bobo2bo6bob
2o$89b2o2bo24b2o2b2o2bobo2b3o4bo$92bobo23bo4bob2o2b2o3b2o2bobob2o$93bo
25bo3bo2bo4b2o5bob2obo$118b2o4b2o5bob5o$135bo!
However, I did find this almost-p19 based on burloaferimeter and a p10 rotor:

Code: Select all

x = 16, y = 14, rule = B3/S23
7b2o$3b2obo2bo$2bobob2obo$bo2bo4bob2o$bobob5o2b3o$2obobo4bo4bo$3bobobo
bob4o$3bobobobobo$4b2obobob4o$6b2obo4bo$ob3o5b4o$2obo$5bo4b2o$4b2o4b2o
!
I never came up with a satisfactory way to look for these "special" reactions using JLS. I haven't yet used LLS, so I'm not sure if it would be any better, but I'm hoping I might inspire someone to look in this direction.

Another thing to consider is searching for new phase shift reactions. That is, try to find a small perturbation to the bushing of an oscillator that causes a phase shift. Again, I don't know if this is a task that's well suited to LLS.

I also discussed a way that dr could be used to potentially find new phase shift reactions.
-Matthias Merzenich

User avatar
2718281828
Posts: 738
Joined: August 8th, 2017, 5:38 pm

Re: Logic Life Search

Post by 2718281828 » June 26th, 2018, 11:43 am

I have two questions on LLS which I like a lot.

1) I know that using the argument

Code: Select all

-r pB12345678/S012345678
I am looking for isotropic non-totalistic rules satisfying the input pattern. Is there an option to check only for Life-like cellular automata (e.g. gives B368/S23 as an output but not B3ai6-k8/S2ak3-i)?

2) is the any option put '--force_at_most'-type side constraints on subsets of the variables?
For e.g.

Code: Select all

0 0    0    0    0    0 
0 x1y1 x1y2 x1y3 x1y4 0 
0 x2y1 x2y2 x2y3 x2y4 0 
0 x3y1 x3y2 x3y3 x3y4 0 
0 x4y1 x4y2 x4y3 x4y4 0 
0 0    0    0    0    0 
I would like to state next to --force_at_most 8 also something which states that out of x4y1 x4y2 x4y3 x4y4 two cells are at least active. So something like a --force_at_most 2_x4y1_x4y2_x4y3_x4y4 option. Or is there any trick to receive the same results?

User avatar
Macbi
Posts: 903
Joined: March 29th, 2009, 4:58 am

Re: Logic Life Search

Post by Macbi » June 26th, 2018, 11:55 am

Neither of these things is currently possible, but they're both on my todo list. I can't specify when I'll get around to them though.

wwei23

Re: Logic Life Search

Post by wwei23 » October 4th, 2018, 8:50 pm

Here's dos2unix.js. Dependencies: Node.js
input.txt and output.txt can really be anything you like.

Code: Select all

var fs=require("fs");
fs.readFile('./input.txt', 'utf-8', function(err, data) {
	var unix=data.replace(/\r\n/g,'\n');
	fs.writeFileSync('./output.txt', unix, 'utf-8', function(err) {
		if(err){
			throw err;
		}
	});
});

Post Reply