-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
qubo_sat.py
705 lines (689 loc) · 37.1 KB
/
qubo_sat.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
#!/usr/bin/env python3
# Copyright 2010-2024 Google LLC
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Solves a Qubo program using the CP-SAT solver."""
from typing import List, Sequence
from absl import app
from ortools.sat.python import cp_model
RAW_DATA: List[List[float]] = [
# fmt:off
[
0, 0, 49.774821, -59.5968886, -46.0773896, 0, -65.166109, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 47.0957778, 15.259961, -98.7983264, 0, 0, 0, -20.7757184,
0, 87.2645672, 0, -22.7888772, 0, 0, 0, -40.4980904, -19.7307486,
-23.222078, 0, -77.5263128, 0, 0, 56.6204008, 0, 0, 0, 0, 0, 0, 0,
31.378421, 0, 97.3441448, 35.1309806, 0, 0, -40.5727886, -50.7308566, 0,
0, -69.9304568, 0, 38.5385914, 0, -22.1243232, 0, 0, 0, 0, -62.5102538,
8.0801276, 46.7998066, -2.3292106, 0, 0, 0, 8.774031, 0, 0, -65.6505736
],
[
-67.2935466, -64.4354852, -96.6712204, 0, 0, -60.7812272, 0, 0, 0, 0, 0,
-7.9966864, 0, 0, 0, 0, 0, 0, 0, 89.7672338, 0, 0, 0, 0, 98.9607046, 0,
28.6714432, 0, 0, 0, -26.2738856, 0, 0, 68.363956, 0, 0, 0, 0,
54.7406868, 0, 0, 0, 0, 94.2320734, 0, 0, 0, 0, 0, 0, 0, 0, -2.9647794,
39.7161716, -54.7931288, 0, 0, 0, 0, -47.2284892, 0, 0, 0, -8.6421808,
-35.399612, 0, 0, 62.1912668, 0, -6.8930716, 0, 0, -17.0801284, 0, 0,
68.6533416
],
[
0, 0, 0, 81.165396, 83.773254, 0, -25.1603, 0, 0, 50.225725, 0,
-3.8242274, 0, 0, 36.2078566, 0, 0, 0, 0, 0, 0, 0, 0, 15.551432, 0, 0,
-33.6446236, 0, 0, 0, 36.6171324, 0, 0, 0, 0, 67.9591934, 0, 22.1428016,
0, -27.2961928, 0, 0, 0, -97.4961564, 90.4062526, 0, 0, 0, -90.0532814,
0, 98.8332924, 0, 0, -13.8994926, 0, 17.1962884, 0, 0, 0, -55.1654678,
0, 0, 0, 85.829554, 0, -37.971164, 64.233136, -17.9943296, 0, 0, 0, 0,
-67.7509796, 0, 0, 10.0750712
],
[
0, 37.2783148, 0, 0, 0, 36.4959506, 0, 0, 0, 0, 0, 0, 61.201323, 0,
14.4328522, 48.4078064, 0, 0, 0, 0, 0, 0, 0, -47.0969056, 0, 0, 0, 0, 0,
0, 0, 0, 0, 26.720439, 0, 0, 62.1987576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -65.2085246, 0, 0, 0, 0, 0, 0, 73.3019432, -14.3431238, 0,
0, 0, 0, 0, 0, 0, 0, 2.1565846, 0, 0, 0.7733644, 0, 5.9090456, 0,
-39.7724192
],
[
0, 0, 0, 0, -24.4555532, 0, 0, -5.5484574, 0, 25.4685054, 0.7906104,
4.273133, 0, 52.12973, 0, -12.8040828, 0, 0, 81.888381, 64.0713498, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62.9088768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
20.869713, 0, 0, -71.5835872, 0, 0, 80.7237808, 0, 0, 0, 0, -60.1883708,
0, 0, 0, 0, 0, 0, 0, 0, 85.0393326, 23.6045316, -18.8849834, 0, 0, 0,
-90.8065188, -9.5037982, 14.3196654, 0, -28.9290306, 0, 0, -41.5575766
],
[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8.9478934, 0,
-83.6040618, 0, 0, 0, 0, -14.3874822, 77.2528714, 0, 0, 99.2966066, 0,
21.7889114, -37.7629282, 0, -11.6026582, 0, 0, 0, 0, 74.422603, 0, 0,
-79.239245, -31.9686324, 0, 0, 0, 0, 0, 0, -29.8797178, 0, 0,
85.2723062, 0, 0, -8.8031188, 0, 0, -20.043565, 0, 0, -70.733454, 0,
-94.7231762, -85.4584516, 0, 0, 0, 0, -27.6068624, 0, -79.787783, 0, 0,
-55.1894266
],
[
1.9374354, 0, 1.4807184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
61.298952, 0, 0, 0, -90.5702054, 0, 67.381115, 0, -68.684637, 0, 0, 0,
0, 0, 0, 0, 0, 93.7807934, 0, 8.8213302, -15.9020466, 0, 0, 0, 0,
23.8157662, 0, 0, 0, 0, 0, 0, 0, 67.3461972, 0, 0, 0, 0, 0, 43.3263744,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87.7149706, 0, 0, 0, -18.5133574,
-30.0338992
],
[
6.3937798, 78.7697644, 28.4485838, 0, 0, 0.1352466, 0, 0, 74.5767122,
-13.8340168, 0, 0, 0, 77.2929426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
17.9243834, 0, 0, 82.2239878, 0, 0, 0, 0, 64.3440016, 90.109577,
46.8926522, -2.4494366, 0, 84.7413412, 0, 0, -4.216108, 0, 0,
-79.8684776, 0, 0, 74.8706758, -64.4518992, 0, 0, 0, 0, -34.4895004, 0,
0, 0, -74.1158858, -37.7803516, 0, 0, 0, 0, 0, 80.0054296, 0, 0, 0, 0,
0, 0, 0, 0, -84.5832026, 0, 0, 71.2540694
],
[
0, 0, 0, 0, -74.9257454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14.9675444, 0, 0, 0, 0, 0, -27.5236912, 0, 0, -80.4993438, 0,
-81.8494538, 0, 0, 0, 0, 0, -18.6802002, 0, 0, 0, 0, 0, 0, 0,
61.4131076, 0, 0, -55.1421034, 0, 0, -18.576761, 72.3500914, 0, 0, 0, 0,
0, 0, -23.6460116, 43.1258024, 0, 93.701872, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -86.5772554
],
[
0, 0, 93.0762916, 0, 0, 0, 0, 0, 0, 0, -37.2663938, 86.8303764, 0, 0, 0,
-51.9596226, 0, 35.6722618, -91.438259, 0, 0, -70.6277108, 0,
-82.9146992, 58.0327648, 0, 0, 0, 0, 0, 0, 0, 0, 13.3727302, 0, 0, 0,
23.5719942, 0, -21.5445476, 74.1541634, 60.6365036, 97.4447708, 0, 0, 0,
0, 82.5869498, 0, 85.1132108, 0, 0, 0, 0, 0, 0, 97.4012534, 0, 0, 0, 0,
-45.1504048, 1.0619934, 59.7140264, 0, 0, 0, 0, 0, 4.177461, 0, 0, 0,
-75.7039276, 0, 0.0421338
],
[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71.171869, 0, 0, 8.685266, 0, 0, 0, 0,
33.9089574, 0, -31.6154498, 0, 0, 0, 0, 0, 5.3182746, 0, 0, 0, 0, 0, 0,
3.0361166, -10.364305, 0, 0, 0, 0, 0, 0, 0, 0, -83.9738444, 0, 0,
-7.9170212, 0, 0, 0, -28.7575682, 0, 0, 0, -29.9216686, 0, 0,
83.4050918, -39.5247364, -6.7028846, 0, 0, 0, -23.6080482, 0, 0, 0, 0,
0, 0, -18.380154, 46.9252306, 0, 0, 26.1618372, 99.6235254
],
[
0, 0, 0, 0, 0, 0, 0, 52.008307, 0, 0, 0, 0, 0, 92.4974102, -76.3015714,
0, 0, 0, 0, 0, 0, 0, -56.4879132, 0, 0, 0, 50.1473938, 0, 0, 0, 0, 0, 0,
0, 0, 40.2219566, 0, 0, 0, 84.5162074, 0, 0, 0, -73.3030606, 0,
-10.9258316, 0, 0, 0, 0, 97.5496436, -70.5026182, 0, 62.3611696, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96.4362226, 0, 0, 0, 0, 0, 0, 0,
-6.0104764, 15.7466756
],
[
-38.7678174, 0, 0, 0, 0, 10.5238486, 0, 0, 0, 31.6876676, 79.6111978, 0,
0, 0, 0, 45.7314046, 0, 0, 0, -10.0125122, 0, 93.3170242, -96.4566224,
-5.853298, 0, -82.2848728, 0, 0, 0, 0, 0, 0, 0, 43.3427638, 24.6186934,
0, 44.859548, 0, -63.8196424, 0, 32.6630616, 41.48423, 0, -42.9613722,
0, 0, -68.8954844, 0, 0, 0, 0, 0, 0, 0, 0, 27.7424034, -33.4867534,
-49.1827758, 0, 18.7014116, 0, 0, 59.049662, 0, 0, 0, 0, 0, 0,
-29.6305028, 0, 0, 0, 0, 0, 98.2266078
],
[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14.6583468, 0, -74.4490466, 0, 0, 0, 0,
0, 0, 0, 0, 0, -94.9604028, 0, 0, -48.28403, -41.3534342, 0, 0, 0,
62.9532972, 0, 0, 4.030284, 0, -60.478996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -46.5887848, 39.4565458, 0, 0, 0, 0, 0, 0, 0,
-48.5071236, 0, 0, 0, 41.8640204, 0, 0, 0, 74.271524, 0, 15.5769242, 0,
-61.4793904, 52.4500934
],
[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50.8387116, 0, 46.490051, 0, -54.9751352,
0, 43.0696416, 0, 0, 0, 0, 80.5337704, 0, 0, -16.0325234, 0, 0, 0, 0, 0,
0, 0, 0, 63.186351, 0, 0, 0, 0, 0, 75.2218604, -27.3783446, 0, 0, 0, 0,
-85.021934, 60.9043202, 55.7344594, 0, 41.1687556, 0, 5.574124, 0, 0,
-5.0028254, -40.2614834, 0, 0, 0, 0, 0, 0, 22.207679, 0, 0, 0, 0, 0,
65.0504204, 0, -61.4580018, -90.137276, 19.2277196, 0, 0, -73.8615034
],
[
0, 0, 0, 0, 0, -21.3303052, -75.4586018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 84.6730538, -3.4478344, 0, -76.083503,
19.9372656, -38.9938322, 0, 0, 36.0135034, 0, -56.8457144, 0, 0,
63.4198336, 0, 0, 0, 0, 0, -63.4419798, 28.5629988, 0, 0, 0, 0,
38.8001126, 0, 0, 47.2148438, 0, -19.256673, -24.8778354, -47.8193252,
0, 0, -38.7279908, 0, 0, 0, -34.5546658, 0, -96.7675822, 0, 0, 0, 0, 0,
0, 0, 0, 27.9437518
],
[
0, -17.8703906, 0, 0, -47.2114204, 0, -73.3595682, 66.668341, 0, 0, 0,
0, 30.250278, 0, -40.452007, 0, 0, 0, 0, 0, -37.5013244, 34.3045856, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12.898457,
-15.2838318, 0, 0, 0, 0, 0, 16.333021, 0, 72.0452526, 0, 2.285458, 0, 0,
0, 0, -17.8073046, 0, 0, 0, 81.7271146, 0, 0, -17.7174538, 0,
-62.6694996, 8.7298318, 0, 0, 0, 0, 0, 0, -27.1131974, 0, -68.0964272
],
[
0, 0, 0, 0, -22.1791216, 16.588597, -19.4545486, 0, -74.8318248,
-74.4252462, 0, 0, 0, -46.1656546, 0, 0, -21.1620788, 0, -25.6883764, 0,
0, 0, 0, 0, 0, 0, 0, 0, 34.5550634, 0, 0, 0, 0, 93.8894398, 0,
-30.961635, 0, 0, 0, 0, 0, 78.594791, 0, 0, -63.3427616, 52.6543374, 0,
0, 38.4578962, 0, 0, -56.5589394, 0, 0, 0.6873802, 0, -83.496155, 0, 0,
0, 13.0737006, 0, -41.7343216, 71.8170636, 69.0276666, 0, 0, 57.722026,
0, 0, -93.1746526, 0, 0, 0, 0, -49.9838934
],
[
0, 4.2310134, -77.9001854, -57.1049418, 0, 53.3411444, 0, 0, 62.3456148,
0, 0, 68.2636062, 0, 0, -97.5234598, 0, 87.5610236, 0, 0, 0, 0,
-77.3855948, 0, 0, -90.724008, 28.2231562, 0, 53.026918, 0, 0, 0,
-76.15995, 0, 0, 0, 15.413813, 0, 0, 0, 0, 0, 0, 0, 0, 13.0272308, 0, 0,
-23.9738128, 38.7553414, 0, 30.9290494, -35.5982432, 0, 0, 0,
-45.1103148, 0, 0, 0, 70.158022, 0, 0, 0, 0, 0, 54.120183, 0, 0, 0,
-41.9285314, 0, 0, 0, 0, 14.1035676, 33.7857218
],
[
0, 0, 0, 0, 0, 0, 0, 0, 63.3716696, 0, 0, 0, 0, 0, 24.0919054, 0, 0, 0,
0, 0, 0, 0, 0, 11.3748388, 0, 0, 95.3405052, 93.4694228, 0, 0,
-45.255791, 0, 0, 0, 0, 0, 0, 0, 0, -1.0475536, 60.84603, 0, 0,
-10.47761, 0, 26.1100158, -51.9159084, 0, 0, 0, 0, 0, 0, -65.6123578, 0,
-91.0146766, 0, 0, 0, 0, 0, 0, 0, -21.2845524, 0, 35.7297864, 0, 0, 0,
0, 0, 0, 15.911098, 0, 0, -12.9287238
],
[
0, 0, 4.6786386, 0, 0, 1.6495644, 0, 0, 0, 26.96434, 0, 0, 0,
58.7515752, 0, 0, 0, -47.6494254, 0, -54.2669514, 72.894442, 0, 0,
95.889445, 0, 68.8888298, -66.11831, 0, -23.7891422, 79.7630012, 0, 0,
0, -63.9280642, 0, 0, 0, 0, -32.1729936, 0, 0, -44.1408756, 0, 0, 0, 0,
-43.6440432, 0, 0, 0, 0, 0, 0, 0, 0, 9.0521906, 0, 0, -26.1975436, 0,
45.9278082, 0, 0, 29.678958, 0, 0, 0, 0, 0, 5.9131246, -82.314248, 0,
-56.8775976, -43.6011182, 0, -28.0599468
],
[
44.0699428, 0, -0.2569744, 0, 0, 0, 10.53932, 0, -89.8739242, 0, 0, 0,
0, -39.5334882, -60.036911, 96.86551, 0, -59.6306248, 0, 76.9520134, 0,
0, 0, 0, 0, 55.2369732, 0, 0, 0, 0, -41.8466046, 0, 0, -5.291202, 0,
-18.5051634, 0, 0, 0, 0, 0, 47.1813778, 92.5194464, 90.690835,
56.7657076, 0, 0, 0, -42.1944794, 0, 0, 0, -69.1124266, 0, 0, 0, 0, 0,
0, 0, -14.4018142, -36.9699736, 0, 0, 0, 0, 0, 0, 41.4981516,
-1.5870996, 0, -73.7309526, -68.2179518, 0, 5.1895272, -29.7117264
],
[
90.3158852, 54.7711894, 0, 0, 0, 0, 0, 0, 0, -92.2564004, -20.8178774,
0, 17.3192726, 0, 2.5685474, 0, 0, 0, 0, -21.96248, 0, -83.8507778, 0,
0, 0, 0, -81.769375, 0, 0, 0, -73.8973162, 0, 0, 0, 0, 0, 0,
-96.8790628, 0, -29.2883476, 0, 0, -73.2399312, 0, 0, 0, 56.465223, 0,
-10.1549238, 0, 0, 44.7135732, 0, 0, 0, 0, -37.8912668, 61.0703958, 0,
0, 0, 94.563183, 2.1777518, 0, 0, 0, 0, 0, 0, 69.8987148, 0, 0, 0,
58.5987754, 0, -73.701682
],
[
0, 25.7383596, 0, 43.2784374, 0, 0, 0, 0, 0, 0, 0, 65.3498334, 0,
-51.6680898, 0, 0, 0, -32.4960916, 0, -61.8512302, 0, 0, 0, 0,
66.0087116, 0, 0, 0, 0, 0, -69.5971312, -68.5339006, 0, -87.9115714, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13.6412636, 0, -33.3575526, 0,
-34.6876284, 0, 0, 0, 0, 0, -5.195929, 0, 0, 0, 0, 0, 0, -62.551799, 0,
0, 0, 0, 0, 0, 0, 0, -85.6796076, 0, -69.9796424
],
[
0, -67.7487338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -89.686036, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35.3396338, -51.2668318, 0, 0,
-9.4925338, 0, 0, 0, 0, 0, 0, 0, 0, -74.049299, 0, 0, 0, 6.669526, 0, 0,
0, 0, 82.3839076, 0, 0, 0, -63.2986138, 0, 0, 0, 29.4639612, 0, 0,
-75.2754458, 0, 0, 10.6058324, 83.9439366, 48.4539264, 0, 0, 0, 0,
8.6922024, 17.82273
],
[
-12.5659444, 0, 0, 0, 0, 0, -16.0039068, 0, 0, 0, 0, -64.5579896, 0,
25.3425712, 0, 0, 0, 0, -73.3525686, 0, 0, 0, 41.4534476, 0, 0,
35.6355928, 82.0438356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.5500598, 0,
17.4573382, -30.4230828, 68.6250598, 0, 0, -70.7101786, 0, 0, 0, 0, 0,
19.070679, 0, 0, 0, 0, 0, 0, 0, -69.0034118, 0, -32.8881618, 0,
99.6116696, -41.8557658, -36.91302, 0, 0, 0, 0, 0, 25.1313946, 0, 0, 0,
0, 0, 66.1785624
],
[
-28.5551034, -60.2641954, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11.4765054, 0, 0,
0, 0, 0, 0, 78.1818898, 0, 0, 0, 0, 34.0574966, 0, 0, 0, 3.3327304, 0,
0, 0, 0, 0, 0, 0, -25.4031686, -6.4345882, 0, 0, 0, 0, 0, 70.724926, 0,
0, 0, 0, 0, 0, -34.578727, 0, 0, 0, 0, 73.4821434, 0, 0, 0, 0,
-78.7097278, 0, 0, 0, -56.0390914, -77.1810362, 95.2972308, 0,
-88.304829, 0, -11.4076234, 0, 0, 0, 0, 0, -53.8368524
],
[
0, 0, 53.7291982, 0, 0, 0, 0, 0, 0, 0, 0, 90.7870612, -66.2974882, 0,
-92.2201462, -15.7252186, 0, 0, 0, 0, 0, -25.4072904, 0, 0, 0, 0, 0, 0,
0, 0, 0, 32.8926792, 36.9923848, 0, 0, 0, 0, 33.293754, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 5.689557, 0, 0, 89.5416534, 40.4300196, 0, 0,
2.8394972, 90.7550328, 0, 0, 71.835872, 30.8157976, -96.7796296, 0,
44.1461388, 0, 0, -32.5545222, 0, 75.597677, 0, 0, 0, 0, 33.146892
],
[
0, -36.157067, 0, 0, -0.4087578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13.1871604,
0, 60.6086354, 84.4235272, 0, 0, 89.0383032, 0, 0, 0, -43.0195992, 0,
-99.31608, 0, -64.2154682, 0, 0, 0, 76.5304532, 0, 0, 0, 0, 0,
82.052369, 0, -72.450166, 0, 0, 0, 23.4129134, 0, 0, 0, 0, 0, 0, 0, 0,
53.3291088, 0, 0, 0, 73.435697, 87.3597806, 0, -94.1974698, 0, 0, 0, 0,
59.0496292, 0, 0, 0, -13.8506028, 0, 0, -42.6003178, 0, 0, 55.1715212
],
[
0, 0, 0, -67.8709314, 0, 0, 0, 0, 0, 0, 0, -9.678326, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28.014314, 0, 0,
0, 0, 0, 0, 0, 0, -36.8865788, 0, 0, -98.739389, 0, 0, 0, 0, 0, 0,
-86.2168946, 0, 44.1228816, 0, 0, 0, 0, 0, 0, -36.6609072, 0, 0, 0, 0,
18.3461886, 98.9990466, 30.4109678, 0, 0, 0, -39.2683046
],
[
-49.3558704, 0, 0, -31.3665258, 0, 0, 0, 0, 0, 0, 1.7897898, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, -15.7715374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-50.0629034, 0, 0, 0, 0, 0, 0, 0, 35.8856254, 0, -51.062155, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 78.136688, 0, 0, 0, 0, -41.5917514, 0, 0, 0, 0,
0, 0, 0, 0, 0, 73.1472674, 0, -77.9015418
],
[
0, -6.5048614, -28.611729, 0, 0, -97.9680564, 33.7007078, -70.5347856,
0, 17.197908, 0, 19.8776858, -24.4246618, 0, 0, 53.363481, 0, 0, 0,
-44.7872848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -74.0599438,
-81.2162694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-68.6473592, 0, 39.894997, 0, 0, -38.5305628, 0, -5.244101, 0, 0,
46.6040974, 2.4384956, 0, 0, -26.8264528, 0, 0, -98.5537452, 2.6463192,
0, 0, 0, 0.4769732
],
[
0, 0, 0, 0, -52.7430298, 1.8510158, -39.691072, 0, 0, 0, 0, 0,
95.6497418, 0, 0, -48.04896, 0, -26.6728378, 0, 0, 0, 0, 0, -12.3921976,
-65.5861706, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -57.9815088, 0, 77.6808808, 0, 0, 0, 94.6506526, 0, 0, 0,
55.8427672, 0, 0, -0.6995066, 0, -78.3071326, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-67.9654476
],
[
0, -23.0019946, 0, 0, 95.4877116, 0, 0, 0, 0, 0, -36.573767, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90.1862622, -36.4728966, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86.6126918, 0, 0, 0, 0, 0, 0,
0, -80.1067184, 0, 31.8472788, 27.496628, -66.6206162, 0, 0, 9.1957296,
0, 37.2257526, 0, 0, 0, 0, 0, 0, 0, -39.1637322, 0, 0, 74.4924622
],
[
0, 0, -25.4147588, 6.2424662, 0, 0, 0, 0, 0, 0, 92.5623938, -92.810452,
0, 0, 0, 0, 0, 0, 0, 0, 0, -45.0048688, 0, 0, -32.1678062, 0, 0, 0,
9.8719598, -33.7145476, -16.3449354, 0, 70.462643, 0, 0, 14.5356206, 0,
0, 0, 0, -95.1218374, 0, 0, 0, 0, -0.8077516, 0, 0, 0, 0, 0, 53.7434994,
0, 0, 0, 0, 0, 5.376533, 0, 0, 0, 0, 0, 0, -1.125953, 75.3929928, 0, 0,
0, 0, 0, -17.8555478, 0, 0, 87.130332, -46.977091
],
[
-57.0064908, 0, -61.469472, 0, 0, 94.2906142, 0, 10.1214686, 0, 0, 0, 0,
0, 0, 0, 0, 90.8859632, 0, -31.3550928, 25.4391198, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -30.6974596, 0, 16.8162692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-40.946388, -23.914437, -39.0760436, 0, 0, 12.4664916, 0, 0, 0,
59.3854694, 0, 0, -79.029102, 0, 48.0444832, 0, 0, 0, 0, 0, 0, 0,
-34.447419, 0, 0, 0, 0, 0, 0, 0, 0, 0, -42.8371356
],
[
-46.3742298, 0, 0, 0, 0, 6.4096268, 0, 0, 0, 0, 0, 0, 0, 0, 53.7055136,
41.0589284, 0, 0, 0, 0, 0, 0, -59.494163, 78.2644798, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3.5467882, 0, 0, 0, 0, 0, -33.8146284, 0, 81.1209896,
0, 0, 0, 0, 0, 0, -59.120982, 0, 0, 0, 0, 20.5082176, 0, 0, -32.2137818,
41.6679682, 98.4426286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18.7911844
],
[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
22.5196126, -44.92426, 0, 0, 0, 0, -78.1154748, 95.3654376, 0, 0, 0,
-42.4266782, 73.3850132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94.1878774,
90.3854666, 0, 0, 0, 0, 0, -15.9053536, -74.9423846, 47.214, 0, 0,
7.477562, 0, 46.2206928, 19.1508454, 41.6978146, 39.03286, 0, 0, 0, 0,
0, -14.259302, 0, 54.0542232, 0, 0, 44.5438142
],
[
95.3632006, 43.6928354, 75.8291588, -81.2577418, 0, 0, -91.248437, 0, 0,
22.476879, -77.967431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.0308978,
-22.0727056, 0, 0, 0, 0, 0, 0, 0, 17.126454, 0, -45.7583606, 0, 0,
32.9187018, 0, 0, 0, 0, 0, -58.6847152, 0, 0, 39.113676, 0, 0, 0, 0, 0,
0, -80.1176538, 0, -86.9570556, 0, 0, 0, -9.3462492, 0, 49.3616864, 0,
60.4773586, 0, 0, 48.9766746, 17.5735282, 75.126033, 0, -50.8306992, 0,
0, 61.3438194, 0, 0, -95.9051914, 0, 25.6497354
],
[
-89.5581772, 0, 0, 0, 0, -37.7576814, 0, 0, 0, -50.475431, 0, 0, 0, 0,
-75.575654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.7066106, 0, 0, 0, 68.702018, 0,
0, 44.2841378, 0, 0, 0, 0, 0, 0, 0, 42.4183476, 80.6872178, 72.028214,
0, 0, 0, -50.6912368, 0, 0, 0, 53.1913708, 0, 0, 0, 0, -50.0798868, 0,
0, 0, 0, 0, 0, -99.54189, 0, 0, 0, 0, 87.8828622, 7.144766, 0, 0, 0,
71.8161494, 91.0414654, 0, 0, -7.240427
],
[
0, -73.397517, 0, 0, 0, 0, -42.4633614, 0, 0, 0, 0, -2.3988294,
-60.1970288, -31.1370786, -16.4428054, 0, -86.5694254, 0, 0, 0, 0, 0, 0,
0, 0, -33.759363, 0, 88.9440556, 0, 0, 0, 48.8687358, 0, 0, 60.1841648,
0, 0, 81.5798018, 0, 0, 0, 0, 22.265044, 0, 0, 0, 0, -98.612946, 0, 0,
0, -49.44052, 0, 46.9606012, 0, 0, 0, -23.7990468, 0, 0, 0, 0,
-72.1702852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26.2623134, 0, -17.3386012
],
[
0, 16.4596174, 0, 0, 0, 0, -85.6599392, 0, 0, 0, 0, 0, 0, 93.708794, 0,
-37.5698758, 0, 0, 0, 0, 0, 0, -82.8927936, 0, 82.4183808, 0, 0, 0, 0,
0, 0, 55.028266, 0, 0, 11.3484192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -60.7651522, -4.822581, 0, 29.0627604, 0, 0, 61.7042716,
41.5363722, 73.9967868, 0, 0, 0, 0, 50.2308124, 0, 33.8231702, 0, 0, 0,
0, 0, -14.7226996, 14.5401778, 0, -72.8145596, 19.9220286, -76.4609286
],
[
11.1687196, 0, 0, 0, 0, 0, 0, 0, -37.365205, 0, 0, 0, 52.0314298, 0,
-58.0558462, 0, 0, 18.6738906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
59.6046802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26.5944948, 0, 0, 0,
77.0271992, 46.521059, 61.8258634, 0, 0, 36.079546, 0, -14.3080494, 0,
-50.1618478, 0, 0, 95.9445656, 0, 0, 0, 0, 0, 0, 0, 0, 0, -53.478982,
-90.3623976, 0, 0, -37.1575466
],
[
0, 0, 0, 0, 0, 0, 0, 78.882051, 0, 0, 57.8056512, 7.2056626, 0,
2.822132, 40.311822, 0, 0, 0, 83.8935006, 0, 0, 91.2774482, 3.160849,
91.7410132, 0, 0, 0, 0, 0, 2.7544652, 0, 0, 0, 0, 0, 16.8419108, 0, 0,
84.1171174, 0, 21.3119752, -69.869284, 0, 0, 0, 0, 0, 92.1087118, 0, 0,
0, 0, 34.3473744, 21.9890278, 0, -36.3139526, 0, 0, 0, 0, 0, 25.613497,
-2.989159, 0, 0, 0, 0, -49.2456622, 0, 0, 27.3140788, 0, 49.210258, 0,
0, -90.6896972
],
[
0, 0, 0, 0, 0, 0, -56.1947046, 0, 0, 52.6617176, 61.6283016, 0, 0, 0, 0,
0, 0, 0, 0, 0, -34.0759312, 0, 92.0200254, 0, 0, -9.7999914, 0, 0,
34.0572616, 0, 0, 0, 0, 0, 59.7637334, 0, 0, 0, 0, 0, 43.5437732,
29.9690024, 0, 0, 93.9438036, 0, 0, 0, 52.3867986, 0, 0, 0, 38.0567542,
0, -63.9851954, 0, 73.1679634, 0, 0, -28.6636244, 0, 0, 0, 0, 0,
39.2894916, 0, -28.4364668, 0, 0, 0, 0, 0, 0, 0, -32.2899456
],
[
15.3399588, 0, 0, 0, 0, 0, 0, -66.2540916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 14.7613734, 0, 0, 0, -32.9550622, 0, 0, -17.2710502,
0, 0, 0, -66.7611862, 76.5708962, 93.3868072, 12.036471, 0, 0, 0,
-74.2189184, 0, 0, 0, 0, 58.0343866, 0, 71.0145124, 0, 0, 0, 0, 0, 0, 0,
80.7131208, 0, -49.5191686, 40.2489602, 0, 0, 39.9664558, 0, 0, 0, 0, 0,
0, 51.704979, 0, 20.9209752, 0, 0, -63.5800814
],
[
0, 0, 35.1676872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8.326191, 0, 0,
0, -42.1405488, 0, 0, 0, 0, -64.9203894, 0, 0, 0, 86.5653072, 0,
17.1250418, 0, 15.224998, -32.788739, 0, 0, 0, 13.1550612, 0, 0, 0,
93.3049176, 65.5504482, 0, 35.8126186, -16.2474202, 0, -76.7788518,
-51.9001008, 0, -89.725966, 53.4895596, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-82.6077236, 0, 0, 0, -57.075872, -52.5166376, 99.9479554, 0, 0,
-89.7491862, 0, 18.6163306, 0, 29.1454254
],
[
-18.8864514, 0, 0, 0, 0, 0, -46.6968628, -83.8123266, 0, 0, 0, 0, 0, 0,
-91.631792, 0, 0, 0, 0, -57.3455082, 66.459894, 0, 0, 0, -73.9341878, 0,
0, 0, 81.8859882, 0, 0, 0, 0, 0, 28.0747908, 0, 0, 99.7796988, 0,
87.0296656, 0, 0, 43.7722526, -60.65313, 98.6287198, 0, 20.8634118, 0,
0, 25.6519386, 0.4939554, 0, 0, 0, 0, 0, 0, 0, 0, -74.9266526, 0, 0,
-25.4234142, 0, -91.054582, 0, -42.534282, 0, 0, 0, 0, 0, 0, 0, 0,
12.1491094
],
[
0, -90.5331764, 0, 0, 0, 0, 0, -8.1166918, 0, 0, 0, 0, 0, -34.0013692,
21.9272646, 0, 0, 0, 0, 0, 93.2245032, 0, 21.8275426, 0, 0, 0,
38.5279608, -6.0022692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
39.644863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -93.7962256, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 11.5363598, 70.354452, 0, 0, 0, 32.2282298, 0,
36.659058, 0, 0, 53.992344
],
[
-74.4430478, 0, 0, -93.4496218, 14.6437598, 0, 0, 0, -33.8297902, 0, 0,
0, 0, 0, 0, -35.949213, 0, 0, -93.1678628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -22.8806328, 0, 0, 0, 0, 0, 0, 0, 45.1466816, 88.4821604, 0, 0,
-49.7769388, 0, 0, 0, 0, 0, 0, 53.6290382, -40.4388272
],
[
71.2065308, 94.4966808, 0, 0, 0, 0, -84.2404402, 0, 0, 0, 0, 0,
61.7641462, 0, 0, 0, -0.608018, -94.7698384, 0, 0, 0, 0, -3.4562834, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26.0708126, -73.3657794,
26.6482556, 0, 0, 0, 0, 0, 0, -66.9699546, -98.6726948, 0, 0,
-25.4137958, 0, -88.7254432, -81.2735544, 0, -23.3081526, 0,
-51.8917252, 0, 0, 0, 0, 0, 0, 0, 0, -52.3004828, 0, 0, 0, 0,
67.8542398, 0, -67.7489638, 32.2212522
],
[
0, 77.0252092, 0, 0, 0, 0, 0, -85.3271924, 0, 0, 0, -2.9308596, 0,
83.448547, 0, 4.7835886, 0, 0, 0, 0, 76.590577, 0, 0, 0, 0, 0,
86.0180794, 0, 0, -88.4030016, 0, 0, 0, -13.770426, 57.6068646, 0, 0, 0,
0, 0, 12.6896788, 0, 0, 0, -78.1078136, -92.3074796, 0, 0, 0, 0,
-94.3200626, 0, 0, -7.987837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
52.7655986, 0, -78.2727176, 0, 74.4309632, 48.3867546, -85.4142468, 0,
91.3888914, -6.0372808, 51.1643348
],
[
-77.4193002, 0, 0, 0, 0, 0, 0, 0, 41.0846988, -78.3265056, 0, 0, 0, 0,
0, 0, 0, -20.408123, 10.7055032, 0, -19.5848354, 0, -32.624054, 0,
47.333306, 0, -41.6545398, 0, 0, 0, 0, 0, 46.8131656, 0, 52.5387768, 0,
0, 0, 0, 0, 0, 0, 0, 0, -75.3511542, 0, 0, 0, 0, -27.6140242, 0, 0,
-63.3032372, 0, 0, 0, 0, 0, 0, 0, 0, -93.1854838, 0, 0, 0, 0,
32.3353436, -75.8659438, 89.852816, 0, 9.7044216, 0, 94.9239572, 0,
-57.0391726, 25.4894998
],
[
0, 0, 0, -27.2226392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -89.0780816,
0, 0, 0, 0, 6.6342408, 0, 0, 92.3634346, -41.5559582, 0, 0, 0, 0, 0, 0,
-4.3499792, 18.9554522, 0, 29.992962, 0, 0, 0, 0, 0, 0, 0, 0,
-51.9952794, -40.3571344, 0, -61.0098328, 0, 0, 0, 0, 71.8571838,
97.3056784, 0, 0, 27.798026, 0, 0, 20.3198544, 0, 0, 0, -82.1043534, 0,
0, 0, 0, 0, 55.2807134, 0, 0, 0, 0, -90.8562594, -43.2271604
],
[
0, 0, 0, 0, 0, 15.2015056, 18.3740448, -11.2614058, 0, 0, 0, 0, 0,
53.0086248, 0, -91.038908, 0, 0, 88.2707986, 3.2580272, 0, 0, 0, 0, 0,
0, 0, 0, 88.8189254, 0, 0, 0, 0, -3.742353, 0, 0, 0, -41.4198488,
90.0966416, 0, -22.474875, 0, -25.610863, -79.5943706, 0, 0, 0, 0, 0, 0,
0, -3.5616438, 0, 0, 0, 88.5984932, 0, 0, 0, 0, 0, 0, 0, 22.4398688, 0,
0, 0, 0, 0, 0, 0, -63.7422676, 0, 0, 0, -82.7150752
],
[
0, 0, 75.634243, -60.420708, 0, 0, 0, 0.8383984, 0, 0, -72.2791914, 0,
0, 0, 17.1476022, 0, 0, -14.5930276, 9.4352026, 0, -30.1475326, 0,
-53.7249052, 0, 19.3293368, 0, 0, 0, -80.867335, 0, -3.344608,
71.3546388, -91.098817, 0, 0, 0, -26.83234, 0, 3.7009, 0, 0, 0, 0, 0,
28.4006138, 0, 0, 57.1433046, 14.4086186, 0, 0, 0, 49.5828354, 0, 0, 0,
0, 0, 0, 0, 0, 0, 17.0012008, 0, 30.5581294, -98.7868224, 0, 0, 0,
70.0467486, -9.4444084, 0, 19.9250998, 0, 0, -79.4970662
],
[
0, 54.0067274, 0, 0, 0, 37.9936634, 0, -20.1071476, -58.981429, 0, 0,
-83.9927614, 0, 0, 0, 0, 0, 0, -70.8571636, 0, 0, 68.4686496, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, -8.1687508, 0, 0, 16.6835288, -10.1286606, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 86.4747972, 0, -34.6316042, 0.9788672, 0, 0,
-41.4513542, 0, 0, 0, 0, 0, 0, 0, 0, -28.4021576, -74.9076708, 0,
-5.0425708, 0, 0, 0, 78.9139852, -50.7082204, 0, 34.0684852, 28.2502302
],
[
0, 0, 0, 0, 0, 0, 0, 57.544994, 0, 0, -22.4411072, 0, -94.2568866,
-80.7849138, 0, 0, -10.0010618, 33.3160792, 0, 0, 0, 0, 0, 0,
-82.6811248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11.0390072, 0, 0,
32.0523166, 0, -80.6937396, 0, -94.2671164, 0, 0, -16.2170198, 0, 0, 0,
-5.7387768, 0, 0, 0, 0, -83.6048238, 0, 0, 0, 0, 0, 0, 33.6877392, 0,
-41.9784856, 0, 0, 0, -50.6512854, 0, 78.737702, 0, 0, 0, 0, 0,
9.0618996
],
[
0, 0, 0, 0, 0, -94.8072128, 0, 21.9767716, 0, 0, 0, 57.7817378,
35.3840102, 0, 0, 0, 60.4679182, -94.9978498, 0, -18.9377882,
-42.3270372, 0, 0, 0, 0, -3.9058912, 0, 0, 44.440235, 0, 0.41471, 0, 0,
-88.0148602, 53.9755254, 0, 0, 74.7772774, -19.633854, -66.6129164,
-25.4637816, -13.1642082, 0, 0, 0, 0, 57.6068044, 0, 0, -75.9060014,
24.0447026, 0, 0, 29.9750648, 0, 0, 0, -54.938857, -4.4090126, 0, 0, 0,
0, 0, 0, -57.1202194, 0, -11.130658, 0, 0, 95.6177756, -78.5403868, 0,
0, 30.4589622, -93.6950296
],
[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -50.308444, 0, 0, 0, 0, 0, 0, 0,
-20.3462364, 0, 0, 25.6081088, 0, 0, 0, 0, 0, 0, 90.9877902, 0,
-56.0922542, 99.2456868, 0, 45.4316172, 0, 70.1339288, -54.576692, 0, 0,
0, -73.6910292, 0, 0, 0, 0, 0, 0, 38.6032202, 0, 0, 0, 60.7387286, 0, 0,
0, 0, 0, 0, 0, 0, 95.207832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
58.4721284
],
[
0.3163476, 0, 0, 13.0918568, 5.13089, 0, 40.7266308, 0, 0, 0, 0, 0,
-98.7077428, 0, 81.000503, 0, 0, 76.3945372, 0, 0, 0, 0, 0, 0,
-10.2289084, -70.592702, 0, 0, 0, 0, 0, 0, 69.59571, 0, 0, 0, 0, 0,
-61.4746908, 53.4041094, 0, 90.4397278, -33.1874988, 0, 0, 71.5512744,
5.846105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56.7568638, 0, 0,
66.7588344, 0, 0, 0, 99.284785, 0, 0, 0, 0, 0, 0, -99.2850048,
-85.4466004
],
[
0, 0, -34.544278, 0, 0, -36.135124, -33.4259354, 0, 0, -60.4256326, 0,
44.7734168, 0, 0, 0, 0, -88.6744704, 0, 0, 0, 0, 0, 0, 0, 0,
-95.3752508, 4.596855, 85.2924422, 70.9081648, 22.0390844, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1.6872456, 0, 0, 0, 0, 0, 0, 0, -37.4782422, 0, 0, 0, 0,
0, 0, 0, 0, 4.7642096, 0, 0, -33.6313218, 0, 0, 72.977526, 0, 0, 0, 0,
0, 0, 2.5063252, 0, 0, 0, 0, 0, -64.8677902
],
[
0, 0, 0, 3.718989, 0, 0, 49.3814782, 77.868826, 0, 0, 0, 0, 0, 0, 0, 0,
-49.7008846, 0, 4.696494, 0, 0, 0, 0, 0, 0, 0, -59.4928602, 0, 0, 0, 0,
0, 82.6840644, -0.996624, -15.8014198, -93.098215, 0, 0, 41.2709314, 0,
-90.9633198, -56.911012, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26.02585, 0, 0, 0,
0, 0, 0, 61.2353938, 0, 0, 0, 0, 21.376448, 0, 0, 0, 0, 0, 0, 0,
97.0578858, 0, 0, 0, 5.1265226
],
[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19.5643656, 0,
0, -92.0307416, 0, 0, 0, 0, 55.003856, 0, 0, -20.4708104, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54.4588824, 0, 0, 0, 0, 0, 0, 0,
0, -57.0182252, 0, 0, -48.3222128, 0, 0, 0, -41.1121382, 0, 0, 0, 0, 0,
0, -12.2773602, 0, -28.6924808, 50.0415338
],
[
0, 0, 0, -73.9719246, 0, 0, 0, 0, 0, 0, 0, 39.4110332, 0, 0,
-21.6757132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
74.8739354, 0, 0, -52.9210426, 0, 46.7750368, 63.6311858, 0, 0, 0, 0,
25.5310902, 0, -3.0369126, 0, 32.5437816, 0, 0, 78.9107496, 32.0416448,
0, 0, 15.9408846, 0, 0, 0, 0, -67.7582854, -52.6103086, 0, 0, 0, 0, 0,
0, 11.8676176, 0, 0, -41.8820812, 43.608357, 0, 0, -64.3752572
],
[
0, -15.1648222, -57.5273074, -94.2919124, -3.0777222, -77.345826,
91.2777856, 0, 0, 0, 0, 13.5044774, 0, 0, 0, 0, 0, 0, 0, 0, 33.5509618,
0, 0, -33.291092, -60.3050638, 0, 0, 0, 94.610171, 0, 0, 0, 0, 0, 0,
-47.270154, -81.403122, 0, 0, 47.829269, 0, 0, 0, 0, -47.4699122, 0, 0,
-31.0161918, 0, 0, -54.993563, -9.6544012, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-17.0644648, 0, 0, 0, 0, 0, 0, 49.0555938, -82.4686508, 0, 0,
97.7299292, 0, 0, -93.1718028
],
[
0, 0, 0, 45.5639954, 0, 0, 0, 0, 0, 92.3127826, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -5.8746296, 22.9079182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25.2727812, 0, 0, 0, 0, 0, 0, 65.0012614, 0, 67.4376806, 0, 0,
14.0298002, 0, 0, 0, 0, 0, 33.432514, 43.000429, 0, 0, 0, 0, 0, 0, 0, 0,
0, 20.2757068, 4.0567932, 0, 0, -15.8737758, 0, 0, 0, 0, 29.8957398,
50.0218946, 17.0262346
],
[
46.1658228, 19.630724, 0, 0, 0, 0, 0, 80.6073204, 24.5091878, 0, 0, 0,
73.9258848, 0, 0, 0, -98.2044476, 0, 0, 0, 0, -59.2213968, 0,
-70.1450004, 0, 0, 0, 42.4721292, 0, -73.0346074, 0, 67.9829686, 0, 0,
0, 0, 6.6597886, 39.7215082, 0, 0, 0, 52.505292, 95.9204336, 0, 0,
5.8797776, 0, 0, 0, 36.0738246, 0, -15.2667614, 0, 0, 0, 0, 0, 0, 0, 0,
0, 50.963131, 0, 0, 0, 49.3354032, 13.7868492, 0, 77.3708062,
26.0888548, 0, 0, 0, 0, -60.0881692, 24.2459968
],
[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56.562023, 0, 0, 24.9145996, 0, 0, 0,
0, 32.8196724, -75.8879774, -12.4005106, 0, 0, 0, 0, -18.824482,
-45.0330046, 0, 0, -47.5493022, 0, 0, 0, 8.1879572, 0, 0, 4.5700222,
-28.6731266, 0, 0, 0, 0, -83.2735948, 5.4624948, 0, 0, 0, 0, 0, 0, 0,
83.664375, -52.8630198, 58.5805764, 0, 0, 0, 45.5781336, 0, 0,
-1.9768322, 0, 0, 0, 0, 91.1151128, 0, 0, 0, 0, 0, 0, -65.5158586, 0,
-22.12762
],
[
0, 0, 0, 0, 0, -50.8301006, 0, -57.183698, -24.666489, 43.0557936, 0, 0,
0, -44.0812116, 0, 0, 0, 97.1670056, 0, 0, 0, 0, 83.4511366, 0,
-96.8912356, -6.1095452, 87.6643268, 0, 0, 0, -32.5223614, 0, 0, 0, 0,
-18.5596964, 0, 56.1790224, 0, 25.6035684, 0, 0, 0, 0, -46.8740154, 0,
0, 0, 0, 0, 0, 0, -44.4329434, -34.719678, 85.6384822, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 48.9669952, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28.2571694
],
[
0, 0, 0, 0, 42.1192158, 18.3800218, 0, 0, 33.4475094, 0, -39.4713432, 0,
54.9744572, 0, -6.6305664, 79.0252374, 77.6908818, -61.5099746, 0, 0,
38.4501814, 0, 0, -96.4250704, -27.809694, -34.9250884, 63.2997728, 0,
-98.8800042, 0, -7.682428, 0, 0, 0, 0, 0, 0, 7.7256608, 0, 48.5546152,
0, 0, 0, 0, 0, 0, -58.963373, 0, 0, 0, 0, 0, 86.5062664, 7.0006556, 0,
0, 0, 0, 0, 0, 3.1958572, 0, -46.2861844, 0, 0, 0, 0, 30.0710902,
46.6948898, 0, 68.4681908, 0, 0, 0, 0, -51.3930766
],
[
7.1969236, 0, -79.6160432, -39.947334, -15.2636342, 0, 10.0645898,
-57.8968238, -31.9945476, 0, 91.5839662, -52.777566, 0, 0, 0, 0,
-40.9252974, 0, 0, 0, -45.5113982, 70.585349, 0, 0, 0, 0, 0, 0, 0, 0,
-66.2523308, 0, 0, 0, 0, 0, 0, 0, 0, 85.7454324, -7.1148372, 0,
93.6584844, 0, 0, 0, 0, 0, 0, -8.0414788, 0, 0, 0, 0, 51.3263388, 0, 0,
79.892422, 0, 0, -64.6934098, 0, 0, -45.9577622, 0, 0, 0, -46.8290526,
0, 48.2417506, 0, 0, 0, 0, -2.4115812, -50.7156922
],
[
62.9870494, -81.5584552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53.7333104, 0,
50.6438202, -57.7938262, 0, 0, 0, 0, -78.1108892, 0, 0, 0, 0, 0, 0, 0,
87.6584692, 0, 58.2960112, -17.5355398, 12.0497204, -60.5414862, 0, 0,
0, 0, 0, 0, 0, 0, 38.586472, -19.7940052, 94.423359, -89.557933, 0, 0,
-77.0715722, 0, -87.707166, 70.8585278, 0, 9.0616914, 91.333051, 0, 0,
0, 5.8166112, 0, 24.7793442, -51.000038, 0, 0, 0, 0, 0, 0, 79.9657776,
97.4969126, 0, 0, 0, 0, -73.8994394
],
[
10.133741, 0, 0, 0, 95.6910336, 0, 0, 0, 0, -22.6696236, 0, 0, 0, 0,
15.137996, 35.7088464, 0, -16.1971956, 0, -29.4834358, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, -89.868739, 24.0040126, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 40.7292396, 35.7709458, 0, 34.690347, 22.3083532, 0, 0, 0, 0, 0,
-48.4224164, 0, 0, 0, 0, 91.7670744, 0, 0, 69.4045014, 0, 60.5937114,
-38.9993134, 0, 0, 0, 0, 0, 55.4599018, 0, 86.689944
],
[
0, 0, -24.842169, -52.997003, 0, 0, 0, 0, 0, 0, 0, 5.9075842, 0, 0,
-91.1447252, -5.3147106, 0, 0, 0, 4.4670454, 34.97343, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -5.3957052, 0, 0, 0, 0, -19.2118838, 0, 0, 0, 0, 0, 0, 0, 0,
64.9559324, 0, 0, -10.0586402, 0, -74.8523334, 0, 0, 0, 0, 0, 0, 0, 0,
0, 84.8495464, 0, 0, 0, 0, 0, 0, 33.0825986, 46.995148, 0, 0, 0,
-4.243203, 0, 0, -24.0124188
]
# fmt:on
]
def solve_qubo() -> None:
"""solve the Qubo problem."""
# Build the model.
model = cp_model.CpModel()
num_vars = len(RAW_DATA)
all_vars = range(num_vars)
variables = [model.new_bool_var("x_%i" % i) for i in all_vars]
obj_vars = []
obj_coeffs = []
for i in range(num_vars - 1):
x_i = variables[i]
for j in range(i + 1, num_vars):
coeff = RAW_DATA[i][j] + RAW_DATA[j][i]
if coeff == 0.0:
continue
x_j = variables[j]
var = model.new_bool_var("")
model.add_bool_or([~x_i, ~x_j, var])
model.add_implication(var, x_i)
model.add_implication(var, x_j)
obj_vars.append(var)
obj_coeffs.append(coeff)
for i in all_vars:
self_coeff = RAW_DATA[i][i] + RAW_DATA[i][-1]
if self_coeff != 0.0:
obj_vars.append(variables[i])
obj_coeffs.append(self_coeff)
model.minimize(sum(obj_vars[i] * obj_coeffs[i] for i in range(len(obj_vars))))
### Solve model.
solver = cp_model.CpSolver()
solver.parameters.num_search_workers = 16
solver.parameters.log_search_progress = True
solver.parameters.max_time_in_seconds = 30
solver.solve(model)
def main(argv: Sequence[str]) -> None:
if len(argv) > 1:
raise app.UsageError("Too many command-line arguments.")
solve_qubo()
if __name__ == "__main__":
app.run(main)