
В этой статье я расскажу про свой эксперимент: я создал в Unity симуляцию радиоуправляемых машинок, которые эволюционируют. «Мозгом» каждой машинки является электронная схема. Я заставил эти схемы мутировать(случайно меняться) и скрещиваться(обмениваться частями), чтобы создавать новые модели машин и улучшать их. Их «интеллект» и поведение меняются в зависимости от того, сколько блоков они успешно поднимают.
Старт симуляции:
Мутация: У машинки меняется "ДНК" (её электронная схема)
Скрещивание: Эта машинка объединяет свои "гены" с другой, и рождается новая.
Принцип такой: «мозг» машинки (её радиосхема) учится методом проб и ошибок. Каждый раз, когда она успешно поднимает блок, она получает положительный сигнал (подкрепление), который заставляет её повторять удачные действия в будущем.
Основная задача заключалась в организации непрерывного обмена данными между Unity и NGspice.
Я сделал так: программа в Юнити создавала описание схемы, отправляла его в NGspice (симулятор), тот рассчитывал все токи и напряжения и возвращал готовый ответ обратно в Юнити.
Понимаете, NGspice только кажется простым. На самом деле это мощный симулятор, созданный для профессионалов, и его исходный код — на языке C. Поэтому, хотя перенос его функций на C# для полной интеграции с Unity — дело важное, я считаю, что сначала нужно сосредоточиться на вызове NGspice из Unity.
Вот так развивалось поведение машинок:
Сперва они могли только ехать вперёд. Потом понемногу начали управлять своей рукой-манипулятором. В какой-то момент они сообразили, что можно оттолкнуться этой рукой от пола и подпрыгнуть. И уже на основе этого прыжка у них рождалось новое, куда более сложное поведение. Стоит одной машинке схватить блок, её успешная радиосхема («ДНК») передаётся по наследству, и среди всех машинок начинается настоящая гонка за блоками. И тут я увидел кое-что удивительное: они начали отбирать и воровать блоки друг у друга. Это поведение возникло само по себе, я его в них не закладывал. Меня это потрясло и невероятно обрадовало. Я никогда не думал, что они смогут додуматься до такого сами.
Моя гипотеза: настоящий интеллект нельзя просто написать кодом или натренировать на данных. Его нужно «выращивать», как растение, с помощью эволюции.
Как это работает в симуляции:
Система поощрений: Машинка получает «награду», если она наедет на синий кубик или дотронется до него своим усиком-датчиком,либо схватить своей роборукой красный кубик.
Цикл эволюции:
Начало (Мутация): У каждой машинки в «мозгу» (радиосхеме) появляется случайное изменение.
Финал (Скрещивание): Самые успешные машинки (с наибольшей наградой) объединяют свои схемы, чтобы создать следующее, более умное поколение.
К чему приводит такая эволюция? Схемы начинают жить в своем «обществе». Между ними возникает взаимодействие: они борются за блоки, толкают друг друга, а их странные «прыжки» — возможно, это даже примитивный «язык», на котором они «общаются».
В процессе эволюции (мутации и скрещивания) постоянно меняются «мозги» для машинок. Они собраны из разных радиодеталей так сложно и хаотично, что уже невозможно понять, как именно они работают.
Мой рецепт первичного ИИ: начать с простого поощрения за блоки, постепенно наращивать сложность задач и позволить эволюции сделать всю остальную работу.
Нейросети тоже можно «выращивать» эволюцией, мутируя их параметры. Однако аналоговые схемы, как в моём эксперименте, эффективнее — они потребляют меньше энергии и не требуют мощного охлаждения. Также в отличие от цифровых систем, мои аналоговые схемы работают в реальном времени. Эта временная зависимость дает им «чувство времени», которое помогает ориентироваться в пространстве.
Я усложнил задачу: добавил в мир карандаши и холст для рисования. Настроив систему поощрений так, чтобы машинки получали "баллы" за рисование, я заставил их брать карандаши и оставлять на холсте свои каракули.
Сдесь ссылка на ютуб плейлист,где происходит эволюция радиомашинок
Принцип генерации электронных схем (нетлистов):
Входные данные: 16x16 пиксельная камера, реагирующая на свет, преобразуется в набор постоянных напряжений.
Выходные данные: Сигналы снимаются с резисторов, которые имитируют моторы. Эти сигналы (рассчитанные напряжения) передаются в Unity для управления колёсами и манипулятором.
Формирование схемы: Между входами и выходами эволюционным путём создаётся случайная схема. Процесс мутации может:
Добавить или удалить любой элемент.
Изменить его расположение в схеме.
Изменить его номинал (например, сопротивление резистора).
Цикл эволюции выглядит так:
Находим лидера — машинку с наибольшим количеством очков.
Находим претендента — машинку с немного меньшим счётом.
Скрещиваем их — создаём новое поколение на основе "мозгов" лучших из текущего.
Рассмотрим минимум из того, что нужно знать о ngspice для данного проекта.
.title – это просто метка
.subckt – это подсхема. У меня используется для безопасного подключения транзистора или диода через резисторы.
.ends – конец подсхемы.
Vk a 0 DC Value
Источник постоянного тока, где k,a – постоянные значения.Value – значение напряжения на источнике питания.
Пример
V1 1 0 DC 1.193
V3 3 0 DC 1.250
Rk a b Value
Резистор.k a b – целые значения.a,b – места куда подключается резистор.Value – номинал резистора
Пример
R1 257 0 1000
R10 266 257 100
*start scheme
Комментарий, после которого начинается генерироваться цепь.
Ck a b Value.
Конденсатор. K,a,b – целые числа. Числа a,b – место, куда подключается конденсатор.Value – номинал конденсатора.
Пример
С1 254 340 100m
Lk a b Value
Индуктивность.k,a,b – целые значения,a,b – место,кода подключается индуктивность,Value – номинал индуктивности.
Пример
L1 331 340 223m
Xk a b c TRANS_SAFE
Транзистор. Осуществляется вызов .subckt TRANS_SAFE.k a b c- целые числа.a b c – места куда подключается транзистор. TRANS_SAFE – имя подсхемы транзистора.
Пример
X2 180 877 593 TRANS_SAFE
Xk a b DIODE_SAFE
Диод, вызов .subckt DIODE_SAFE
k,a,b – целые числа.a b – место куда подключается диод
DIODE_SAFE – имя подсхемы
Пример
X4 632 561 DIODE_SAFE
.tran – анализ радиосхем
.control – начало анализа схемы
.endc – конец анализа схемы
run – запуск анализа
print v(257) v(258) > output.txt –это вывод потенциалов в точках 257 и 258 в текстовый файл output.txt
Рассмотрим типичный код нетлиста, сгенерированный программой c# unity:
Начало нетлиста
Этот код отвечает за безопасное подключение транзистора и диода.
безопасное подключение транзистора и диода.
.title Simple Circuit
.model m1 NPN
.model m2 D
.subckt TRANS_SAFE base_int collector_int emitter_int
Q1 collector base emitter m1
rbase base base_int 10k
rcollector collector collector_int 1k
remitter emitter emitter_int 100
.ends
.subckt DIODE_SAFE in_int out_int
D1 in out m2
rin in in_int 1k
rout out out_int 1k
.ends
Это напряжения на входе фронтальной камеры(текстуры 16x16)
напряжения на входе фронтальной камеры(текстуры 16x16)
V1 1 0 DC 1.193
V2 2 0 DC 1.227
V3 3 0 DC 1.250
V4 4 0 DC 1.232
V5 5 0 DC 1.227
V6 6 0 DC 1.211
V7 7 0 DC 1.193
V8 8 0 DC 1.355
V9 9 0 DC 1.374
V10 10 0 DC 1.232
V11 11 0 DC 1.252
V12 12 0 DC 1.270
V13 13 0 DC 1.290
V14 14 0 DC 1.309
V15 15 0 DC 1.270
V16 16 0 DC 1.227
V17 17 0 DC 1.445
V18 18 0 DC 1.270
V19 19 0 DC 1.309
V20 20 0 DC 1.335
V21 21 0 DC 1.329
V22 22 0 DC 1.315
V23 23 0 DC 1.309
V24 24 0 DC 1.309
V25 25 0 DC 1.353
V26 26 0 DC 1.367
V27 27 0 DC 1.372
V28 28 0 DC 1.372
V29 29 0 DC 1.392
V30 30 0 DC 1.368
V31 31 0 DC 1.309
V32 32 0 DC 1.484
V33 33 0 DC 2.281
V34 34 0 DC 1.574
V35 35 0 DC 1.555
V36 36 0 DC 1.550
V37 37 0 DC 1.536
V38 38 0 DC 1.452
V39 39 0 DC 1.432
V40 40 0 DC 2.140
V41 41 0 DC 1.456
V42 42 0 DC 1.456
V43 43 0 DC 1.472
V44 44 0 DC 1.509
V45 45 0 DC 1.536
V46 46 0 DC 1.536
V47 47 0 DC 1.536
V48 48 0 DC 1.550
V49 49 0 DC 1.637
V50 50 0 DC 1.632
V51 51 0 DC 1.617
V52 52 0 DC 1.613
V53 53 0 DC 1.599
V54 54 0 DC 1.593
V55 55 0 DC 1.593
V56 56 0 DC 1.574
V57 57 0 DC 2.301
V58 58 0 DC 1.555
V59 59 0 DC 1.554
V60 60 0 DC 1.536
V61 61 0 DC 1.656
V62 62 0 DC 1.656
V63 63 0 DC 1.670
V64 64 0 DC 1.656
V65 65 0 DC 1.695
V66 66 0 DC 1.676
V67 67 0 DC 1.676
V68 68 0 DC 1.656
V69 69 0 DC 1.656
V70 70 0 DC 1.637
V71 71 0 DC 1.632
V72 72 0 DC 1.613
V73 73 0 DC 1.599
V74 74 0 DC 1.593
V75 75 0 DC 1.575
V76 76 0 DC 1.715
V77 77 0 DC 1.714
V78 78 0 DC 1.714
V79 79 0 DC 1.700
V80 80 0 DC 1.695
V81 81 0 DC 1.676
V82 82 0 DC 1.714
V83 83 0 DC 1.694
V84 84 0 DC 1.676
V85 85 0 DC 1.656
V86 86 0 DC 1.652
V87 87 0 DC 1.777
V88 88 0 DC 1.777
V89 89 0 DC 1.777
V90 90 0 DC 1.772
V91 91 0 DC 1.753
V92 92 0 DC 1.753
V93 93 0 DC 1.739
V94 94 0 DC 1.777
V95 95 0 DC 1.772
V96 96 0 DC 1.772
V97 97 0 DC 1.816
V98 98 0 DC 1.816
V99 99 0 DC 1.816
V100 100 0 DC 1.816
V101 101 0 DC 1.816
V102 102 0 DC 1.796
V103 103 0 DC 1.796
V104 104 0 DC 1.796
V105 105 0 DC 1.796
V106 106 0 DC 1.792
V107 107 0 DC 1.911
V108 108 0 DC 1.991
V109 109 0 DC 1.991
V110 110 0 DC 1.972
V111 111 0 DC 1.967
V112 112 0 DC 2.086
V113 113 0 DC 1.936
V114 114 0 DC 1.956
V115 115 0 DC 1.956
V116 116 0 DC 1.975
V117 117 0 DC 1.975
V118 118 0 DC 1.980
V119 119 0 DC 1.980
V120 120 0 DC 1.873
V121 121 0 DC 1.897
V122 122 0 DC 1.918
V123 123 0 DC 1.956
V124 124 0 DC 2.049
V125 125 0 DC 2.087
V126 126 0 DC 1.968
V127 127 0 DC 2.898
V128 128 0 DC 2.353
V129 129 0 DC 3.835
V130 130 0 DC 5.000
V131 131 0 DC 4.917
V132 132 0 DC 4.908
V133 133 0 DC 4.896
V134 134 0 DC 4.887
V135 135 0 DC 4.871
V136 136 0 DC 4.858
V137 137 0 DC 4.745
V138 138 0 DC 4.676
V139 139 0 DC 4.622
V140 140 0 DC 4.553
V141 141 0 DC 4.497
V142 142 0 DC 4.438
V143 143 0 DC 2.469
V144 144 0 DC 2.473
V145 145 0 DC 4.268
V146 146 0 DC 4.230
V147 147 0 DC 4.174
V148 148 0 DC 4.098
V149 149 0 DC 4.059
V150 150 0 DC 4.021
V151 151 0 DC 3.964
V152 152 0 DC 3.923
V153 153 0 DC 3.870
V154 154 0 DC 3.831
V155 155 0 DC 3.778
V156 156 0 DC 3.752
V157 157 0 DC 3.716
V158 158 0 DC 3.677
V159 159 0 DC 3.661
V160 160 0 DC 3.640
V161 161 0 DC 3.625
V162 162 0 DC 3.563
V163 163 0 DC 3.524
V164 164 0 DC 3.485
V165 165 0 DC 3.432
V166 166 0 DC 3.392
V167 167 0 DC 3.353
V168 168 0 DC 3.338
V169 169 0 DC 3.299
V170 170 0 DC 3.278
V171 171 0 DC 3.258
V172 172 0 DC 3.223
V173 173 0 DC 3.203
V174 174 0 DC 3.202
V175 175 0 DC 3.182
V176 176 0 DC 3.181
V177 177 0 DC 3.147
V178 178 0 DC 3.124
V179 179 0 DC 3.089
V180 180 0 DC 3.049
V181 181 0 DC 3.010
V182 182 0 DC 2.995
V183 183 0 DC 2.974
V184 184 0 DC 2.954
V185 185 0 DC 2.919
V186 186 0 DC 2.899
V187 187 0 DC 2.878
V188 188 0 DC 2.878
V189 189 0 DC 2.859
V190 190 0 DC 2.857
V191 191 0 DC 2.859
V192 192 0 DC 2.859
V193 193 0 DC 2.880
V194 194 0 DC 2.841
V195 195 0 DC 2.787
V196 196 0 DC 2.747
V197 197 0 DC 2.707
V198 198 0 DC 2.653
V199 199 0 DC 2.629
V200 200 0 DC 2.608
V201 201 0 DC 2.588
V202 202 0 DC 2.573
V203 203 0 DC 2.553
V204 204 0 DC 2.553
V205 205 0 DC 2.552
V206 206 0 DC 2.553
V207 207 0 DC 2.572
V208 208 0 DC 2.595
V209 209 0 DC 2.574
V210 210 0 DC 2.539
V211 211 0 DC 2.500
V212 212 0 DC 2.495
V213 213 0 DC 2.459
V214 214 0 DC 2.440
V215 215 0 DC 2.419
V216 216 0 DC 2.399
V217 217 0 DC 2.384
V218 218 0 DC 2.378
V219 219 0 DC 2.364
V220 220 0 DC 2.363
V221 221 0 DC 2.378
V222 222 0 DC 2.382
V223 223 0 DC 2.382
V224 224 0 DC 2.384
V225 225 0 DC 2.403
V226 226 0 DC 2.380
V227 227 0 DC 2.343
V228 228 0 DC 2.304
V229 229 0 DC 2.265
V230 230 0 DC 2.249
V231 231 0 DC 2.230
V232 232 0 DC 2.209
V233 233 0 DC 2.210
V234 234 0 DC 2.210
V235 235 0 DC 2.209
V236 236 0 DC 2.209
V237 237 0 DC 2.209
V238 238 0 DC 2.209
V239 239 0 DC 2.209
V240 240 0 DC 2.230
V241 241 0 DC 2.230
V242 242 0 DC 2.210
V243 243 0 DC 2.189
V244 244 0 DC 2.189
V245 245 0 DC 2.169
V246 246 0 DC 2.148
V247 247 0 DC 2.133
V248 248 0 DC 2.113
V249 249 0 DC 2.113
V250 250 0 DC 2.113
V251 251 0 DC 2.113
V252 252 0 DC 2.113
V253 253 0 DC 2.113
V254 254 0 DC 2.113
V255 255 0 DC 2.113
V256 256 0 DC 2.133
Это сопротивления на моторах, которые управляют перемещением машинки взад-вперед, влево-направо
сопротивления на моторах, которые управляют перемещением машинки
R1 257 0 1000
R2 258 0 1000
R3 259 0 1000
R4 260 0 1000
Это сопротивления, которые подключены к моторам машинок для управления перемещения. Они нужны для того, чтобы эволюции было легче связать батарейку на камере, например V255, с выходным сопротивлением на моторе.
сопротивления, которые подключены к моторам машинок для управления перемещения
R5 261 257 100
R6 262 257 100
R7 263 257 100
R8 264 257 100
R9 265 257 100
R10 266 257 100
R11 267 257 100
R12 268 257 100
R13 269 257 100
R14 270 257 100
R15 271 257 100
R16 272 257 100
R17 273 257 100
R18 274 257 100
R19 275 257 100
R20 276 257 100
R21 277 257 100
R22 278 257 100
R23 279 257 100
R24 280 257 100
R25 281 257 100
R26 282 257 100
R27 283 257 100
R28 284 257 100
R29 285 257 100
R30 286 257 100
R31 287 257 100
R32 288 257 100
R33 289 257 100
R34 290 257 100
R35 291 257 100
R36 292 257 100
R37 293 257 100
R38 294 257 100
R39 295 257 100
R40 296 257 100
R41 297 257 100
R42 298 257 100
R43 299 257 100
R44 300 257 100
R45 301 257 100
R46 302 257 100
R47 303 257 100
R48 304 257 100
R49 305 257 100
R50 306 257 100
R51 307 257 100
R52 308 257 100
R53 309 257 100
R54 310 257 100
R55 311 257 100
R56 312 257 100
R57 313 257 100
R58 314 257 100
R59 315 257 100
R60 316 257 100
R61 317 257 100
R62 318 257 100
R63 319 257 100
R64 320 257 100
R65 321 257 100
R66 322 257 100
R67 323 257 100
R68 324 257 100
R69 325 258 100
R70 326 258 100
R71 327 258 100
R72 328 258 100
R73 329 258 100
R74 330 258 100
R75 331 258 100
R76 332 258 100
R77 333 258 100
R78 334 258 100
R79 335 258 100
R80 336 258 100
R81 337 258 100
R82 338 258 100
R83 339 258 100
R84 340 258 100
R85 341 258 100
R86 342 258 100
R87 343 258 100
R88 344 258 100
R89 345 258 100
R90 346 258 100
R91 347 258 100
R92 348 258 100
R93 349 258 100
R94 350 258 100
R95 351 258 100
R96 352 258 100
R97 353 258 100
R98 354 258 100
R99 355 258 100
R100 356 258 100
R101 357 258 100
R102 358 258 100
R103 359 258 100
R104 360 258 100
R105 361 258 100
R106 362 258 100
R107 363 258 100
R108 364 258 100
R109 365 258 100
R110 366 258 100
R111 367 258 100
R112 368 258 100
R113 369 258 100
R114 370 258 100
R115 371 258 100
R116 372 258 100
R117 373 258 100
R118 374 258 100
R119 375 258 100
R120 376 258 100
R121 377 258 100
R122 378 258 100
R123 379 258 100
R124 380 258 100
R125 381 258 100
R126 382 258 100
R127 383 258 100
R128 384 258 100
R129 385 258 100
R130 386 258 100
R131 387 258 100
R132 388 258 100
R133 389 259 100
R134 390 259 100
R135 391 259 100
R136 392 259 100
R137 393 259 100
R138 394 259 100
R139 395 259 100
R140 396 259 100
R141 397 259 100
R142 398 259 100
R143 399 259 100
R144 400 259 100
R145 401 259 100
R146 402 259 100
R147 403 259 100
R148 404 259 100
R149 405 259 100
R150 406 259 100
R151 407 259 100
R152 408 259 100
R153 409 259 100
R154 410 259 100
R155 411 259 100
R156 412 259 100
R157 413 259 100
R158 414 259 100
R159 415 259 100
R160 416 259 100
R161 417 259 100
R162 418 259 100
R163 419 259 100
R164 420 259 100
R165 421 259 100
R166 422 259 100
R167 423 259 100
R168 424 259 100
R169 425 259 100
R170 426 259 100
R171 427 259 100
R172 428 259 100
R173 429 259 100
R174 430 259 100
R175 431 259 100
R176 432 259 100
R177 433 259 100
R178 434 259 100
R179 435 259 100
R180 436 259 100
R181 437 259 100
R182 438 259 100
R183 439 259 100
R184 440 259 100
R185 441 259 100
R186 442 259 100
R187 443 259 100
R188 444 259 100
R189 445 259 100
R190 446 259 100
R191 447 259 100
R192 448 259 100
R193 449 259 100
R194 450 259 100
R195 451 259 100
R196 452 259 100
R197 453 260 100
R198 454 260 100
R199 455 260 100
R200 456 260 100
R201 457 260 100
R202 458 260 100
R203 459 260 100
R204 460 260 100
R205 461 260 100
R206 462 260 100
R207 463 260 100
R208 464 260 100
R209 465 260 100
R210 466 260 100
R211 467 260 100
R212 468 260 100
R213 469 260 100
R214 470 260 100
R215 471 260 100
R216 472 260 100
R217 473 260 100
R218 474 260 100
R219 475 260 100
R220 476 260 100
R221 477 260 100
R222 478 260 100
R223 479 260 100
R224 480 260 100
R225 481 260 100
R226 482 260 100
R227 483 260 100
R228 484 260 100
R229 485 260 100
R230 486 260 100
R231 487 260 100
R232 488 260 100
R233 489 260 100
R234 490 260 100
R235 491 260 100
R236 492 260 100
R237 493 260 100
R238 494 260 100
R239 495 260 100
R240 496 260 100
R241 497 260 100
R242 498 260 100
R243 499 260 100
R244 500 260 100
R245 501 260 100
R246 502 260 100
R247 503 260 100
R248 504 260 100
R249 505 260 100
R250 506 260 100
R251 507 260 100
R252 508 260 100
R253 509 260 100
R254 510 260 100
R255 511 260 100
R256 512 260 100
R257 513 260 100
R258 514 260 100
R259 515 260 100
R260 516 260 100
Это напряжения на усиках вокруг машинки. Усики срабатывают тогда, когда машинка сталкиваются с каким-то объектом
напряжения на усиках вокруг машинки
V257 517 0 DC 0
V258 518 0 DC 0
V259 519 0 DC 0
V260 520 0 DC 0
V261 521 0 DC 0
V262 522 0 DC 0
Это сопротивления, которые разветвляют сигнал с усиков, для лучшей связи с выходными электромоторами(сопротивлениями)
сопротивления, которые разветвляют сигнал с усиков
R261 523 517 100
R262 524 517 100
R263 525 517 100
R264 526 517 100
R265 527 517 100
R266 528 517 100
R267 529 517 100
R268 530 517 100
R269 531 517 100
R270 532 517 100
R271 533 517 100
R272 534 517 100
R273 535 517 100
R274 536 517 100
R275 537 517 100
R276 538 517 100
R277 539 517 100
R278 540 517 100
R279 541 517 100
R280 542 517 100
R281 543 517 100
R282 544 517 100
R283 545 517 100
R284 546 517 100
R285 547 517 100
R286 548 517 100
R287 549 517 100
R288 550 517 100
R289 551 517 100
R290 552 517 100
R291 553 517 100
R292 554 517 100
R293 555 518 100
R294 556 518 100
R295 557 518 100
R296 558 518 100
R297 559 518 100
R298 560 518 100
R299 561 518 100
R300 562 518 100
R301 563 518 100
R302 564 518 100
R303 565 518 100
R304 566 518 100
R305 567 518 100
R306 568 518 100
R307 569 518 100
R308 570 518 100
R309 571 518 100
R310 572 518 100
R311 573 518 100
R312 574 518 100
R313 575 518 100
R314 576 518 100
R315 577 518 100
R316 578 518 100
R317 579 518 100
R318 580 518 100
R319 581 518 100
R320 582 518 100
R321 583 518 100
R322 584 518 100
R323 585 518 100
R324 586 518 100
R325 587 519 100
R326 588 519 100
R327 589 519 100
R328 590 519 100
R329 591 519 100
R330 592 519 100
R331 593 519 100
R332 594 519 100
R333 595 519 100
R334 596 519 100
R335 597 519 100
R336 598 519 100
R337 599 519 100
R338 600 519 100
R339 601 519 100
R340 602 519 100
R341 603 519 100
R342 604 519 100
R343 605 519 100
R344 606 519 100
R345 607 519 100
R346 608 519 100
R347 609 519 100
R348 610 519 100
R349 611 519 100
R350 612 519 100
R351 613 519 100
R352 614 519 100
R353 615 519 100
R354 616 519 100
R355 617 519 100
R356 618 519 100
R357 619 520 100
R358 620 520 100
R359 621 520 100
R360 622 520 100
R361 623 520 100
R362 624 520 100
R363 625 520 100
R364 626 520 100
R365 627 520 100
R366 628 520 100
R367 629 520 100
R368 630 520 100
R369 631 520 100
R370 632 520 100
R371 633 520 100
R372 634 520 100
R373 635 520 100
R374 636 520 100
R375 637 520 100
R376 638 520 100
R377 639 520 100
R378 640 520 100
R379 641 520 100
R380 642 520 100
R381 643 520 100
R382 644 520 100
R383 645 520 100
R384 646 520 100
R385 647 520 100
R386 648 520 100
R387 649 520 100
R388 650 520 100
R389 651 521 100
R390 652 521 100
R391 653 521 100
R392 654 521 100
R393 655 521 100
R394 656 521 100
R395 657 521 100
R396 658 521 100
R397 659 521 100
R398 660 521 100
R399 661 521 100
R400 662 521 100
R401 663 521 100
R402 664 521 100
R403 665 521 100
R404 666 521 100
R405 667 521 100
R406 668 521 100
R407 669 521 100
R408 670 521 100
R409 671 521 100
R410 672 521 100
R411 673 521 100
R412 674 521 100
R413 675 521 100
R414 676 521 100
R415 677 521 100
R416 678 521 100
R417 679 521 100
R418 680 521 100
R419 681 521 100
R420 682 521 100
R421 683 522 100
R422 684 522 100
R423 685 522 100
R424 686 522 100
R425 687 522 100
R426 688 522 100
R427 689 522 100
R428 690 522 100
R429 691 522 100
R430 692 522 100
R431 693 522 100
R432 694 522 100
R433 695 522 100
R434 696 522 100
R435 697 522 100
R436 698 522 100
R437 699 522 100
R438 700 522 100
R439 701 522 100
R440 702 522 100
R441 703 522 100
R442 704 522 100
R443 705 522 100
R444 706 522 100
R445 707 522 100
R446 708 522 100
R447 709 522 100
R448 710 522 100
R449 711 522 100
R450 712 522 100
R451 713 522 100
R452 714 522 100
Эта цепь отвечает за усики, которые находятся на “роборуке” машинки
цепь отвечает за усики, которые находятся на “роборуке” машинки
V264 683 0 DC 0
V265 684 0 DC 0
V266 685 0 DC 0
V267 686 0 DC 0
V268 687 0 DC 0
Эта цепь отвечает за сгибание "роборуки"
цепь отвечает за сгибание "роборуки"
R453 688 0 1000
R454 689 0 1000
R455 690 0 1000
R456 691 0 1000
R457 692 0 1000
R458 693 0 1000
R459 694 0 1000
R460 695 0 1000
Этот код отвечает за разветвление подключения моторов к роборуке
код отвечает за разветвление подключения моторов к роборуке
R461 696 688 100
R462 697 688 100
R463 698 688 100
R464 699 688 100
R465 700 688 100
R466 701 688 100
R467 702 688 100
R468 703 688 100
R469 704 688 100
R470 705 688 100
R471 706 688 100
R472 707 688 100
R473 708 688 100
R474 709 688 100
R475 710 688 100
R476 711 688 100
R477 712 688 100
R478 713 688 100
R479 714 688 100
R480 715 688 100
R481 716 688 100
R482 717 688 100
R483 718 688 100
R484 719 688 100
R485 720 688 100
R486 721 688 100
R487 722 688 100
R488 723 688 100
R489 724 688 100
R490 725 688 100
R491 726 688 100
R492 727 688 100
R493 728 689 100
R494 729 689 100
R495 730 689 100
R496 731 689 100
R497 732 689 100
R498 733 689 100
R499 734 689 100
R500 735 689 100
R501 736 689 100
R502 737 689 100
R503 738 689 100
R504 739 689 100
R505 740 689 100
R506 741 689 100
R507 742 689 100
R508 743 689 100
R509 744 689 100
R510 745 689 100
R511 746 689 100
R512 747 689 100
R513 748 689 100
R514 749 689 100
R515 750 689 100
R516 751 689 100
R517 752 689 100
R518 753 689 100
R519 754 689 100
R520 755 689 100
R521 756 689 100
R522 757 689 100
R523 758 689 100
R524 759 689 100
R525 760 690 100
R526 761 690 100
R527 762 690 100
R528 763 690 100
R529 764 690 100
R530 765 690 100
R531 766 690 100
R532 767 690 100
R533 768 690 100
R534 769 690 100
R535 770 690 100
R536 771 690 100
R537 772 690 100
R538 773 690 100
R539 774 690 100
R540 775 690 100
R541 776 690 100
R542 777 690 100
R543 778 690 100
R544 779 690 100
R545 780 690 100
R546 781 690 100
R547 782 690 100
R548 783 690 100
R549 784 690 100
R550 785 690 100
R551 786 690 100
R552 787 690 100
R553 788 690 100
R554 789 690 100
R555 790 690 100
R556 791 690 100
R557 792 691 100
R558 793 691 100
R559 794 691 100
R560 795 691 100
R561 796 691 100
R562 797 691 100
R563 798 691 100
R564 799 691 100
R565 800 691 100
R566 801 691 100
R567 802 691 100
R568 803 691 100
R569 804 691 100
R570 805 691 100
R571 806 691 100
R572 807 691 100
R573 808 691 100
R574 809 691 100
R575 810 691 100
R576 811 691 100
R577 812 691 100
R578 813 691 100
R579 814 691 100
R580 815 691 100
R581 816 691 100
R582 817 691 100
R583 818 691 100
R584 819 691 100
R585 820 691 100
R586 821 691 100
R587 822 691 100
R588 823 691 100
R589 824 692 100
R590 825 692 100
R591 826 692 100
R592 827 692 100
R593 828 692 100
R594 829 692 100
R595 830 692 100
R596 831 692 100
R597 832 692 100
R598 833 692 100
R599 834 692 100
R600 835 692 100
R601 836 692 100
R602 837 692 100
R603 838 692 100
R604 839 692 100
R605 840 692 100
R606 841 692 100
R607 842 692 100
R608 843 692 100
R609 844 692 100
R610 845 692 100
R611 846 692 100
R612 847 692 100
R613 848 692 100
R614 849 692 100
R615 850 692 100
R616 851 692 100
R617 852 692 100
R618 853 692 100
R619 854 692 100
R620 855 692 100
R621 856 693 100
R622 857 693 100
R623 858 693 100
R624 859 693 100
R625 860 693 100
R626 861 693 100
R627 862 693 100
R628 863 693 100
R629 864 693 100
R630 865 693 100
R631 866 693 100
R632 867 693 100
R633 868 693 100
R634 869 693 100
R635 870 693 100
R636 871 693 100
R637 872 693 100
R638 873 693 100
R639 874 693 100
R640 875 693 100
R641 876 693 100
R642 877 693 100
R643 878 693 100
R644 879 693 100
R645 880 693 100
R646 881 693 100
R647 882 693 100
R648 883 693 100
R649 884 693 100
R650 885 693 100
R651 886 693 100
R652 887 693 100
R653 888 694 100
R654 889 694 100
R655 890 694 100
R656 891 694 100
R657 892 694 100
R658 893 694 100
R659 894 694 100
R660 895 694 100
R661 896 694 100
R662 897 694 100
R663 898 694 100
R664 899 694 100
R665 900 694 100
R666 901 694 100
R667 902 694 100
R668 903 694 100
R669 904 694 100
R670 905 694 100
R671 906 694 100
R672 907 694 100
R673 908 694 100
R674 909 694 100
R675 910 694 100
R676 911 694 100
R677 912 694 100
R678 913 694 100
R679 914 694 100
R680 915 694 100
R681 916 694 100
R682 917 694 100
R683 918 694 100
R684 919 694 100
R685 920 695 100
R686 921 695 100
R687 922 695 100
R688 923 695 100
R689 924 695 100
R690 925 695 100
R691 926 695 100
R692 927 695 100
R693 928 695 100
R694 929 695 100
R695 930 695 100
R696 931 695 100
R697 932 695 100
R698 933 695 100
R699 934 695 100
R700 935 695 100
R701 936 695 100
R702 937 695 100
R703 938 695 100
R704 939 695 100
R705 940 695 100
R706 941 695 100
R707 942 695 100
R708 943 695 100
R709 944 695 100
R710 945 695 100
R711 946 695 100
R712 947 695 100
R713 948 695 100
R714 949 695 100
R715 950 695 100
R716 951 695 100
Это датчики задней камеры
датчики задней камеры
V269 952 0 DC 2.510
V270 953 0 DC 2.613
V271 954 0 DC 2.709
V272 955 0 DC 2.768
V273 956 0 DC 2.788
V274 957 0 DC 2.768
V275 958 0 DC 2.690
V276 959 0 DC 2.593
V277 960 0 DC 2.471
V278 961 0 DC 2.355
V279 962 0 DC 2.244
V280 963 0 DC 2.162
V281 964 0 DC 2.083
V282 965 0 DC 2.006
V283 966 0 DC 1.963
V284 967 0 DC 1.764
V285 968 0 DC 2.593
V286 969 0 DC 2.690
V287 970 0 DC 2.768
V288 971 0 DC 2.807
V289 972 0 DC 2.609
V290 973 0 DC 2.589
V291 974 0 DC 2.530
V292 975 0 DC 2.438
V293 976 0 DC 2.337
V294 977 0 DC 2.239
V295 978 0 DC 2.142
V296 979 0 DC 2.079
V297 980 0 DC 2.006
V298 981 0 DC 1.948
V299 982 0 DC 1.904
V300 983 0 DC 1.870
V301 984 0 DC 2.410
V302 985 0 DC 2.510
V303 986 0 DC 2.589
V304 987 0 DC 2.632
V305 988 0 DC 2.632
V306 989 0 DC 2.613
V307 990 0 DC 2.536
V308 991 0 DC 2.453
V309 992 0 DC 2.337
V310 993 0 DC 2.239
V311 994 0 DC 2.020
V312 995 0 DC 1.943
V313 996 0 DC 1.904
V314 997 0 DC 1.865
V315 998 0 DC 1.827
V316 999 0 DC 1.807
V317 1000 0 DC 2.356
V318 1001 0 DC 2.453
V319 1002 0 DC 2.510
V320 1003 0 DC 2.530
V321 1004 0 DC 2.530
V322 1005 0 DC 2.477
V323 1006 0 DC 2.293
V324 1007 0 DC 2.221
V325 1008 0 DC 2.138
V326 1009 0 DC 2.061
V327 1010 0 DC 2.001
V328 1011 0 DC 1.943
V329 1012 0 DC 1.886
V330 1013 0 DC 1.865
V331 1014 0 DC 1.827
V332 1015 0 DC 1.807
V333 1016 0 DC 2.134
V334 1017 0 DC 2.254
V335 1018 0 DC 2.356
V336 1019 0 DC 2.293
V337 1020 0 DC 2.307
V338 1021 0 DC 2.274
V339 1022 0 DC 2.254
V340 1023 0 DC 1.959
V341 1024 0 DC 1.915
V342 1025 0 DC 1.857
V343 1026 0 DC 1.823
V344 1027 0 DC 1.803
V345 1028 0 DC 1.803
V346 1029 0 DC 1.803
V347 1030 0 DC 1.682
V348 1031 0 DC 1.687
V349 1032 0 DC 1.157
V350 1033 0 DC 1.196
V351 1034 0 DC 1.234
V352 1035 0 DC 1.235
V353 1036 0 DC 1.190
V354 1037 0 DC 1.214
V355 1038 0 DC 1.099
V356 1039 0 DC 1.098
V357 1040 0 DC 1.078
V358 1041 0 DC 1.039
V359 1042 0 DC 1.019
V360 1043 0 DC 0.918
V361 1044 0 DC 1.827
V362 1045 0 DC 1.788
V363 1046 0 DC 1.764
V364 1047 0 DC 1.745
V365 1048 0 DC 0.000
V366 1049 0 DC 0.000
V367 1050 0 DC 0.000
V368 1051 0 DC 0.000
V369 1052 0 DC 0.000
V370 1053 0 DC 0.000
V371 1054 0 DC 0.000
V372 1055 0 DC 0.000
V373 1056 0 DC 0.000
V374 1057 0 DC 0.000
V375 1058 0 DC 0.000
V376 1059 0 DC 0.000
V377 1060 0 DC 1.663
V378 1061 0 DC 1.682
V379 1062 0 DC 1.682
V380 1063 0 DC 1.682
V381 1064 0 DC 0.000
V382 1065 0 DC 2.300
V383 1066 0 DC 3.513
V384 1067 0 DC 2.484
V385 1068 0 DC 2.464
V386 1069 0 DC 2.328
V387 1070 0 DC 2.368
V388 1071 0 DC 0.000
V389 1072 0 DC 0.000
V390 1073 0 DC 1.035
V391 1074 0 DC 1.935
V392 1075 0 DC 1.896
V393 1076 0 DC 1.740
V394 1077 0 DC 1.740
V395 1078 0 DC 1.740
V396 1079 0 DC 1.586
V397 1080 0 DC 0.000
V398 1081 0 DC 2.375
V399 1082 0 DC 4.755
V400 1083 0 DC 4.759
V401 1084 0 DC 4.773
V402 1085 0 DC 4.791
V403 1086 0 DC 4.791
V404 1087 0 DC 0.000
V405 1088 0 DC 0.000
V406 1089 0 DC 2.376
V407 1090 0 DC 4.763
V408 1091 0 DC 4.790
V409 1092 0 DC 4.785
V410 1093 0 DC 4.771
V411 1094 0 DC 4.776
V412 1095 0 DC 4.757
V413 1096 0 DC 4.150
V414 1097 0 DC 4.150
V415 1098 0 DC 4.150
V416 1099 0 DC 4.150
V417 1100 0 DC 4.136
V418 1101 0 DC 4.136
V419 1102 0 DC 4.132
V420 1103 0 DC 2.071
V421 1104 0 DC 2.065
V422 1105 0 DC 2.051
V423 1106 0 DC 4.082
V424 1107 0 DC 4.079
V425 1108 0 DC 4.062
V426 1109 0 DC 4.061
V427 1110 0 DC 4.044
V428 1111 0 DC 4.060
V429 1112 0 DC 3.741
V430 1113 0 DC 3.757
V431 1114 0 DC 3.741
V432 1115 0 DC 3.737
V433 1116 0 DC 3.723
V434 1117 0 DC 3.718
V435 1118 0 DC 3.702
V436 1119 0 DC 3.683
V437 1120 0 DC 3.681
V438 1121 0 DC 3.662
V439 1122 0 DC 3.645
V440 1123 0 DC 3.639
V441 1124 0 DC 3.622
V442 1125 0 DC 3.603
V443 1126 0 DC 3.605
V444 1127 0 DC 3.604
V445 1128 0 DC 3.474
V446 1129 0 DC 3.474
V447 1130 0 DC 3.456
V448 1131 0 DC 3.454
V449 1132 0 DC 3.436
V450 1133 0 DC 3.416
V451 1134 0 DC 3.415
V452 1135 0 DC 3.400
V453 1136 0 DC 3.380
V454 1137 0 DC 3.359
V455 1138 0 DC 3.358
V456 1139 0 DC 3.338
V457 1140 0 DC 3.323
V458 1141 0 DC 3.316
V459 1142 0 DC 3.300
V460 1143 0 DC 3.299
V461 1144 0 DC 3.264
V462 1145 0 DC 3.244
V463 1146 0 DC 3.211
V464 1147 0 DC 3.205
V465 1148 0 DC 3.185
V466 1149 0 DC 3.170
V467 1150 0 DC 3.152
V468 1151 0 DC 3.131
V469 1152 0 DC 3.129
V470 1153 0 DC 3.110
V471 1154 0 DC 3.094
V472 1155 0 DC 3.089
V473 1156 0 DC 3.073
V474 1157 0 DC 3.086
V475 1158 0 DC 3.090
V476 1159 0 DC 3.089
V477 1160 0 DC 3.072
V478 1161 0 DC 3.072
V479 1162 0 DC 3.052
V480 1163 0 DC 3.037
V481 1164 0 DC 3.033
V482 1165 0 DC 3.017
V483 1166 0 DC 2.998
V484 1167 0 DC 2.978
V485 1168 0 DC 2.977
V486 1169 0 DC 2.956
V487 1170 0 DC 2.940
V488 1171 0 DC 2.921
V489 1172 0 DC 2.919
V490 1173 0 DC 2.918
V491 1174 0 DC 2.898
V492 1175 0 DC 2.883
V493 1176 0 DC 2.943
V494 1177 0 DC 2.923
V495 1178 0 DC 2.904
V496 1179 0 DC 2.898
V497 1180 0 DC 2.898
V498 1181 0 DC 2.883
V499 1182 0 DC 2.863
V500 1183 0 DC 2.848
V501 1184 0 DC 2.842
V502 1185 0 DC 2.827
V503 1186 0 DC 2.821
V504 1187 0 DC 2.801
V505 1188 0 DC 2.785
V506 1189 0 DC 2.765
V507 1190 0 DC 2.765
V508 1191 0 DC 2.764
V509 1192 0 DC 2.842
V510 1193 0 DC 2.828
V511 1194 0 DC 2.824
V512 1195 0 DC 2.822
V513 1196 0 DC 2.803
V514 1197 0 DC 2.787
V515 1198 0 DC 2.768
V516 1199 0 DC 2.766
V517 1200 0 DC 2.747
V518 1201 0 DC 2.727
V519 1202 0 DC 2.727
V520 1203 0 DC 2.706
V521 1204 0 DC 2.691
V522 1205 0 DC 2.671
V523 1206 0 DC 2.670
V524 1207 0 DC 2.650
Это комментарий,начиная с которого происходят мутации и скрещивания в схеме
комментарий,начиная с которого происходят мутации и скрещивания в схеме
*start scheme
Дальше идет код случайных мутаций и скрещиваний
код случайных мутаций и скрещиваний
R717 260 1 100
C1 254 340 100m
X2 180 877 593 TRANS_SAFE
X3 781 280 DIODE_SAFE
L1 331 340 223m
L2 607 435 100m
R718 822 21 100m
R719 3 112 100m
L3 555 479 776m
L4 815 304 100m
C2 135 503 100m
L5 56 581 100m
L6 785 268 100m
R720 845 947 100m
L7 776 2 100m
L8 3 765 100m
C3 505 784 100m
X4 632 561 DIODE_SAFE
C4 914 350 100m
L9 241 890 100m
X5 669 467 208 TRANS_SAFE
L10 131 913 100m
X6 286 138 126 TRANS_SAFE
R721 190 707 100m
Выбираем тип анализа цепи
тип анализа цепи
.TRAN 1 1.5 1 1
Происходит запуск анализа цепи и вывод исходных данных в текстовые файлы
запуск анализа цепи и вывод исходных данных в текстовые файлы
.control
set filetype=ascii
set rchar=","
run
print v(257) v(258) > output_1.txt
print v(259) v(260) > output_1.txt.ctl
print v(688) v(689) > output_1.txt.or1
print v(690) v(691) > output_1.txt.or2
print v(692) v(693) > output_1.txt.or3
print v(694) v(695) > output_1.txt.or4
.endc
.end
Полный текст нетлиста
текст нетлиста
.title Simple Circuit
.model m1 NPN
.model m2 D
.subckt TRANS_SAFE base_int collector_int emitter_int
Q1 collector base emitter m1
rbase base base_int 10k
rcollector collector collector_int 1k
remitter emitter emitter_int 100
.ends
.subckt DIODE_SAFE in_int out_int
D1 in out m2
rin in in_int 1k
rout out out_int 1k
.ends
V1 1 0 DC 1.193
V2 2 0 DC 1.227
V3 3 0 DC 1.250
V4 4 0 DC 1.232
V5 5 0 DC 1.227
V6 6 0 DC 1.211
V7 7 0 DC 1.193
V8 8 0 DC 1.355
V9 9 0 DC 1.374
V10 10 0 DC 1.232
V11 11 0 DC 1.252
V12 12 0 DC 1.270
V13 13 0 DC 1.290
V14 14 0 DC 1.309
V15 15 0 DC 1.270
V16 16 0 DC 1.227
V17 17 0 DC 1.445
V18 18 0 DC 1.270
V19 19 0 DC 1.309
V20 20 0 DC 1.335
V21 21 0 DC 1.329
V22 22 0 DC 1.315
V23 23 0 DC 1.309
V24 24 0 DC 1.309
V25 25 0 DC 1.353
V26 26 0 DC 1.367
V27 27 0 DC 1.372
V28 28 0 DC 1.372
V29 29 0 DC 1.392
V30 30 0 DC 1.368
V31 31 0 DC 1.309
V32 32 0 DC 1.484
V33 33 0 DC 2.281
V34 34 0 DC 1.574
V35 35 0 DC 1.555
V36 36 0 DC 1.550
V37 37 0 DC 1.536
V38 38 0 DC 1.452
V39 39 0 DC 1.432
V40 40 0 DC 2.140
V41 41 0 DC 1.456
V42 42 0 DC 1.456
V43 43 0 DC 1.472
V44 44 0 DC 1.509
V45 45 0 DC 1.536
V46 46 0 DC 1.536
V47 47 0 DC 1.536
V48 48 0 DC 1.550
V49 49 0 DC 1.637
V50 50 0 DC 1.632
V51 51 0 DC 1.617
V52 52 0 DC 1.613
V53 53 0 DC 1.599
V54 54 0 DC 1.593
V55 55 0 DC 1.593
V56 56 0 DC 1.574
V57 57 0 DC 2.301
V58 58 0 DC 1.555
V59 59 0 DC 1.554
V60 60 0 DC 1.536
V61 61 0 DC 1.656
V62 62 0 DC 1.656
V63 63 0 DC 1.670
V64 64 0 DC 1.656
V65 65 0 DC 1.695
V66 66 0 DC 1.676
V67 67 0 DC 1.676
V68 68 0 DC 1.656
V69 69 0 DC 1.656
V70 70 0 DC 1.637
V71 71 0 DC 1.632
V72 72 0 DC 1.613
V73 73 0 DC 1.599
V74 74 0 DC 1.593
V75 75 0 DC 1.575
V76 76 0 DC 1.715
V77 77 0 DC 1.714
V78 78 0 DC 1.714
V79 79 0 DC 1.700
V80 80 0 DC 1.695
V81 81 0 DC 1.676
V82 82 0 DC 1.714
V83 83 0 DC 1.694
V84 84 0 DC 1.676
V85 85 0 DC 1.656
V86 86 0 DC 1.652
V87 87 0 DC 1.777
V88 88 0 DC 1.777
V89 89 0 DC 1.777
V90 90 0 DC 1.772
V91 91 0 DC 1.753
V92 92 0 DC 1.753
V93 93 0 DC 1.739
V94 94 0 DC 1.777
V95 95 0 DC 1.772
V96 96 0 DC 1.772
V97 97 0 DC 1.816
V98 98 0 DC 1.816
V99 99 0 DC 1.816
V100 100 0 DC 1.816
V101 101 0 DC 1.816
V102 102 0 DC 1.796
V103 103 0 DC 1.796
V104 104 0 DC 1.796
V105 105 0 DC 1.796
V106 106 0 DC 1.792
V107 107 0 DC 1.911
V108 108 0 DC 1.991
V109 109 0 DC 1.991
V110 110 0 DC 1.972
V111 111 0 DC 1.967
V112 112 0 DC 2.086
V113 113 0 DC 1.936
V114 114 0 DC 1.956
V115 115 0 DC 1.956
V116 116 0 DC 1.975
V117 117 0 DC 1.975
V118 118 0 DC 1.980
V119 119 0 DC 1.980
V120 120 0 DC 1.873
V121 121 0 DC 1.897
V122 122 0 DC 1.918
V123 123 0 DC 1.956
V124 124 0 DC 2.049
V125 125 0 DC 2.087
V126 126 0 DC 1.968
V127 127 0 DC 2.898
V128 128 0 DC 2.353
V129 129 0 DC 3.835
V130 130 0 DC 5.000
V131 131 0 DC 4.917
V132 132 0 DC 4.908
V133 133 0 DC 4.896
V134 134 0 DC 4.887
V135 135 0 DC 4.871
V136 136 0 DC 4.858
V137 137 0 DC 4.745
V138 138 0 DC 4.676
V139 139 0 DC 4.622
V140 140 0 DC 4.553
V141 141 0 DC 4.497
V142 142 0 DC 4.438
V143 143 0 DC 2.469
V144 144 0 DC 2.473
V145 145 0 DC 4.268
V146 146 0 DC 4.230
V147 147 0 DC 4.174
V148 148 0 DC 4.098
V149 149 0 DC 4.059
V150 150 0 DC 4.021
V151 151 0 DC 3.964
V152 152 0 DC 3.923
V153 153 0 DC 3.870
V154 154 0 DC 3.831
V155 155 0 DC 3.778
V156 156 0 DC 3.752
V157 157 0 DC 3.716
V158 158 0 DC 3.677
V159 159 0 DC 3.661
V160 160 0 DC 3.640
V161 161 0 DC 3.625
V162 162 0 DC 3.563
V163 163 0 DC 3.524
V164 164 0 DC 3.485
V165 165 0 DC 3.432
V166 166 0 DC 3.392
V167 167 0 DC 3.353
V168 168 0 DC 3.338
V169 169 0 DC 3.299
V170 170 0 DC 3.278
V171 171 0 DC 3.258
V172 172 0 DC 3.223
V173 173 0 DC 3.203
V174 174 0 DC 3.202
V175 175 0 DC 3.182
V176 176 0 DC 3.181
V177 177 0 DC 3.147
V178 178 0 DC 3.124
V179 179 0 DC 3.089
V180 180 0 DC 3.049
V181 181 0 DC 3.010
V182 182 0 DC 2.995
V183 183 0 DC 2.974
V184 184 0 DC 2.954
V185 185 0 DC 2.919
V186 186 0 DC 2.899
V187 187 0 DC 2.878
V188 188 0 DC 2.878
V189 189 0 DC 2.859
V190 190 0 DC 2.857
V191 191 0 DC 2.859
V192 192 0 DC 2.859
V193 193 0 DC 2.880
V194 194 0 DC 2.841
V195 195 0 DC 2.787
V196 196 0 DC 2.747
V197 197 0 DC 2.707
V198 198 0 DC 2.653
V199 199 0 DC 2.629
V200 200 0 DC 2.608
V201 201 0 DC 2.588
V202 202 0 DC 2.573
V203 203 0 DC 2.553
V204 204 0 DC 2.553
V205 205 0 DC 2.552
V206 206 0 DC 2.553
V207 207 0 DC 2.572
V208 208 0 DC 2.595
V209 209 0 DC 2.574
V210 210 0 DC 2.539
V211 211 0 DC 2.500
V212 212 0 DC 2.495
V213 213 0 DC 2.459
V214 214 0 DC 2.440
V215 215 0 DC 2.419
V216 216 0 DC 2.399
V217 217 0 DC 2.384
V218 218 0 DC 2.378
V219 219 0 DC 2.364
V220 220 0 DC 2.363
V221 221 0 DC 2.378
V222 222 0 DC 2.382
V223 223 0 DC 2.382
V224 224 0 DC 2.384
V225 225 0 DC 2.403
V226 226 0 DC 2.380
V227 227 0 DC 2.343
V228 228 0 DC 2.304
V229 229 0 DC 2.265
V230 230 0 DC 2.249
V231 231 0 DC 2.230
V232 232 0 DC 2.209
V233 233 0 DC 2.210
V234 234 0 DC 2.210
V235 235 0 DC 2.209
V236 236 0 DC 2.209
V237 237 0 DC 2.209
V238 238 0 DC 2.209
V239 239 0 DC 2.209
V240 240 0 DC 2.230
V241 241 0 DC 2.230
V242 242 0 DC 2.210
V243 243 0 DC 2.189
V244 244 0 DC 2.189
V245 245 0 DC 2.169
V246 246 0 DC 2.148
V247 247 0 DC 2.133
V248 248 0 DC 2.113
V249 249 0 DC 2.113
V250 250 0 DC 2.113
V251 251 0 DC 2.113
V252 252 0 DC 2.113
V253 253 0 DC 2.113
V254 254 0 DC 2.113
V255 255 0 DC 2.113
V256 256 0 DC 2.133
R1 257 0 1000
R2 258 0 1000
R3 259 0 1000
R4 260 0 1000
R5 261 257 100
R6 262 257 100
R7 263 257 100
R8 264 257 100
R9 265 257 100
R10 266 257 100
R11 267 257 100
R12 268 257 100
R13 269 257 100
R14 270 257 100
R15 271 257 100
R16 272 257 100
R17 273 257 100
R18 274 257 100
R19 275 257 100
R20 276 257 100
R21 277 257 100
R22 278 257 100
R23 279 257 100
R24 280 257 100
R25 281 257 100
R26 282 257 100
R27 283 257 100
R28 284 257 100
R29 285 257 100
R30 286 257 100
R31 287 257 100
R32 288 257 100
R33 289 257 100
R34 290 257 100
R35 291 257 100
R36 292 257 100
R37 293 257 100
R38 294 257 100
R39 295 257 100
R40 296 257 100
R41 297 257 100
R42 298 257 100
R43 299 257 100
R44 300 257 100
R45 301 257 100
R46 302 257 100
R47 303 257 100
R48 304 257 100
R49 305 257 100
R50 306 257 100
R51 307 257 100
R52 308 257 100
R53 309 257 100
R54 310 257 100
R55 311 257 100
R56 312 257 100
R57 313 257 100
R58 314 257 100
R59 315 257 100
R60 316 257 100
R61 317 257 100
R62 318 257 100
R63 319 257 100
R64 320 257 100
R65 321 257 100
R66 322 257 100
R67 323 257 100
R68 324 257 100
R69 325 258 100
R70 326 258 100
R71 327 258 100
R72 328 258 100
R73 329 258 100
R74 330 258 100
R75 331 258 100
R76 332 258 100
R77 333 258 100
R78 334 258 100
R79 335 258 100
R80 336 258 100
R81 337 258 100
R82 338 258 100
R83 339 258 100
R84 340 258 100
R85 341 258 100
R86 342 258 100
R87 343 258 100
R88 344 258 100
R89 345 258 100
R90 346 258 100
R91 347 258 100
R92 348 258 100
R93 349 258 100
R94 350 258 100
R95 351 258 100
R96 352 258 100
R97 353 258 100
R98 354 258 100
R99 355 258 100
R100 356 258 100
R101 357 258 100
R102 358 258 100
R103 359 258 100
R104 360 258 100
R105 361 258 100
R106 362 258 100
R107 363 258 100
R108 364 258 100
R109 365 258 100
R110 366 258 100
R111 367 258 100
R112 368 258 100
R113 369 258 100
R114 370 258 100
R115 371 258 100
R116 372 258 100
R117 373 258 100
R118 374 258 100
R119 375 258 100
R120 376 258 100
R121 377 258 100
R122 378 258 100
R123 379 258 100
R124 380 258 100
R125 381 258 100
R126 382 258 100
R127 383 258 100
R128 384 258 100
R129 385 258 100
R130 386 258 100
R131 387 258 100
R132 388 258 100
R133 389 259 100
R134 390 259 100
R135 391 259 100
R136 392 259 100
R137 393 259 100
R138 394 259 100
R139 395 259 100
R140 396 259 100
R141 397 259 100
R142 398 259 100
R143 399 259 100
R144 400 259 100
R145 401 259 100
R146 402 259 100
R147 403 259 100
R148 404 259 100
R149 405 259 100
R150 406 259 100
R151 407 259 100
R152 408 259 100
R153 409 259 100
R154 410 259 100
R155 411 259 100
R156 412 259 100
R157 413 259 100
R158 414 259 100
R159 415 259 100
R160 416 259 100
R161 417 259 100
R162 418 259 100
R163 419 259 100
R164 420 259 100
R165 421 259 100
R166 422 259 100
R167 423 259 100
R168 424 259 100
R169 425 259 100
R170 426 259 100
R171 427 259 100
R172 428 259 100
R173 429 259 100
R174 430 259 100
R175 431 259 100
R176 432 259 100
R177 433 259 100
R178 434 259 100
R179 435 259 100
R180 436 259 100
R181 437 259 100
R182 438 259 100
R183 439 259 100
R184 440 259 100
R185 441 259 100
R186 442 259 100
R187 443 259 100
R188 444 259 100
R189 445 259 100
R190 446 259 100
R191 447 259 100
R192 448 259 100
R193 449 259 100
R194 450 259 100
R195 451 259 100
R196 452 259 100
R197 453 260 100
R198 454 260 100
R199 455 260 100
R200 456 260 100
R201 457 260 100
R202 458 260 100
R203 459 260 100
R204 460 260 100
R205 461 260 100
R206 462 260 100
R207 463 260 100
R208 464 260 100
R209 465 260 100
R210 466 260 100
R211 467 260 100
R212 468 260 100
R213 469 260 100
R214 470 260 100
R215 471 260 100
R216 472 260 100
R217 473 260 100
R218 474 260 100
R219 475 260 100
R220 476 260 100
R221 477 260 100
R222 478 260 100
R223 479 260 100
R224 480 260 100
R225 481 260 100
R226 482 260 100
R227 483 260 100
R228 484 260 100
R229 485 260 100
R230 486 260 100
R231 487 260 100
R232 488 260 100
R233 489 260 100
R234 490 260 100
R235 491 260 100
R236 492 260 100
R237 493 260 100
R238 494 260 100
R239 495 260 100
R240 496 260 100
R241 497 260 100
R242 498 260 100
R243 499 260 100
R244 500 260 100
R245 501 260 100
R246 502 260 100
R247 503 260 100
R248 504 260 100
R249 505 260 100
R250 506 260 100
R251 507 260 100
R252 508 260 100
R253 509 260 100
R254 510 260 100
R255 511 260 100
R256 512 260 100
R257 513 260 100
R258 514 260 100
R259 515 260 100
R260 516 260 100
V257 517 0 DC 0
V258 518 0 DC 0
V259 519 0 DC 0
V260 520 0 DC 0
V261 521 0 DC 0
V262 522 0 DC 0
R261 523 517 100
R262 524 517 100
R263 525 517 100
R264 526 517 100
R265 527 517 100
R266 528 517 100
R267 529 517 100
R268 530 517 100
R269 531 517 100
R270 532 517 100
R271 533 517 100
R272 534 517 100
R273 535 517 100
R274 536 517 100
R275 537 517 100
R276 538 517 100
R277 539 517 100
R278 540 517 100
R279 541 517 100
R280 542 517 100
R281 543 517 100
R282 544 517 100
R283 545 517 100
R284 546 517 100
R285 547 517 100
R286 548 517 100
R287 549 517 100
R288 550 517 100
R289 551 517 100
R290 552 517 100
R291 553 517 100
R292 554 517 100
R293 555 518 100
R294 556 518 100
R295 557 518 100
R296 558 518 100
R297 559 518 100
R298 560 518 100
R299 561 518 100
R300 562 518 100
R301 563 518 100
R302 564 518 100
R303 565 518 100
R304 566 518 100
R305 567 518 100
R306 568 518 100
R307 569 518 100
R308 570 518 100
R309 571 518 100
R310 572 518 100
R311 573 518 100
R312 574 518 100
R313 575 518 100
R314 576 518 100
R315 577 518 100
R316 578 518 100
R317 579 518 100
R318 580 518 100
R319 581 518 100
R320 582 518 100
R321 583 518 100
R322 584 518 100
R323 585 518 100
R324 586 518 100
R325 587 519 100
R326 588 519 100
R327 589 519 100
R328 590 519 100
R329 591 519 100
R330 592 519 100
R331 593 519 100
R332 594 519 100
R333 595 519 100
R334 596 519 100
R335 597 519 100
R336 598 519 100
R337 599 519 100
R338 600 519 100
R339 601 519 100
R340 602 519 100
R341 603 519 100
R342 604 519 100
R343 605 519 100
R344 606 519 100
R345 607 519 100
R346 608 519 100
R347 609 519 100
R348 610 519 100
R349 611 519 100
R350 612 519 100
R351 613 519 100
R352 614 519 100
R353 615 519 100
R354 616 519 100
R355 617 519 100
R356 618 519 100
R357 619 520 100
R358 620 520 100
R359 621 520 100
R360 622 520 100
R361 623 520 100
R362 624 520 100
R363 625 520 100
R364 626 520 100
R365 627 520 100
R366 628 520 100
R367 629 520 100
R368 630 520 100
R369 631 520 100
R370 632 520 100
R371 633 520 100
R372 634 520 100
R373 635 520 100
R374 636 520 100
R375 637 520 100
R376 638 520 100
R377 639 520 100
R378 640 520 100
R379 641 520 100
R380 642 520 100
R381 643 520 100
R382 644 520 100
R383 645 520 100
R384 646 520 100
R385 647 520 100
R386 648 520 100
R387 649 520 100
R388 650 520 100
R389 651 521 100
R390 652 521 100
R391 653 521 100
R392 654 521 100
R393 655 521 100
R394 656 521 100
R395 657 521 100
R396 658 521 100
R397 659 521 100
R398 660 521 100
R399 661 521 100
R400 662 521 100
R401 663 521 100
R402 664 521 100
R403 665 521 100
R404 666 521 100
R405 667 521 100
R406 668 521 100
R407 669 521 100
R408 670 521 100
R409 671 521 100
R410 672 521 100
R411 673 521 100
R412 674 521 100
R413 675 521 100
R414 676 521 100
R415 677 521 100
R416 678 521 100
R417 679 521 100
R418 680 521 100
R419 681 521 100
R420 682 521 100
R421 683 522 100
R422 684 522 100
R423 685 522 100
R424 686 522 100
R425 687 522 100
R426 688 522 100
R427 689 522 100
R428 690 522 100
R429 691 522 100
R430 692 522 100
R431 693 522 100
R432 694 522 100
R433 695 522 100
R434 696 522 100
R435 697 522 100
R436 698 522 100
R437 699 522 100
R438 700 522 100
R439 701 522 100
R440 702 522 100
R441 703 522 100
R442 704 522 100
R443 705 522 100
R444 706 522 100
R445 707 522 100
R446 708 522 100
R447 709 522 100
R448 710 522 100
R449 711 522 100
R450 712 522 100
R451 713 522 100
R452 714 522 100
V264 683 0 DC 0
V265 684 0 DC 0
V266 685 0 DC 0
V267 686 0 DC 0
V268 687 0 DC 0
R453 688 0 1000
R454 689 0 1000
R455 690 0 1000
R456 691 0 1000
R457 692 0 1000
R458 693 0 1000
R459 694 0 1000
R460 695 0 1000
R461 696 688 100
R462 697 688 100
R463 698 688 100
R464 699 688 100
R465 700 688 100
R466 701 688 100
R467 702 688 100
R468 703 688 100
R469 704 688 100
R470 705 688 100
R471 706 688 100
R472 707 688 100
R473 708 688 100
R474 709 688 100
R475 710 688 100
R476 711 688 100
R477 712 688 100
R478 713 688 100
R479 714 688 100
R480 715 688 100
R481 716 688 100
R482 717 688 100
R483 718 688 100
R484 719 688 100
R485 720 688 100
R486 721 688 100
R487 722 688 100
R488 723 688 100
R489 724 688 100
R490 725 688 100
R491 726 688 100
R492 727 688 100
R493 728 689 100
R494 729 689 100
R495 730 689 100
R496 731 689 100
R497 732 689 100
R498 733 689 100
R499 734 689 100
R500 735 689 100
R501 736 689 100
R502 737 689 100
R503 738 689 100
R504 739 689 100
R505 740 689 100
R506 741 689 100
R507 742 689 100
R508 743 689 100
R509 744 689 100
R510 745 689 100
R511 746 689 100
R512 747 689 100
R513 748 689 100
R514 749 689 100
R515 750 689 100
R516 751 689 100
R517 752 689 100
R518 753 689 100
R519 754 689 100
R520 755 689 100
R521 756 689 100
R522 757 689 100
R523 758 689 100
R524 759 689 100
R525 760 690 100
R526 761 690 100
R527 762 690 100
R528 763 690 100
R529 764 690 100
R530 765 690 100
R531 766 690 100
R532 767 690 100
R533 768 690 100
R534 769 690 100
R535 770 690 100
R536 771 690 100
R537 772 690 100
R538 773 690 100
R539 774 690 100
R540 775 690 100
R541 776 690 100
R542 777 690 100
R543 778 690 100
R544 779 690 100
R545 780 690 100
R546 781 690 100
R547 782 690 100
R548 783 690 100
R549 784 690 100
R550 785 690 100
R551 786 690 100
R552 787 690 100
R553 788 690 100
R554 789 690 100
R555 790 690 100
R556 791 690 100
R557 792 691 100
R558 793 691 100
R559 794 691 100
R560 795 691 100
R561 796 691 100
R562 797 691 100
R563 798 691 100
R564 799 691 100
R565 800 691 100
R566 801 691 100
R567 802 691 100
R568 803 691 100
R569 804 691 100
R570 805 691 100
R571 806 691 100
R572 807 691 100
R573 808 691 100
R574 809 691 100
R575 810 691 100
R576 811 691 100
R577 812 691 100
R578 813 691 100
R579 814 691 100
R580 815 691 100
R581 816 691 100
R582 817 691 100
R583 818 691 100
R584 819 691 100
R585 820 691 100
R586 821 691 100
R587 822 691 100
R588 823 691 100
R589 824 692 100
R590 825 692 100
R591 826 692 100
R592 827 692 100
R593 828 692 100
R594 829 692 100
R595 830 692 100
R596 831 692 100
R597 832 692 100
R598 833 692 100
R599 834 692 100
R600 835 692 100
R601 836 692 100
R602 837 692 100
R603 838 692 100
R604 839 692 100
R605 840 692 100
R606 841 692 100
R607 842 692 100
R608 843 692 100
R609 844 692 100
R610 845 692 100
R611 846 692 100
R612 847 692 100
R613 848 692 100
R614 849 692 100
R615 850 692 100
R616 851 692 100
R617 852 692 100
R618 853 692 100
R619 854 692 100
R620 855 692 100
R621 856 693 100
R622 857 693 100
R623 858 693 100
R624 859 693 100
R625 860 693 100
R626 861 693 100
R627 862 693 100
R628 863 693 100
R629 864 693 100
R630 865 693 100
R631 866 693 100
R632 867 693 100
R633 868 693 100
R634 869 693 100
R635 870 693 100
R636 871 693 100
R637 872 693 100
R638 873 693 100
R639 874 693 100
R640 875 693 100
R641 876 693 100
R642 877 693 100
R643 878 693 100
R644 879 693 100
R645 880 693 100
R646 881 693 100
R647 882 693 100
R648 883 693 100
R649 884 693 100
R650 885 693 100
R651 886 693 100
R652 887 693 100
R653 888 694 100
R654 889 694 100
R655 890 694 100
R656 891 694 100
R657 892 694 100
R658 893 694 100
R659 894 694 100
R660 895 694 100
R661 896 694 100
R662 897 694 100
R663 898 694 100
R664 899 694 100
R665 900 694 100
R666 901 694 100
R667 902 694 100
R668 903 694 100
R669 904 694 100
R670 905 694 100
R671 906 694 100
R672 907 694 100
R673 908 694 100
R674 909 694 100
R675 910 694 100
R676 911 694 100
R677 912 694 100
R678 913 694 100
R679 914 694 100
R680 915 694 100
R681 916 694 100
R682 917 694 100
R683 918 694 100
R684 919 694 100
R685 920 695 100
R686 921 695 100
R687 922 695 100
R688 923 695 100
R689 924 695 100
R690 925 695 100
R691 926 695 100
R692 927 695 100
R693 928 695 100
R694 929 695 100
R695 930 695 100
R696 931 695 100
R697 932 695 100
R698 933 695 100
R699 934 695 100
R700 935 695 100
R701 936 695 100
R702 937 695 100
R703 938 695 100
R704 939 695 100
R705 940 695 100
R706 941 695 100
R707 942 695 100
R708 943 695 100
R709 944 695 100
R710 945 695 100
R711 946 695 100
R712 947 695 100
R713 948 695 100
R714 949 695 100
R715 950 695 100
R716 951 695 100
V269 952 0 DC 2.510
V270 953 0 DC 2.613
V271 954 0 DC 2.709
V272 955 0 DC 2.768
V273 956 0 DC 2.788
V274 957 0 DC 2.768
V275 958 0 DC 2.690
V276 959 0 DC 2.593
V277 960 0 DC 2.471
V278 961 0 DC 2.355
V279 962 0 DC 2.244
V280 963 0 DC 2.162
V281 964 0 DC 2.083
V282 965 0 DC 2.006
V283 966 0 DC 1.963
V284 967 0 DC 1.764
V285 968 0 DC 2.593
V286 969 0 DC 2.690
V287 970 0 DC 2.768
V288 971 0 DC 2.807
V289 972 0 DC 2.609
V290 973 0 DC 2.589
V291 974 0 DC 2.530
V292 975 0 DC 2.438
V293 976 0 DC 2.337
V294 977 0 DC 2.239
V295 978 0 DC 2.142
V296 979 0 DC 2.079
V297 980 0 DC 2.006
V298 981 0 DC 1.948
V299 982 0 DC 1.904
V300 983 0 DC 1.870
V301 984 0 DC 2.410
V302 985 0 DC 2.510
V303 986 0 DC 2.589
V304 987 0 DC 2.632
V305 988 0 DC 2.632
V306 989 0 DC 2.613
V307 990 0 DC 2.536
V308 991 0 DC 2.453
V309 992 0 DC 2.337
V310 993 0 DC 2.239
V311 994 0 DC 2.020
V312 995 0 DC 1.943
V313 996 0 DC 1.904
V314 997 0 DC 1.865
V315 998 0 DC 1.827
V316 999 0 DC 1.807
V317 1000 0 DC 2.356
V318 1001 0 DC 2.453
V319 1002 0 DC 2.510
V320 1003 0 DC 2.530
V321 1004 0 DC 2.530
V322 1005 0 DC 2.477
V323 1006 0 DC 2.293
V324 1007 0 DC 2.221
V325 1008 0 DC 2.138
V326 1009 0 DC 2.061
V327 1010 0 DC 2.001
V328 1011 0 DC 1.943
V329 1012 0 DC 1.886
V330 1013 0 DC 1.865
V331 1014 0 DC 1.827
V332 1015 0 DC 1.807
V333 1016 0 DC 2.134
V334 1017 0 DC 2.254
V335 1018 0 DC 2.356
V336 1019 0 DC 2.293
V337 1020 0 DC 2.307
V338 1021 0 DC 2.274
V339 1022 0 DC 2.254
V340 1023 0 DC 1.959
V341 1024 0 DC 1.915
V342 1025 0 DC 1.857
V343 1026 0 DC 1.823
V344 1027 0 DC 1.803
V345 1028 0 DC 1.803
V346 1029 0 DC 1.803
V347 1030 0 DC 1.682
V348 1031 0 DC 1.687
V349 1032 0 DC 1.157
V350 1033 0 DC 1.196
V351 1034 0 DC 1.234
V352 1035 0 DC 1.235
V353 1036 0 DC 1.190
V354 1037 0 DC 1.214
V355 1038 0 DC 1.099
V356 1039 0 DC 1.098
V357 1040 0 DC 1.078
V358 1041 0 DC 1.039
V359 1042 0 DC 1.019
V360 1043 0 DC 0.918
V361 1044 0 DC 1.827
V362 1045 0 DC 1.788
V363 1046 0 DC 1.764
V364 1047 0 DC 1.745
V365 1048 0 DC 0.000
V366 1049 0 DC 0.000
V367 1050 0 DC 0.000
V368 1051 0 DC 0.000
V369 1052 0 DC 0.000
V370 1053 0 DC 0.000
V371 1054 0 DC 0.000
V372 1055 0 DC 0.000
V373 1056 0 DC 0.000
V374 1057 0 DC 0.000
V375 1058 0 DC 0.000
V376 1059 0 DC 0.000
V377 1060 0 DC 1.663
V378 1061 0 DC 1.682
V379 1062 0 DC 1.682
V380 1063 0 DC 1.682
V381 1064 0 DC 0.000
V382 1065 0 DC 2.300
V383 1066 0 DC 3.513
V384 1067 0 DC 2.484
V385 1068 0 DC 2.464
V386 1069 0 DC 2.328
V387 1070 0 DC 2.368
V388 1071 0 DC 0.000
V389 1072 0 DC 0.000
V390 1073 0 DC 1.035
V391 1074 0 DC 1.935
V392 1075 0 DC 1.896
V393 1076 0 DC 1.740
V394 1077 0 DC 1.740
V395 1078 0 DC 1.740
V396 1079 0 DC 1.586
V397 1080 0 DC 0.000
V398 1081 0 DC 2.375
V399 1082 0 DC 4.755
V400 1083 0 DC 4.759
V401 1084 0 DC 4.773
V402 1085 0 DC 4.791
V403 1086 0 DC 4.791
V404 1087 0 DC 0.000
V405 1088 0 DC 0.000
V406 1089 0 DC 2.376
V407 1090 0 DC 4.763
V408 1091 0 DC 4.790
V409 1092 0 DC 4.785
V410 1093 0 DC 4.771
V411 1094 0 DC 4.776
V412 1095 0 DC 4.757
V413 1096 0 DC 4.150
V414 1097 0 DC 4.150
V415 1098 0 DC 4.150
V416 1099 0 DC 4.150
V417 1100 0 DC 4.136
V418 1101 0 DC 4.136
V419 1102 0 DC 4.132
V420 1103 0 DC 2.071
V421 1104 0 DC 2.065
V422 1105 0 DC 2.051
V423 1106 0 DC 4.082
V424 1107 0 DC 4.079
V425 1108 0 DC 4.062
V426 1109 0 DC 4.061
V427 1110 0 DC 4.044
V428 1111 0 DC 4.060
V429 1112 0 DC 3.741
V430 1113 0 DC 3.757
V431 1114 0 DC 3.741
V432 1115 0 DC 3.737
V433 1116 0 DC 3.723
V434 1117 0 DC 3.718
V435 1118 0 DC 3.702
V436 1119 0 DC 3.683
V437 1120 0 DC 3.681
V438 1121 0 DC 3.662
V439 1122 0 DC 3.645
V440 1123 0 DC 3.639
V441 1124 0 DC 3.622
V442 1125 0 DC 3.603
V443 1126 0 DC 3.605
V444 1127 0 DC 3.604
V445 1128 0 DC 3.474
V446 1129 0 DC 3.474
V447 1130 0 DC 3.456
V448 1131 0 DC 3.454
V449 1132 0 DC 3.436
V450 1133 0 DC 3.416
V451 1134 0 DC 3.415
V452 1135 0 DC 3.400
V453 1136 0 DC 3.380
V454 1137 0 DC 3.359
V455 1138 0 DC 3.358
V456 1139 0 DC 3.338
V457 1140 0 DC 3.323
V458 1141 0 DC 3.316
V459 1142 0 DC 3.300
V460 1143 0 DC 3.299
V461 1144 0 DC 3.264
V462 1145 0 DC 3.244
V463 1146 0 DC 3.211
V464 1147 0 DC 3.205
V465 1148 0 DC 3.185
V466 1149 0 DC 3.170
V467 1150 0 DC 3.152
V468 1151 0 DC 3.131
V469 1152 0 DC 3.129
V470 1153 0 DC 3.110
V471 1154 0 DC 3.094
V472 1155 0 DC 3.089
V473 1156 0 DC 3.073
V474 1157 0 DC 3.086
V475 1158 0 DC 3.090
V476 1159 0 DC 3.089
V477 1160 0 DC 3.072
V478 1161 0 DC 3.072
V479 1162 0 DC 3.052
V480 1163 0 DC 3.037
V481 1164 0 DC 3.033
V482 1165 0 DC 3.017
V483 1166 0 DC 2.998
V484 1167 0 DC 2.978
V485 1168 0 DC 2.977
V486 1169 0 DC 2.956
V487 1170 0 DC 2.940
V488 1171 0 DC 2.921
V489 1172 0 DC 2.919
V490 1173 0 DC 2.918
V491 1174 0 DC 2.898
V492 1175 0 DC 2.883
V493 1176 0 DC 2.943
V494 1177 0 DC 2.923
V495 1178 0 DC 2.904
V496 1179 0 DC 2.898
V497 1180 0 DC 2.898
V498 1181 0 DC 2.883
V499 1182 0 DC 2.863
V500 1183 0 DC 2.848
V501 1184 0 DC 2.842
V502 1185 0 DC 2.827
V503 1186 0 DC 2.821
V504 1187 0 DC 2.801
V505 1188 0 DC 2.785
V506 1189 0 DC 2.765
V507 1190 0 DC 2.765
V508 1191 0 DC 2.764
V509 1192 0 DC 2.842
V510 1193 0 DC 2.828
V511 1194 0 DC 2.824
V512 1195 0 DC 2.822
V513 1196 0 DC 2.803
V514 1197 0 DC 2.787
V515 1198 0 DC 2.768
V516 1199 0 DC 2.766
V517 1200 0 DC 2.747
V518 1201 0 DC 2.727
V519 1202 0 DC 2.727
V520 1203 0 DC 2.706
V521 1204 0 DC 2.691
V522 1205 0 DC 2.671
V523 1206 0 DC 2.670
V524 1207 0 DC 2.650
*start scheme
R717 260 1 100
C1 254 340 100m
X2 180 877 593 TRANS_SAFE
X3 781 280 DIODE_SAFE
L1 331 340 223m
L2 607 435 100m
R718 822 21 100m
R719 3 112 100m
L3 555 479 776m
L4 815 304 100m
C2 135 503 100m
L5 56 581 100m
L6 785 268 100m
R720 845 947 100m
L7 776 2 100m
L8 3 765 100m
C3 505 784 100m
X4 632 561 DIODE_SAFE
C4 914 350 100m
L9 241 890 100m
X5 669 467 208 TRANS_SAFE
L10 131 913 100m
X6 286 138 126 TRANS_SAFE
R721 190 707 100m
.TRAN 1 1.5 1 1
.control
set filetype=ascii
set rchar=","
run
print v(257) v(258) > output_1.txt
print v(259) v(260) > output_1.txt.ctl
print v(688) v(689) > output_1.txt.or1
print v(690) v(691) > output_1.txt.or2
print v(692) v(693) > output_1.txt.or3
print v(694) v(695) > output_1.txt.or4
.endc
.end
Давайте посмотрим, как в программе устроены случайные изменения («мутации»).
Это как "генератор случайных изменений" для мозга машинки - он может добавить новую часть, убрать существующую, изменить её свойства или переставить в другое место.
"генератор случайных изменений" для мозга машинки
public string mutationCurcuit(string circuit)
{
Int a = UnityEngine.Random.Range(0,100);
string s = “”;
If(a<70)
{
s=mutationAddCurcuit(circuit);
}
else if(a<80)
{
s=mutationDeleteCurcuit(circuit);
}
else if(a<90)
{
s=mutationChangeCurcuit(circuit);
}
else
{
s=mutationMoveCurcuit(circuit);
}
return s;
}
Рассмотрим каждую функцию по отдельности.
Первой будет рассмотрена функция,которая перемещает радиоэлемент в случайное место
Этот код описывает номер трансформатора. Находится максимальный номер трансформатора
код описывает номер трансформатора.
public string mutationMoveCurcuit(string circuit)
{
List<string> arr = new List<string>(circuit.Split('\n'));
List<string> code = new List<string>();
Dictionary<char, int> radioElement = new Dictionary<char, int>();
List<char> element = new List<char>() { 'R', 'C', 'L', 'K','X' };
radioElement['R'] = 0;
radioElement['C'] = 0;
radioElement['L'] = 0;
radioElement['K'] = 0;
radioElement['X'] = 0;
int k = 0;
bool flag2 = false;
int max = 0;
for(int i = 0;i<arr.Count;i++)
{
if (string.IsNullOrEmpty(arr[i]))
break;
if (arr[i][0] == 'K')
{
int value = Convert.ToInt32(arr[i].Split(' ')[0].Substring(1));
if (radioElement[arr[i][0]] < value)
radioElement[arr[i][0]] = value;
}
Этот код находит максимальный номер транзистора или диода(которые загружаются через .subckt в связке с резисторами)
код находит максимальный номер транзистора или диода
if (arr[i][0] == 'X')
{
int value = Convert.ToInt32(arr[i].Split(' ')[0].Substring(1));
if (radioElement[arr[i][0]] < value)
radioElement[arr[i][0]] = value;
string[] r = arr[i].Split(' ');
if (r[r.Length - 1] == "TRANS_SAFE")
{
if (max < Convert.ToInt32(arr[i].Split(' ')[1]))
max = Convert.ToInt32(arr[i].Split(' ')[1]);
if (max < Convert.ToInt32(arr[i].Split(' ')[2]))
max = Convert.ToInt32(arr[i].Split(' ')[2]);
if (max < Convert.ToInt32(arr[i].Split(' ')[3]))
max = Convert.ToInt32(arr[i].Split(' ')[3]);
}
if (r[r.Length - 1] == "DIODE_SAFE")
{
if (max < Convert.ToInt32(arr[i].Split(' ')[1]))
max = Convert.ToInt32(arr[i].Split(' ')[1]);
if (max < Convert.ToInt32(arr[i].Split(' ')[2]))
max = Convert.ToInt32(arr[i].Split(' ')[2]);
}
}
Этот код находит максимальный номер сопротивления, конденсатора, индуктивности.
код находит максимальный номер сопротивления, конденсатора, индуктивности.
if (arr[i][0] == 'R' || arr[i][0] == 'C' || arr[i][0] == 'L')
{
int value = Convert.ToInt32(arr[i].Split(' ')[0].Substring(1));
if (radioElement[arr[i][0]] < value)
radioElement[arr[i][0]] = value;
if (max < Convert.ToInt32(arr[i].Split(' ')[1]))
max = Convert.ToInt32(arr[i].Split(' ')[1]);
if (max < Convert.ToInt32(arr[i].Split(' ')[2]))
max = Convert.ToInt32(arr[i].Split(' ')[2]);
}
Этот код считывает схему после строки *start scheme
код считывает схему после строки *start scheme
if (arr[i][0] == '.' &&
arr[i][1] == 'T' &&
arr[i][2] == 'R' &&
arr[i][3] == 'A' &&
arr[i][4] == 'N')
{
max++;
}
}
for (int i = 0; i < arr.Count; i++)
{
if (arr[i] == "*start scheme")
{
k = i + 1;
flag2 = true;
continue;
}
if (!string.IsNullOrEmpty(arr[i]))
{
if (arr[i][0] == '.' &&
arr[i][1] == 'T' &&
arr[i][2] == 'R' &&
arr[i][3] == 'A' &&
arr[i][4] == 'N')
{
break;
}
}
if (flag2) code.Add(arr[i]);
Этот код меняет расположение резистора,конденсатора,индуктивности
код меняет расположение резистора,конденсатора,индуктивности
}
int move = UnityEngine.Random.Range(0, code.Count);
string val = "";
if (code.Count > 0)
{
int r1 = 0, r2 = 0,r3=0;
while (true)
{
r1 = UnityEngine.Random.Range(0, max);
r2 = UnityEngine.Random.Range(0, max);
r3 = UnityEngine.Random.Range(0, max);
if (r1 == r2||r2==r3)
continue;
else
break;
}
string[] a = arr[move + k].Split(' ');
if (a[0][0] != 'K')
{
if (a[0][0] != 'X')
{
a[a.Length - 2] = r1.ToString();
a[a.Length - 3] = r2.ToString();
}
Этот код меняет положение диода
код меняет положение диода
else
{
if (a[a.Length - 1] == "DIODE_SAFE")
{
a[a.Length - 2] = r1.ToString();
a[a.Length - 3] = r2.ToString();
}
Этот код меняет расположение транзистора
код меняет расположение транзистора
else if(a[a.Length-1]== "TRANS_SAFE")
{
a[a.Length - 2] = r1.ToString();
a[a.Length - 3] = r2.ToString();
a[a.Length - 4] = r3.ToString();
}
}
}
Этот код добавляет трансформатор(формируется из двух индуктиностей,если они есть)
код добавляет трансформатор
else
{
if (radioElement['L'] >= 2)
{
int k1 = 0, k2 = 0;
while (true)
{
k1 = UnityEngine.Random.Range(1, radioElement['L']+1);
k2 = UnityEngine.Random.Range(1, radioElement['L']+1);
if (k1 == k2)
continue;
a[a.Length - 2] = "L" + k1.ToString();
a[a.Length - 3] = "L" + k2.ToString();
break;
}
}
}
Это конец функции mutationMoveCurcuit
конец функции mutationMoveCurcuit
val = string.Join(" ", a);
arr[move + k] = val;
}
return string.Join("\n", arr.ToArray());
}
}
}
}
Этот код меняет параметры деталей в радиосхеме.
Этот код считывает радиосхему,начиная с комментария start scheme
public string mutationChangeCurcuit(string circuit)
{
List<string> arr = new List<string>(circuit.Split('\n'));
List<string> code = new List<string>();
int k = 0;
bool flag2 = false;
for (int i = 0; i < arr.Count; i++)
{
if (arr[i] == "*start scheme")
{
k = i + 1;
flag2 = true;
continue;
}
Эта программа случайно изменяет характеристики резисторов, конденсаторов или катушек
программа случайно изменяет характеристики резисторов, конденсаторов или катушек
if (!string.IsNullOrEmpty(arr[i]))
{
if (arr[i][0] == '.' &&
arr[i][1] == 'T' &&
arr[i][2] == 'R' &&
arr[i][3] == 'A' &&
arr[i][4] == 'N')
{
break;
}
}
if (flag2) code.Add(arr[i]);
}
int changed = UnityEngine.Random.Range(0, code.Count-1);
string val="";
if (code.Count > 0)
{
string[] a = arr[changed + k].Split(' ');
if (a[0][0] != 'K' && a[0][0]!='X')
{
int value = UnityEngine.Random.Range(1, 1000);
a[a.Length - 1] = value.ToString() + "m";
val = string.Join(" ", a);
arr[changed + k] = val;
}
Это конец функции
конец функции mutationChangeCurcuit
}
return string.Join("\n", arr.ToArray());
}
Это функция mutationDeleteCurcuit.Она удаляет случайный радиоэлемент
Этот код читает описание схемы после строки *start scheme
код читает описание схемы после строки *start scheme
public string mutationDeleteCurcuit(string circuit)
{
List<string> arr = new List<string>(circuit.Split('\n'));
List<string> code = new List<string>();
int k = 0;
bool flag2 = false;
for (int i = 0; i < arr.Count; i++)
{
if (arr[i] == "*start scheme")
{
k = i + 1;
flag2 = true;
continue;
}
if (!string.IsNullOrEmpty(arr[i]))
{
if (arr[i][0] == '.' &&
arr[i][1] == 'T' &&
arr[i][2] == 'R' &&
arr[i][3] == 'A' &&
arr[i][4] == 'N')
{
break;
}
}
if (flag2) code.Add(arr[i]);
И удаляет случайный радиоэлемент
удаляет случайный радиоэлемент
int deleted = UnityEngine.Random.Range(0, code.Count-1);
if(code.Count>0)
arr.RemoveAt(deleted+k);
return string.Join("\n", arr.ToArray());
}
Эта функция добавляет случайный радиоэлемент Этот код считает номер трансформатора
код считает номер трансформатора
public string mutationAddCurcuit(string circuit)
{
List<string> arr = new List<string>(circuit.Split('\n'));
Dictionary<char,int> radioElement = new Dictionary<char, int>();
List<char> element = new List<char>() { 'R', 'C','L','K','X' };
radioElement['R'] = 0;
radioElement['C'] = 0;
radioElement['L'] = 0;
radioElement['K'] = 0;
radioElement['X'] = 0;
//find max value
//add 1
//random
int max = 0;
for (int i = 0; i < arr.Count; i++)
{
if (!string.IsNullOrEmpty(arr[i]))
{
if (arr[i][0] == 'K')
{
int value = Convert.ToInt32(arr[i].Split(' ')[0].Substring(1));
if (radioElement[arr[i][0]] < value)
radioElement[arr[i][0]] = value;
Этот код определяет, сколько всего транзисторов и диодов в схеме.
код определяет, сколько всего транзисторов и диодов в схеме.
}
if (arr[i][0] == 'X')
{
int value = Convert.ToInt32(arr[i].Split(' ')[0].Substring(1));
if (radioElement[arr[i][0]] < value)
radioElement[arr[i][0]] = value;
string[] r = arr[i].Split(' ');
if (r[r.Length - 1] == "TRANS_SAFE")
{
if (max < Convert.ToInt32(arr[i].Split(' ')[1]))
max = Convert.ToInt32(arr[i].Split(' ')[1]);
if (max < Convert.ToInt32(arr[i].Split(' ')[2]))
max = Convert.ToInt32(arr[i].Split(' ')[2]);
if (max < Convert.ToInt32(arr[i].Split(' ')[3]))
max = Convert.ToInt32(arr[i].Split(' ')[3]);
}
if (r[r.Length - 1] == "DIODE_SAFE")
{
if (max < Convert.ToInt32(arr[i].Split(' ')[1]))
max = Convert.ToInt32(arr[i].Split(' ')[1]);
if (max < Convert.ToInt32(arr[i].Split(' ')[2]))
max = Convert.ToInt32(arr[i].Split(' ')[2]);
}
Этот код определяет: Сколько всего деталей (резисторов, конденсаторов, катушек) К каким узлам схемы они подключены
определяет:сколько всего деталей
}
if (arr[i][0] == 'R' || arr[i][0] == 'C' || arr[i][0] == 'L')
{
int value = Convert.ToInt32(arr[i].Split(' ')[0].Substring(1));
if (radioElement[arr[i][0]] < value)
radioElement[arr[i][0]] = value;
if (max < Convert.ToInt32(arr[i].Split(' ')[1]))
max = Convert.ToInt32(arr[i].Split(' ')[1]);
if (max < Convert.ToInt32(arr[i].Split(' ')[2]))
max = Convert.ToInt32(arr[i].Split(' ')[2]);
Мы заранее резервируем номера для будущих деталей, чтобы схему можно было свободно расширять.
резервируем номера для будущих деталей
}
if (arr[i][0] == '.' &&
arr[i][1] == 'T' &&
arr[i][2] == 'R' &&
arr[i][3] == 'A' &&
arr[i][4] == 'N')
{
max++;
max++;
Здесь мы добавляем случайно радиоэлемент в радиосхему(от транформаторов я позже отказался,но их добавлять также можно)
добавляем случайно радиоэлемент в радиосхему
int r1 = 0, r2 = 0,r3=0;
while (true)
{
r1 = UnityEngine.Random.Range(0, max);
r2 = UnityEngine.Random.Range(0, max);
r3 = UnityEngine.Random.Range(0, max);
if (r1 == r2||r2==r3)
continue;
int index = UnityEngine.Random.Range(0, element.Count);
char e = element[index];
int value = radioElement[e] + 1;
if (e == 'K')
{
continue;
/*
if (radioElement['L'] >= 2)
{
int k1 = 0, k2 = 0;
while (true)
{
k1 = UnityEngine.Random.Range(1, radioElement['L'] + 1);
k2 = UnityEngine.Random.Range(1, radioElement['L'] + 1);
if (k1 == k2)
continue;
arr.Insert(i, e.ToString() + value + " " + "L" + k1.ToString() + " " + "L" + k2.ToString() + " " + "0.99");
break;
}
}
*/
}
else if (e == 'L' || e == 'C' || e == 'R')
{
arr.Insert(i, e.ToString() + value + " " + r1.ToString() + " " + r2.ToString() + " " + "100m");
}
else if (e == 'X')
{
int rnd = UnityEngine.Random.Range(0, 2);
if (rnd == 0)
{
arr.Insert(i, e.ToString() + value + " " + r1.ToString() + " " + r2.ToString() + " " + "DIODE_SAFE");
}
else
{
arr.Insert(i, e.ToString() + value + " " + r1.ToString() + " " + r2.ToString() + " " + r3.ToString() + " " + "TRANS_SAFE");
}
}
break;
}
break;
}
}
}
print("max value" + max);
string result = string.Join("\n", arr.ToArray());
return result;
После того как мы научились изменять отдельные элементы, переходим к объединению целых схем(скрещиванию). Вот как устроена эта функция: Программа произвольно соединяет радиодетали между собой.
произвольно соединям радиодетали между собой.
string summoming(string data, string data2,string output)
{
List<string> arr = new List<string>(data.Split('\n'));
List<string> arr2 = new List<string>(data2.Split('\n'));
List<string> arr3 = new List<string>();
List<string> temp = new List<string>();
int r=1, c=1, l=1, k=1;
for (int i = 0; i < arr.Count; i++)
{
if (!string.IsNullOrEmpty(arr[i]))
{
if (arr[i][0] == '.' &&
arr[i][1] == 'T' &&
arr[i][2] == 'R' &&
arr[i][3] == 'A' &&
arr[i][4] == 'N')
{
break;
}
}
temp.Add(arr[i]);
}
arr = temp;
temp.Clear();
for (int i = 0; i < arr2.Count; i++)
{
if (!string.IsNullOrEmpty(arr2[i]))
{
if (arr2[i][0] == '.' &&
arr2[i][1] == 'T' &&
arr2[i][2] == 'R' &&
arr2[i][3] == 'A' &&
arr2[i][4] == 'N')
{
break;
}
}
temp.Add(arr2[i]);
}
arr2 = temp;
int max = arr.Count;
if (max < arr2.Count)
max = arr2.Count;
int min = 0;
if (min > arr2.Count)
min = arr2.Count;
for (int i = 0; i < min; i++)
{
if (arr[i] != arr2[i])
{
int j = UnityEngine.Random.Range(0, 2);
if (j == 0)
{
arr3.Add(arr[i]);
}
else
{
arr3.Add(arr2[i]);
}
}
else
{
arr3.Add(arr[i]);
}
}
Программа проверяет, нет ли ошибок в нумерации деталей.
проверка нет ли ошибок в нумерации деталей.
for (int i = min; i < max; i++)
{
if(arr.Count==max && arr2.Count==max)
{
arr3.Add(arr[i]);
}
if (arr.Count==min && arr2.Count == max)
{
arr3.Add(arr2[i]);
}
}
for (int j = 0; j < arr3.Count; j++)
{
if(!string.IsNullOrEmpty(arr3[j]))
{
if (arr3[j][0] == 'R')
{
int val = Convert.ToInt32((arr3[j].Split(' ')[0].Substring(1)));
if (val != r)
{
string s = "R" + r.ToString();
string[] ss = arr3[j].Split(' ');
ss[0] = s;
arr3[j]=string.Join(" ", ss);
}
r++;
}
if (arr3[j][0] == 'L')
{
int val = Convert.ToInt32((arr3[j].Split(' ')[0].Substring(1)));
if (val != l)
{
string s = "L" + l.ToString();
string[] ss = arr3[j].Split(' ');
ss[0] = s;
arr3[j] = string.Join(" ", ss);
}
l++;
}
if (arr3[j][0] == 'C')
{
int val = Convert.ToInt32((arr3[j].Split(' ')[0].Substring(1)));
if (val != c)
{
string s = "C" + c.ToString();
string[] ss = arr3[j].Split(' ');
ss[0] = s;
arr3[j] = string.Join(" ", ss);
}
c++;
}
if (arr3[j][0] == 'K')
{
int val = Convert.ToInt32((arr3[j].Split(' ')[0].Substring(1)));
if (val != k)
{
string s = "K" + k.ToString();
string[] ss = arr3[j].Split(' ');
ss[0] = s;
arr3[j] = string.Join(" ", ss);
}
k++;
}
}
}
Завершаем создание схемы и добавляем инструкции для её моделирования.
Конец функции
string str = string.Join("\n", arr3.ToArray());
str+=
".TRAN 1u 10u\n" +
".control\n" +
"set filetype=ascii\n" +
"set rchar=\",\"\n" +
"run\n" +
"print v(257) v(258) > " + output + "\n" +
"print v(259) v(260) > " + output + ".ctl" + "\n" +
"print v(688) v(689) > " + output + ".or1" + "\n" +
"print v(690) v(691) > " + output + ".or2" + "\n" +
"print v(692) v(693) > " + output + ".or3" + "\n" +
"print v(694) v(695) > " + output + ".or4" + "\n" +
".endc\n" +
".end\n";
return str;
}
Что можно сделать дальше (продолжение эксперимента):
Техническое улучшение: Переписать симулятор схем (NGspice) прямо на C# для Unity, чтобы всё работало быстрее и стабильнее в моей версии программы.
Обучение рисованию: Сделать из кубиков фигуры в виде цифр и букв и попробовать научить машинки тыкать в них или даже рисовать их самим.
Эксперимент "как у собаки Павлова":
Суть: Давать машинке сигнал (например, звук) каждый раз, когда она хватает определённую часть буквы или цифры.
Цель: Со временем, просто услышав этот звук, машинка должна "вспомнить" и нарисовать ту самую букву или цифру. Это будет как условный рефлекс у собак Павлова, но у машинок.
Идея, если эксперимент сработает:
Если машинки смогут так научиться, то этот метод можно применить и для людей.
Например, строить в парках большие памятники в виде букв и цифр, которые складываются в строки из важных книг (художественных или технических).
Как это поможет: Человек, прогуливаясь мимо таких памятников, будет невольно запоминать информацию. Это будет работать как тренажёр для памяти, использующий пространство вокруг.
Я понимаю, что моя идея не единственно возможная. Для эволюции робомашинок можно использовать нейросети или цифровую логику — но я сознательно выбрал аналоговые радиосхемы. Мой подход лучше, потому что аналоговые схемы зависят от времени. Это значит, что машинка может использовать ощущение времени для ориентирования в пространстве. Нейросети и цифровые схемы так не умеют — они не привязаны ко времени так же тесно. Оказалось, что живые нервные клетки (нейроны) работают очень похоже на аналоговые схемы из транзисторов и конденсаторов — такие же, как в моём проекте.
Список литературы:
1.Книга по изучению радиоэлектроники
Гололобов В.Н. радиоэлектроника от азов до создания практических устройств
2.Мануал по ngspice -> Ngspice
3.Книга по изучению юнити
Бонд Д.Г. unity и c# геймдизайн от идеи до реализации.
4.Мануал по созданию машинки с колесиками в среде unity3d
Wheel collider
5.Омельяненко Я. – Эволюционные нейросети на языке python
6.Статья на хабре – как я нейроны паял.
В своей работе я использовал среду unity 2017,visual studio 2017,windows 10.Под линуксом не тестировал.
Комментарии (3)

Moog_Prodigy
07.11.2025 13:52Как то сложно вы начали. По сути вы переизобрели генетический алгоритм. Такое хотя бы для простых усилителей сделать, чтобы понятно было, что он там делает, а с машинками сложновато.

pav91pav Автор
07.11.2025 13:52Работы над эволюционной радиоэлектроникой не первые.Есть опыты Адриана Томпсона,где он использовал fpga для распознования тонов https://www.damninteresting.com/on-the-origin-of-circuits/. fpga была цифровой,но работала как аналоговая.Я использовал генетический алгоритм для своей статьи,правда не упомянул об этом. Также я решил начать с машинок,так как машинка была агентом,и ее можно было поощрять за взятие блоков и выполнения определенный действий.Я считаю,что использование генетического алгоритма для создания простых усилителей - это как из пушки по воробьям.Я проверил неожиданное поведение у агента-отбирание блоков у другого агента(воровство)
TheEVolk0
Ура, безумные эксперименты!