From e7022540b1a1c683823a9517e0da8fcdffa8bccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=82=8E=E6=B3=BC?= Date: Wed, 4 Sep 2024 11:23:36 +0800 Subject: [PATCH] Add: raxsos: evolution --- src/list/raxos/evolution/.gitignore | 1 + src/list/raxos/evolution/Cargo.lock | 929 ++++++++++++++++++ src/list/raxos/evolution/Cargo.toml | 8 + src/list/raxos/evolution/src/config.rs | 12 + src/list/raxos/evolution/src/contour.rs | 277 ++++++ src/list/raxos/evolution/src/display_slice.rs | 83 ++ src/list/raxos/evolution/src/draw.rs | 61 ++ src/list/raxos/evolution/src/main.rs | 170 ++++ src/list/raxos/evolution/src/point.rs | 60 ++ src/list/raxos/evolution/src/scene.rs | 47 + .../raxos/history-committed-12.excalidraw.png | Bin 0 -> 53555 bytes .../history-committed-123.excalidraw.png | Bin 0 -> 56280 bytes .../raxos/history-data-loss.excalidraw.png | Bin 0 -> 44274 bytes .../raxos/history-dirty-write.excalidraw.png | Bin 0 -> 63378 bytes src/list/raxos/history-quorum.excalidraw.png | Bin 0 -> 25176 bytes src/list/raxos/history.excalidraw.png | Bin 0 -> 21171 bytes src/list/raxos/quorum-2x2.excalidraw.png | Bin 0 -> 20635 bytes .../raxos/quorum-majority-3.excalidraw.png | Bin 0 -> 13797 bytes src/list/raxos/quorum-nxn.excalidraw.png | Bin 0 -> 36103 bytes src/list/raxos/raxos.md | 451 +++++++++ 20 files changed, 2099 insertions(+) create mode 100644 src/list/raxos/evolution/.gitignore create mode 100644 src/list/raxos/evolution/Cargo.lock create mode 100644 src/list/raxos/evolution/Cargo.toml create mode 100644 src/list/raxos/evolution/src/config.rs create mode 100644 src/list/raxos/evolution/src/contour.rs create mode 100644 src/list/raxos/evolution/src/display_slice.rs create mode 100644 src/list/raxos/evolution/src/draw.rs create mode 100644 src/list/raxos/evolution/src/main.rs create mode 100644 src/list/raxos/evolution/src/point.rs create mode 100644 src/list/raxos/evolution/src/scene.rs create mode 100644 src/list/raxos/history-committed-12.excalidraw.png create mode 100644 src/list/raxos/history-committed-123.excalidraw.png create mode 100644 src/list/raxos/history-data-loss.excalidraw.png create mode 100644 src/list/raxos/history-dirty-write.excalidraw.png create mode 100644 src/list/raxos/history-quorum.excalidraw.png create mode 100644 src/list/raxos/history.excalidraw.png create mode 100644 src/list/raxos/quorum-2x2.excalidraw.png create mode 100644 src/list/raxos/quorum-majority-3.excalidraw.png create mode 100644 src/list/raxos/quorum-nxn.excalidraw.png create mode 100644 src/list/raxos/raxos.md diff --git a/src/list/raxos/evolution/.gitignore b/src/list/raxos/evolution/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/src/list/raxos/evolution/.gitignore @@ -0,0 +1 @@ +/target diff --git a/src/list/raxos/evolution/Cargo.lock b/src/list/raxos/evolution/Cargo.lock new file mode 100644 index 0000000..ad2fb4d --- /dev/null +++ b/src/list/raxos/evolution/Cargo.lock @@ -0,0 +1,929 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytemuck" +version = "1.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773d90827bc3feecfb67fab12e24de0749aad83c74b9504ecde46237b5cd24e2" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "cc" +version = "1.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-targets", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "core-text" +version = "20.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5" +dependencies = [ + "core-foundation", + "core-graphics", + "foreign-types", + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "cstr" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68523903c8ae5aacfa32a0d9ae60cadeb764e1da14ee0d26b1f3089f13a54636" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading", +] + +[[package]] +name = "dwrote" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2da3498378ed373237bdef1eddcc64e7be2d3ba4841f4c22a998e81cadeea83c" +dependencies = [ + "lazy_static", + "libc", + "winapi", + "wio", +] + +[[package]] +name = "evolution" +version = "0.1.0" +dependencies = [ + "plotters", + "rand", +] + +[[package]] +name = "fdeflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "flate2" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +dependencies = [ + "crc32fast", + "miniz_oxide 0.8.0", +] + +[[package]] +name = "float-ord" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce81f49ae8a0482e4c55ea62ebbd7e5a686af544c00b9d090bba3ff9be97b3d" + +[[package]] +name = "font-kit" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2845a73bbd781e691ab7c2a028c579727cd254942e8ced57ff73e0eafd60de87" +dependencies = [ + "bitflags 2.6.0", + "byteorder", + "core-foundation", + "core-graphics", + "core-text", + "dirs-next", + "dwrote", + "float-ord", + "freetype-sys", + "lazy_static", + "libc", + "log", + "pathfinder_geometry", + "pathfinder_simd", + "walkdir", + "winapi", + "yeslogic-fontconfig-sys", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "freetype-sys" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7edc5b9669349acfda99533e9e0bcf26a51862ab43b08ee7745c55d28eb134" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "image" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "jpeg-decoder", + "num-traits", + "png", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" + +[[package]] +name = "js-sys" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.158" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" + +[[package]] +name = "libloading" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +dependencies = [ + "cfg-if", + "windows-targets", +] + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "pathfinder_geometry" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b7e7b4ea703700ce73ebf128e1450eb69c3a8329199ffbfb9b2a0418e5ad3" +dependencies = [ + "log", + "pathfinder_simd", +] + +[[package]] +name = "pathfinder_simd" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cf07ef4804cfa9aea3b04a7bbdd5a40031dbb6b4f2cbaf2b011666c80c5b4f2" +dependencies = [ + "rustc_version", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plotters" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3" +dependencies = [ + "chrono", + "font-kit", + "image", + "lazy_static", + "num-traits", + "pathfinder_geometry", + "plotters-backend", + "plotters-bitmap", + "plotters-svg", + "ttf-parser", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7" + +[[package]] +name = "plotters-bitmap" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7e7f6fb8302456d7c264a94dada86f76d76e1a03e2294ee86ca7da92983b0a6" +dependencies = [ + "gif", + "image", + "plotters-backend", +] + +[[package]] +name = "plotters-svg" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "png" +version = "0.17.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide 0.7.4", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.9.0-alpha.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e256ff62cee3e03def855c4d4260106d2bb1696fdc01af03e9935b993720a5" +dependencies = [ + "rand_chacha", + "rand_core", + "zerocopy", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0-alpha.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d299e9db34f6623b2a9e86c015d6e173d5f46d64d4b9b8cc46ae8a982a50b04c" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.9.0-alpha.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e93f5a5e3c528cda9acb0928c31b2ba868c551cc46e67b778075e34aab9906" +dependencies = [ + "getrandom", + "zerocopy", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "syn" +version = "2.0.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ttf-parser" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" + +[[package]] +name = "web-sys" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "weezl" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "wio" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" +dependencies = [ + "winapi", +] + +[[package]] +name = "yeslogic-fontconfig-sys" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb6b23999a8b1a997bf47c7bb4d19ad4029c3327bb3386ebe0a5ff584b33c7a" +dependencies = [ + "cstr", + "dlib", + "once_cell", + "pkg-config", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/src/list/raxos/evolution/Cargo.toml b/src/list/raxos/evolution/Cargo.toml new file mode 100644 index 0000000..2ba2896 --- /dev/null +++ b/src/list/raxos/evolution/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "evolution" +version = "0.1.0" +edition = "2021" + +[dependencies] +plotters = "0.3.6" +rand = "0.9.0-alpha.2" diff --git a/src/list/raxos/evolution/src/config.rs b/src/list/raxos/evolution/src/config.rs new file mode 100644 index 0000000..42f37f2 --- /dev/null +++ b/src/list/raxos/evolution/src/config.rs @@ -0,0 +1,12 @@ +pub struct Config { + pub n_points_per_scene: usize, + + /// The number of round to evolve. + pub n_round: usize, + + /// Number of variants to spawn for each contour + pub n_spawn: usize, + + /// The probability of moving a point, adding a point, or removing a point + pub variant_weight: (f64, f64, f64), +} diff --git a/src/list/raxos/evolution/src/contour.rs b/src/list/raxos/evolution/src/contour.rs new file mode 100644 index 0000000..3ccd412 --- /dev/null +++ b/src/list/raxos/evolution/src/contour.rs @@ -0,0 +1,277 @@ +use std::fmt; + +use crate::display_slice::DisplaySliceExt; +use crate::point::Point; + +/// The Contour line of all the points that have the same value +/// +/// This is not an accurate line. +#[derive(Clone, Debug)] +pub struct Contour { + pub points: Vec, +} + +impl fmt::Display for Contour { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "{}", self.points.display_n::<30>())?; + Ok(()) + } +} + +impl Contour { + pub fn new(points: impl IntoIterator) -> Self { + Self { + points: points.into_iter().collect(), + } + } + + /// Update the contour line by adding random points or move the existing points. + /// + /// `prob_move` is the chance of moving a point. + /// `1 - prob_move` is the chance of adding a new point. + pub fn rand_update( + &self, + prob_move: f64, + mut prob_add: f64, + mut prob_remove: f64, + ) -> (Self, String) { + let l = self.points.len(); + + if l <= 3 { + // always move + prob_remove = 0.0; + } + + if l >= 40 { + // always remove + prob_add = 0.0; + } + + // Generate a rand number between 0 and 1 + let rand = rand::random::() * (prob_move + prob_add + prob_remove); + + if rand < prob_move { + // move a point randomly + let i = (rand::random::() as usize) % self.points.len(); + if self.points[i] == Point::new(1f64, 1f64) { + // The unit point should not be moved + return (self.clone(), "Nothing".to_string()); + } + + let (x_left, x_right) = if i == 0 { + let right_sibling = self.points[i + 1].x; + (0.0, right_sibling) + } else if i == l - 1 { + let left_sibling = self.points[i - 1].x; + (left_sibling, (self.points[i].x * 1.5f64)) + } else { + (self.points[i - 1].x, self.points[i + 1].x) + }; + + let (y_low, y_high) = if i == 0 { + let right_sibling = self.points[i + 1].y; + (right_sibling, (self.points[i].y * 1.5f64)) + } else if i == l - 1 { + let last = self.points[i - 1].y; + (0.0, last) + } else { + (self.points[i + 1].y, self.points[i - 1].y) + }; + + let mut points = self.points.clone(); + + let x = rand::random::() * (x_right - x_left) + x_left; + let y = rand::random::() * (y_high - y_low) + y_low; + let p = Point::new(x, y); + + let p0 = points[i]; + points[i] = p; + (Self { points }, format!("Move {i}: from {p0} to {p}")) + } else if rand < prob_move + prob_add { + // Add a new point + + let p1 = Point::new(1f64, 1f64); + let position = self.points.iter().position(|p| *p == p1).unwrap(); + + let i = loop { + let i = (rand::random::() as usize) % (self.points.len() + 1); + if i > position && position < l / 2 || i <= position && position >= l / 2 { + // The unit point should not be moved + continue; + } + + break i; + }; + + // The index of point before which to add new point + + let (x_left, x_right, y_low, y_high) = if i == 0 { + let right = self.points[i]; + (0.0, right.x, right.y, right.y * 1.5) + } else if i == self.points.len() { + let left = self.points[i - 1]; + (left.x, left.x * 1.5, 0.0, left.y) + } else { + let left = self.points[i - 1]; + let right = self.points[i]; + (left.x, right.x, right.y, left.y) + }; + + let x = rand::random::() * (x_right - x_left) + x_left; + let y = rand::random::() * (y_high - y_low) + y_low; + + let mut points = self.points.clone(); + let p = Point::new(x, y); + points.insert(i, p); + (Self { points }, format!("Add {p} before {i}")) + } else { + // remove a point + let i = (rand::random::() as usize) % self.points.len(); + if self.points[i] == Point::new(1f64, 1f64) { + // The unit point should not be removed + return (self.clone(), "Nothing".to_string()); + } + + let mut points = self.points.clone(); + + points.remove(i); + (Self { points }, format!("Remove {i}")) + } + } + + /// Compare if a point is after or before the contour line + pub fn below_eq(&self, p: &Point) -> bool { + let x = self.cross_product_x(p); + + x >= 0f64 + } + + pub fn cross_product_x(&self, p: &Point) -> f64 { + let (p1, p2) = self.find_adjacent_points_for(p); + let a = p2 - p1; + let b = *p - p1; + + a.cross_product(&b) + } + + fn find_adjacent_points_for(&self, p: &Point) -> (Point, Point) { + let first_bigger = self + .points + .iter() + .enumerate() + .filter(|(_i, q)| q.x >= p.x) + .next(); + + if let Some(first) = first_bigger { + let index = first.0; + if index == self.points.len() - 1 { + // p is the last point + (self.points[index - 1], self.points[index]) + } else if index == 0 { + (self.points[0], self.points[1]) + } else { + (self.points[index - 1], self.points[index]) + } + } else { + // p >= all points, use the last two. + let mut it = self.points.iter().rev(); + let last = it.next().unwrap(); + let second_last = it.next().unwrap(); + (*second_last, *last) + } + } + + pub fn validate(&self) { + assert!(self + .points + .iter() + .position(|p| *p == Point::new(1.0, 1.0)) + .is_some()); + + for i in 1..self.points.len() { + assert!(self.points[i - 1].x < self.points[i].x, "{:?}", self.points); + + assert!(self.points[i - 1].y > self.points[i].y, "{:?}", self.points); + } + } +} + +#[cfg(test)] +mod tests { + use crate::contour::Contour; + use crate::point::Point; + + #[test] + fn test_find_adjacent() { + let c = contour([(1, 1), (2, 2), (3, 3)]); + assert_eq!(c.find_adjacent_points_for(&pi(0, 0)), (pi(1, 1), pi(2, 2))); + assert_eq!(c.find_adjacent_points_for(&pi(1, 1)), (pi(1, 1), pi(2, 2))); + assert_eq!(c.find_adjacent_points_for(&pi(1, 2)), (pi(1, 1), pi(2, 2))); + assert_eq!( + c.find_adjacent_points_for(&p(1.5, 2.0)), + (pi(1, 1), pi(2, 2)) + ); + assert_eq!(c.find_adjacent_points_for(&pi(2, 2)), (pi(1, 1), pi(2, 2))); + assert_eq!( + c.find_adjacent_points_for(&p(2.5, 2.0)), + (pi(2, 2), pi(3, 3)) + ); + assert_eq!(c.find_adjacent_points_for(&pi(3, 3)), (pi(2, 2), pi(3, 3))); + assert_eq!(c.find_adjacent_points_for(&pi(4, 4)), (pi(2, 2), pi(3, 3))); + } + + #[test] + fn test_above() { + assert_eq!(contour([(1, 2), (2, 3)]).below_eq(&pi(2, 2)), false); + assert_eq!(contour([(1, 2), (2, 3)]).below_eq(&pi(2, 4)), true); + + assert_eq!(contour([(1, 2), (3, 4)]).below_eq(&pi(2, 4)), true); + assert_eq!(contour([(1, 2), (3, 4)]).below_eq(&pi(2, 3)), true); + assert_eq!(contour([(1, 2), (3, 4)]).below_eq(&pi(2, 2)), false); + assert_eq!(contour([(1, 2), (3, 4)]).below_eq(&pi(2, 1)), false); + + assert_eq!(contour([(1, 2), (3, 4)]).below_eq(&pi(0, 2)), true); + assert_eq!(contour([(1, 2), (3, 4)]).below_eq(&pi(0, 1)), true); + assert_eq!(contour([(1, 2), (3, 4)]).below_eq(&pi(0, 0)), false); + + // 3 + + // | + // 2 + * - * + // | / + // 1 + * + // | + // 0 +---+---+---+---+----> + // 0 1 2 3 4 + let c = contour([(1, 1), (2, 2), (3, 2)]); + assert_eq!(c.below_eq(&pi(0, -1)), false); + assert_eq!(c.below_eq(&pi(0, 0)), true); + assert_eq!(c.below_eq(&pi(0, 1)), true); + assert_eq!(c.below_eq(&pi(1, 0)), false); + assert_eq!(c.below_eq(&pi(1, 1)), true); + assert_eq!(c.below_eq(&pi(1, 2)), true); + + assert_eq!(c.below_eq(&pi(2, 1)), false); + assert_eq!(c.below_eq(&pi(2, 2)), true); + assert_eq!(c.below_eq(&pi(2, 3)), true); + + assert_eq!(c.below_eq(&pi(3, 1)), false); + assert_eq!(c.below_eq(&pi(3, 2)), true); + assert_eq!(c.below_eq(&pi(3, 3)), true); + + assert_eq!(c.below_eq(&pi(4, 1)), false); + assert_eq!(c.below_eq(&pi(4, 2)), true); + assert_eq!(c.below_eq(&pi(4, 3)), true); + } + + fn contour(points: impl IntoIterator) -> Contour { + Contour::new(points.into_iter().map(Point::from)) + } + + fn pi(x: i64, y: i64) -> Point { + Point::from((x as f64, y as f64)) + } + + fn p(x: f64, y: f64) -> Point { + Point::from((x, y)) + } +} diff --git a/src/list/raxos/evolution/src/display_slice.rs b/src/list/raxos/evolution/src/display_slice.rs new file mode 100644 index 0000000..96e18b9 --- /dev/null +++ b/src/list/raxos/evolution/src/display_slice.rs @@ -0,0 +1,83 @@ +use std::fmt; + +/// Implement `Display` for `&[T]` if T is `Display`. +/// +/// It outputs at most `MAX` elements, excluding those from the 5th to the second-to-last one: +/// - `DisplaySlice(&[1,2,3,4,5,6])` outputs: `"[1,2,3,4,...,6]"`. +pub(crate) struct DisplaySlice<'a, T: fmt::Display, const MAX: usize = 5>(pub &'a [T]); + +impl<'a, T: fmt::Display, const MAX: usize> fmt::Display for DisplaySlice<'a, T, MAX> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let slice = self.0; + let len = slice.len(); + + write!(f, "[")?; + + if len > MAX { + for (i, t) in slice[..(MAX - 1)].iter().enumerate() { + if i > 0 { + write!(f, ",")?; + } + + write!(f, "{}", t)?; + } + + write!(f, ",..,")?; + write!(f, "{}", slice.last().unwrap())?; + } else { + for (i, t) in slice.iter().enumerate() { + if i > 0 { + write!(f, ",")?; + } + + write!(f, "{}", t)?; + } + } + + write!(f, "]") + } +} + +pub(crate) trait DisplaySliceExt<'a, T: fmt::Display> { + #[allow(dead_code)] + fn display(&'a self) -> DisplaySlice<'a, T>; + + /// Display at most `MAX` elements. + fn display_n(&'a self) -> DisplaySlice<'a, T, MAX>; +} + +impl DisplaySliceExt<'_, T> for [T] +where + T: fmt::Display, +{ + fn display(&self) -> DisplaySlice { + DisplaySlice(self) + } + + fn display_n(&'_ self) -> DisplaySlice<'_, T, MAX> { + DisplaySlice(self) + } +} + +#[cfg(test)] +mod tests { + use crate::display_slice::DisplaySlice; + + #[test] + fn test_display_slice() { + let a = vec![1, 2, 3, 4]; + assert_eq!("[1,2,3,4]", DisplaySlice::<_>(&a).to_string()); + + let a = vec![1, 2, 3, 4, 5]; + assert_eq!("[1,2,3,4,5]", DisplaySlice::<_>(&a).to_string()); + + let a = vec![1, 2, 3, 4, 5, 6]; + assert_eq!("[1,2,3,4,..,6]", DisplaySlice::<_>(&a).to_string()); + + let a = vec![1, 2, 3, 4, 5, 6, 7]; + assert_eq!("[1,2,3,4,..,7]", DisplaySlice::<_>(&a).to_string()); + + let a = vec![1, 2, 3, 4, 5, 6, 7]; + assert_eq!("[1,..,7]", DisplaySlice::<_, 2>(&a).to_string()); + } +} diff --git a/src/list/raxos/evolution/src/draw.rs b/src/list/raxos/evolution/src/draw.rs new file mode 100644 index 0000000..6528f1b --- /dev/null +++ b/src/list/raxos/evolution/src/draw.rs @@ -0,0 +1,61 @@ +use plotters::backend::BitMapBackend; +use plotters::chart::ChartBuilder; +use plotters::drawing::IntoDrawingArea; +use plotters::element::Circle; +use plotters::prelude::{Color, HSLColor, IntoFont, LineSeries, WHITE}; + +use crate::contour::Contour; +use crate::scene::Scene; + +pub fn draw_contour( + path: impl ToString, + _scene: &Scene, + contours: &[Contour], +) -> Result<(), Box> { + let path = path.to_string(); + + // 创建一个400x400像素的PNG文件 + + // white bg: + let root = BitMapBackend::new(&path, (400, 400)).into_drawing_area(); + root.fill(&WHITE)?; + + // 创建图表上下文 + let mut chart = ChartBuilder::on(&root) + .caption("散点图示例", ("sans-serif", 50).into_font()) + .margin(5) + .x_label_area_size(30) + .y_label_area_size(30) + .build_cartesian_2d(0f64..5f64, 0f64..5f64)?; + + // 配置坐标轴 + chart.configure_mesh().draw()?; + + // // Scene + // let ps = scene + // .points + // .iter() + // .map(|p| Circle::new((p.x, p.y), 3, &BLUE.mix(0.5))); + // chart.draw_series(ps)?; + + let l = contours.len() as f64; + for (i, contour) in contours.iter().enumerate() { + let color = HSLColor(i as f64 / l, 0.8, 0.5).mix(0.5); + + chart.draw_series(LineSeries::new( + contour.points.iter().map(|p| (p.x, p.y)), + &color.mix(0.2), + ))?; + + // Draw contour + let ps = contour + .points + .iter() + .map(|p| Circle::new((p.x, p.y), 1, &color.mix(0.5))); + chart.draw_series(ps)?; + } + + root.present()?; + + Ok(()) +} diff --git a/src/list/raxos/evolution/src/main.rs b/src/list/raxos/evolution/src/main.rs new file mode 100644 index 0000000..05de430 --- /dev/null +++ b/src/list/raxos/evolution/src/main.rs @@ -0,0 +1,170 @@ +use rand::prelude::SliceRandom; + +use config::Config; +use point::Point; +use scene::Scene; + +use crate::contour::Contour; + +pub mod config; +pub mod contour; +pub mod display_slice; +pub mod draw; +pub mod point; +pub mod scene; + +pub struct Evolution { + config: Config, + + scene: Scene, + + /// A normalized by each point of the scene + normalized: Vec, + + /// Best found contour and its conflicts + contours: Vec, +} + +impl Evolution { + pub fn new(config: Config, scene: Scene, build_contour: impl Fn(&Point) -> Contour) -> Self { + let normalized = scene + .points + .iter() + .map(|point| scene.normalize(*point)) + .collect::>(); + + let contours = scene.points.iter().map(build_contour).collect::>(); + + Self { + config, + scene, + normalized, + contours, + } + } + + pub fn points_len(&self) -> usize { + self.scene.points.len() + } + + /// Get a scene that is normalized by the given point. + pub fn get_normalized_scene(&self, i: usize) -> &Scene { + &self.normalized[i] + } + + /// Given two points in the scene, return `a` is below `b`, + /// by checking if `b` is above the contour, + /// in the reference frame of `a`. + pub fn is_below(&self, a: usize, b: usize, contour: &Contour) -> bool { + self.product(a, b, contour) > 0f64 + } + + pub fn is_above(&self, a: usize, b: usize, contour: &Contour) -> bool { + self.product(a, b, contour) < 0f64 + } + + pub fn product(&self, unit: usize, p: usize, contour: &Contour) -> f64 { + let b_in_normalized_by_a = self.normalized[unit].points[p]; + contour.cross_product_x(&b_in_normalized_by_a) + } + + /// Count the number of conflicting point pairs. + /// + /// Return the total number of conflicts found for point `p`, using contour `contour`. + pub fn count_conflict(&self, p: usize, contour: &Contour) -> usize { + contour.validate(); + + let mut conflicts = 0; + for i in 0..self.points_len() { + if i == p { + continue; + } + + if self.is_below(p, i, contour) && self.is_below(i, p, &self.contours[i]) + || self.is_above(p, i, contour) && self.is_above(i, p, &self.contours[i]) + { + conflicts += 1; + } + } + conflicts + } + + /// Update the contour for the given point, find a better contour that has less conflicts with other points. + /// + /// Return the best contour found and the number of conflicts. + pub fn find_better_contour(&self, p: usize) -> (Contour, usize) { + let w = self.config.variant_weight; + let contour = self.contours[p].clone(); + let conflict = self.count_conflict(p, &contour); + + let mut best = (contour.clone(), conflict); + + for _i in 0..self.config.n_spawn { + let (new, _action) = contour.rand_update(w.0, w.1, w.2); + let conflict = self.count_conflict(p, &new); + + // Find the first better solution + if conflict < best.1 { + best = (new, conflict); + break; + } + } + + best + } + + pub fn evolve_one_round(&mut self) { + let mut next_generation = vec![]; + + for p in 0..self.contours.len() { + let (new_contour, _new_conflict) = self.find_better_contour(p); + next_generation.push(new_contour); + } + + next_generation.shuffle(&mut rand::thread_rng()); + + self.contours = next_generation; + } + + pub fn evolve(&mut self) { + // make dir `output`: + std::fs::create_dir_all("output/").unwrap(); + + let pref = "output/cc"; + + draw::draw_contour(format!("{pref}-0000.png"), &self.scene, &self.contours).unwrap(); + + for i in 1..=self.config.n_round { + println!("round {}", i); + self.evolve_one_round(); + + draw::draw_contour(format!("{pref}-{i:0>4}.png"), &self.scene, &self.contours).unwrap(); + } + } +} + +fn main() -> Result<(), Box> { + fn contour(points: impl IntoIterator) -> Contour { + Contour::new(points.into_iter().map(Point::from)) + } + + let config = Config { + n_points_per_scene: 1_000, + n_round: 100, + n_spawn: 10, + variant_weight: (5.0, 5.0, 5.0), + }; + let scene = Scene::rand_scene(10f64, 10f64, config.n_points_per_scene); + + let mut evolution = Evolution::new(config, scene, |_point| { + let x0 = rand::random::(); + let y0 = 1.0 + rand::random::(); + + let x2 = 1.0 + rand::random::(); + let y2 = rand::random::(); + contour([(x0, y0), (1.0, 1.0), (x2, y2)]) + }); + evolution.evolve(); + + Ok(()) +} diff --git a/src/list/raxos/evolution/src/point.rs b/src/list/raxos/evolution/src/point.rs new file mode 100644 index 0000000..737b026 --- /dev/null +++ b/src/list/raxos/evolution/src/point.rs @@ -0,0 +1,60 @@ +use std::fmt; +use std::ops::Sub; + +/// A point in the 2D space +#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)] +pub struct Point { + pub x: f64, + pub y: f64, +} + +impl fmt::Display for Point { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, " {:.3}={:.3}x{:.3}", self.x * self.y, self.x, self.y) + } +} + +impl From<(f64, f64)> for Point { + fn from((x, y): (f64, f64)) -> Self { + Point { x, y } + } +} + +impl From<(u64, u64)> for Point { + fn from((x, y): (u64, u64)) -> Self { + Point { + x: x as f64, + y: y as f64, + } + } +} + +impl Sub for Point { + type Output = Point; + + fn sub(self, rhs: Self) -> Self::Output { + Point { + x: self.x - rhs.x, + y: self.y - rhs.y, + } + } +} + +impl Point { + pub fn new(x: f64, y: f64) -> Self { + Point { x, y } + } + + pub fn cross_product(&self, rhs: &Point) -> f64 { + self.x * rhs.y - self.y * rhs.x + } +} + +#[cfg(test)] +mod tests { + #[test] + fn test_display() { + let p = super::Point::new(1.12345, 2.678899); + assert_eq!(format!("{}", p), "(1.1235, 2.6789)"); + } +} diff --git a/src/list/raxos/evolution/src/scene.rs b/src/list/raxos/evolution/src/scene.rs new file mode 100644 index 0000000..36e04bc --- /dev/null +++ b/src/list/raxos/evolution/src/scene.rs @@ -0,0 +1,47 @@ +use crate::point::Point; + +pub struct Scene { + pub points: Vec, +} + +impl Scene { + fn new() -> Self { + Self { points: Vec::new() } + } + + /// Create a Scene with random points in specified range + pub fn rand_scene(x: f64, y: f64, n: usize) -> Scene { + let mut scene = Scene::new(); + for _ in 0..n { + let xx = rand::random::() * x; + let yy = rand::random::() * y; + scene.add_point(xx, yy); + } + scene + } + + fn add_point(&mut self, x: f64, y: f64) { + self.points.push(Point { x, y }); + } + + /// Create a new Scene by applying a non-uniform scaling transformation + /// that maps the given point to (1,1) and scales all other points accordingly. + /// + /// # Arguments + /// + /// * `reference_point` - The point that will be mapped to (1,1) + /// + /// # Returns + /// + /// A new Scene with all points transformed + pub fn normalize(&self, reference_point: Point) -> Self { + let points = self.points.iter().map(|point| Point { + x: point.x / reference_point.x, + y: point.y / reference_point.y, + }); + + Self { + points: points.collect(), + } + } +} diff --git a/src/list/raxos/history-committed-12.excalidraw.png b/src/list/raxos/history-committed-12.excalidraw.png new file mode 100644 index 0000000000000000000000000000000000000000..d9f7de54cc9f6a793d7b3cea43541516c12015c7 GIT binary patch literal 53555 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 I$!G5W1Aa=RyZ`_I literal 0 HcmV?d00001 diff --git a/src/list/raxos/history-committed-123.excalidraw.png b/src/list/raxos/history-committed-123.excalidraw.png new file mode 100644 index 0000000000000000000000000000000000000000..022fb3a226377f3f226643ed088c298f88db3c43 GIT binary patch literal 56280 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 E0+A!k)c^nh literal 0 HcmV?d00001 diff --git a/src/list/raxos/history-data-loss.excalidraw.png b/src/list/raxos/history-data-loss.excalidraw.png new file mode 100644 index 0000000000000000000000000000000000000000..1d7db8b40fd0ead9f2438655ba82a7a12bfe15f9 GIT binary patch literal 44274 zcmeFacTki|w=NDNNRp@$1qLOkBqd57KtKdR$wSTvh)9;~2!cu)K%xYdAV{8(oD>y? zoO2Q+ry-{y+-7h0{`T+ObF0od_p7?~tKtvG;SK$+clGM-)z5m?npgMLl*maLN%8RT z$d&Kh*1*GqSmNQG5hXqgjzs&YJ^=sWyJ#rM;pMkon#aR~;wj&j)p}~YG)h)=(XIOU zm{Jt`E|C2_BJt|es&~^Q*AYsy#KttOlO6IDc1|j{2bn(86rcb3fW{$!jZb}FvZ)?|TV|EiawAcqSlaC|qxjZpcx8S67z^`{8kVtZcwp&q@}_r%w#%7#SI(7Q)du^1gv%?^XJ& z{x1P;+xFOFc!BhknT%gph<);R`|2KhLx085jVJ6CVv3N2w{CgES({;H+1ZU`7Pcmv zVftK;pTn19n(mG=F)?L(EKhG6kHbBa?OWX@+*sr%Y(L}!F)N%a(P+<&8BfQKqb}^{ zU+LqvhYH8%j(D=E9gQm+hl`JAn_e`NRn*;Pt`W%KoUZfQ*;4sne>DZde zpH+QC8SN_6?=0Nk?^W2R+$X8$Z9Ln#(4sRBl$Mc3k+AS%t}|`8?d3ev+F*3MiX{z2 zNQv_VspI+MdvEVs^JSe!_es&0pznL+c|M8CoS6}(JnEW0u5;U-iku;5|D4%pC|}On zljSM*!nE`~A+hEA#`S6hYdz}1_t)ICN$H;Gd_PG#^%gj>c~6y>5qBPSZh4;snQX2` z>z4bAnVFfP`vZ*l%@6{C<}ZB0*jibL$dVSCitwHB``m%@mvK;c*I#763iUk&oV zKOPoz>{+H<_&HcaxEOcKrAKpPJ>y&ovrEy8VTJ3A)zTD<*itQ4_(*oIR=9GLlUY)w zp2-boQQu3ol6v#~%wA4;c)VcRT07-u`UqfCEJ_~@oZQT3c;M6D`g*DI(@wrM$K)SQ zDzql2d`M!rglI|77-D*P+;~@a<=VB_buJrUWcqQ{b??N%hl5*GZE(~<67z=A-B$G4 zSoEwh4QAcY_gfJT(Gv4^FC@5?NjMrkq4IUUmv}-gF7B%p>=`T;ahYROA&%cDn->uZ zi`}&6A;)~ZNW@{fo_y~NHpd48;I=kC1g?E~R>#!YJwIKW=yq!kO%Vj5 z1Nu|PbM)cJ7OdW}Z8<{IZl&H{wB_pheHZB#>Y10Oqh4UFE%2rk9qzS%aGsbyh?y&Y z^C0WnR8kS0-MP_>nVZlq0*Ej%6~^vM^S4X_l%$qestx9rfgExBY|h&UAGLv)eNE}< zCIqNA7e2I&{(PjI{8h71!Y<|c<&GDIpmk@XqlEx2q_(KD6FH|1U5>t|YLBG9u+8^* z8eqUVEZK|X2p%_%Y?a{nq{X_VPs#T;v|<9>PP=eJtif5&>QiKy-4W)%YJG_H=%LVdn!1?c(R>s&;iBK_SE6<6#l`i$ zZ5icKdCFK8rAyaw9#UVjs_nSfWW(*`4!olv?;(Td)g{^N`}4QPyBhucl&o?iPA(U_lH zNm|0{H8DFq!p)bpM|Z>Su@Qj{@P_=&Z z>8jbNf_ws>jLBw}r1Rppv2jYN4H4cXXxr47of3VPV+&?cGs5JFVS-nv#E|pE zar`EHXNV|x=pSXnw&Q9K6l!*V@Hfr0zMcMZhVo6j?~2QM6L$e-e`~SYA()(r(_`GX z)I%qX!w4b*8T^dPr>)j9tN5JnuPl==~(2Ih?QH&v3J3z$vSfwTzeA$M9;CFASJ!-H9wxL4=7ylmQH`HZfQR(k9p4^kJ$ zQ$1%G*0>O=B;sR(LIkLb8-6?y{KkW7i7*{0qyo9M6A|i0G zTU7fIt|^6b`>71>DA1tFY(Amyfnfb@KSFCaXFiHizZ=~$_G0$2maV0ZBiCINTQ}== zMq&vGwDGgd-$PMOxm#(qSTg2T%F+mPg7p^D9@xJCAqb zG!RQcOplQgD`oPJtJW0DSL?`z`$o|=5$6~LZkIeBy-q2)`pjb{6!eEJv1NgSr}ok3 z!+Vs9{?W#+KOk5vfxrfgRwSN7OpK^K*0B0f<|V&J6VuDXoWhOuCIxZEsdK#je5uTP zgugVPWPPG`H&jqFi+=kCos?(hbU%kB9QHm>TsXAU_1hP~+KlfFUcx$CgN_o85H~Jq zjy)0CqW;|cAo`<_h=^C3gRSk_JC&g4yj@3K9i%~$v3A&!qJUZ3ce zQoL8hR<5W_6j@wB-b<2E*iU(?HQ4FC(4|bVFm`n2iXU`?-+>BKM2cYc(r68p)g@)AGw{`#+`ETZm+xaHs!{r?oQtO8O``#CrlxXjZkISbjN!w% zM_y4EuXv`>{%J8-eA8I2+SaEj*_+==0ge(EYta5>jxMu*tP!2*R;m)`JM7|x>85YDV3yU`?%?U(szJ1K%k1gOGP)VXlMSAv#|82!>}^Y6@7AB616D7bB}(hDv~I;z_y zCKbyVh<+N8#8w9AYS*N*Xsd2K$#V)so4Y7dtk#}2K$W|mORd>cpS z_#&jX<5g26;cC)*mhd8Tg*P_~!~T%XknCP?b#2zImwQHc<)Pidc;mRd9}bj3y-eTR zD>ePUZ-hPl^fbKJOmx_0Zmk?vlj$b*j7* zmF~V!egx0+oWe(&WfGW^Sc*@=(bkPo94hJRsnTN>JO{8$|NXejTjdsqxE+4HE-LrE z={WDyr=2$%qWFNbRyt(Zi-u@T;ol^WRHs7ZI|Iy&Ib%2kbHHg?#3eqni__l_q-YOxO*`871vlb&f ziZN1a>4oX=K8o9TSvg~)w*UMbu3zvvOQBc55&kFz(nMzSGf%Q-LFwafqvLNZq}_6N zJbbGicm3Owa9^kP#*QN%?M9trb==-O){tnkYejFe+%`!g`%a7bOtwG$>sNi4JsoD# z+TZtf5Z}jCzltQ+E@hN$H>abo(PrimSE`Q&h4iic{&%;zOq=h5RXX8SnQ;ld;35qq zfkekNSp&h-M36i+bpRYXfsG`Fu`FvzNlmY9vE20Me!Yojcd}G;xMrQ-OWaKkaChn- zN$1;FSnEHYZ5`8PZ{mC0JAs5x)P1Qor^=pnI{eb@5DZ z{g2v8Hmd7LBmcv#u|v~-Lzl1}?K>H?)vT&mvTlyu=}9l!b%XK!*d3~YpC868vQ0Gn zrXrOp*cJw^PLf*g2T5$bQLY!~L@a&E=-2W2lDpP++p>wo+duN5!zk`rO)lTp#){Yz z8}V#?J&y4ejMd^r$Ry|*6}6B8?{8snoIT|r=|D<{)XMJ$?;Jt;)@tNW|ZG24OZ_WUz|H|U2{BY6OIFq^@pv!B_K|O z0ut3B1=_lhgyWatKe;&5uKu`)`Jmb+Q*q?yIrEh($K9Y-PO0`T*Fscp`@ZrilmUZyqw}ZeIiGj~pszME#6YRXd{dFp-CUIbeTDX)~6-TT^3y_IGtqV}( z^ah@pbDPO%w&#&u+skea0AT1!X$&&;k7pfX?@i&fWF!w1BUpGD>pzZdkz*G_3=IuE zw+#)8-_JNHcTqq(0gBN%;#_V)eYCa&MvpdJ__Zs2fOH8Z63tYzGF|tBG@{!cbxIA+~l$zmAALgsb;n+ zv^pM>rE^@`;n$_9Bcp7Q>`ChPJUbrh++_uUtC1Ql-Z*TI%{Qu>R8`))@~xoU-bRsR zV%mOXVepCZY;hajBNIw6`$@fF9taMJ6Fk7Zyd|NtkLR}4ay8mzPn2EPzK!7l5$F3$ z=Mb>ifXfZSxBJ`TpJ4U2u6!#NOiN-GEGXx;QOx$-N<=G)1C`Ea$#Z&9A1sSC$MJ2o z#7ob}9Z#7R#!yP>+U2L6Q)?NK&?#TZCs;FWef#!pb-x4|#P%ZCb`}d4DjbA%slWV8Vn;88lpKgkv0@HD!m-F4b<*wArtK1Zm zLruZ5RsNq9Er#xLP5zux9sPyK+Z0z{7dFoC+jlXZUF%8FS>T32a|%k)-rb@OQXwBg zj%^svE)wy}=~eZvE+%K{(?uYa#l{lt?QQcV3bu9^?}cmu74-H?=z6O-qh`+O9a0F_ zw(;`vZVlVMk|Jl3EL;BAQ|p&;XWeZjl{{zs;oy15HjsAvkuAetc-;-KcW1a+MDr)y zM+`Lu_?~rpZ0z5l+!f#uP@m^!`wQ|rZ2<37iNF|6?cjf|1MTyA)n3JO{$Qv& z6`x}i!VGWy{2DM^0bFsUmPgX4V`2T#ct8WJ`YcN>+Qj>~-D?YRc!I1KpI~^M76$x* z!otFy{+Yg=B>x+Rok>VQl@)-8$fdyWt(cEhc^Xq~#QA+><~mec{G!6XHNY$> z@oj&SFg5I54Oo))y=?p({pg!DsJIm=)w)zWdMO)!4tC`BB`4|@2--uR!BF5T%R|9p z4}bGMWzPkpag5e@h(u0Y*^K`dC$=FFbprn~bPJl>sIw#tR-A7VFc23Hhw*`lt^BHs zWWdsJX+b|SsEB>#{A-&FtR*z(tn%{moJ6s=z5R&Wz34YWsLxsTjJ%S6BMbc*3gAb8 z_Ab3TaJ7pwh zy1wUL+-i@qrSHC9zyAJN4qH;9%bP3DV2t1z+uXZN`%??wTi~cBqQo3FL#0+Y>P>ZH z2QvW`6@-CERvZ5~IwpTaNlVhy-?`65Yp*@$)9cAy(){2jZBb%=c!H7y0#{+sX4B4v zQ7ai_xwD{u5o@#y?#gSJ4px@|Cy$4y0zI+rM?fDsKCPlF?gL>!wEVRCavg+Mo&gLw zLEBiAkqcS=py5W^lf&FBeN{2DB&E7v{B@TYazpSSB|u#zmdtkj08pM9IWo_06<0YP z$EtRWSc{kWFJQ$~7;~}QhXmlEH)w&|obq&%1YYT$*T4Jbnr1oxf0x}qd+$6>knqTN zo$HXzuUNP~-;=HRRUAaaA{~ZH8YQq*SA6$3BLgU<2g=a7dj9_eeJOv2=pKa}baPy} zn_v5%!oI-oW=W`3HO75o4RiO|yw>n0cTd7`38^dM5Upk;-mHXU;S9diXC&^rWZGk$ z5%Y9Op*2tl4E39&fuxpboA%frA#~oAwNp_lmNP90%N6Tm-q^-x_-Cq89S2bg;vOqY zheiQIfq2E4amz@9)@9F%Ey>=u%nA82&q1|uL zd|2OKfb_o8-+*+^zp&l`mPCI6PJQD<&yjNPP#1p(Dd_z5!Q$751sc$VUl zUPp#ABKQ4!Sr)%tGsn>rxW`}maI@QCI3JEy^x9guxUu>$Uk9HF@o30bHzbAprjdSs zEjyFWp>fH~Q&Zi+Zk%i&VTxOTs7^w?9s_2^X0wU0@YhlgAJCUNLCag{NzMc(q=$q=i) zT=*8fAdZ*~83ZdaABzC!JooU{ANcE@ec&GmY@}u_`!}v62cIc`5L+rp=2DL(<12$DCMJ>wtyN=v)o0pMu|_iogYACSW-o={AuvYBpuK@{ zjEsYSH&Zi!7` zO(vh-sDCmB><&AdwY*Z{*&I)|(^C*UPfc_(j&{V%vHYCMygzo3+KWo%DhU8S7pza_ z_*Q@5@?*ty(X()8e#uC}qp^fMughwj&v{B&iSAKaYF8hn+gx>^m&wo@iI2KW=7auR zNQF!bc>=0JD2P5-VcMkQ)n~t=7<$z+C|9f2#A}}81h|ph8F6v`i6HW_ zX*fVXqODhsrY3wuARvWqNt12*iwn?cHSXKAJ%@=7k5VSfzjF_|AyZBtd85a=_^f#M zPrZ@sNmE)6sG#gaeGl&+zvRB{UMb~^HsRUJ?jPCBY!p}xRZkQ$a%P6WEyYD{*N^LLklwyoKz^*~ zPiB$c$oLm}=`Qm(dYMiyOvNDl*pq`iz(O&3cKL@QbP>S47nN=-(usQ7{J6{eACXLQ zNW%1)*E7^G=o?roLN%4&eI~)?BzjZ*7WYv-)mQ|XXHcrPxkhJD`glv+b3P-^YbRo! zK_J!@KnV*5ar$SHr2}~GGBMU~@+9~N@vXpUw>4vHD*gpf?p%?o6kkZZxjrA6nq7W_ z0F_8$3m6FI7qY~VAmqbSU|Ls_JTaNet53y)fH`x|E8f;=P2R>wCjE>Yh5 z0hkRT3_Z>+W>_|E3Uj}mE-K6>+m{_bd#B+5vn`g-Xg(=j3dyN=dKXA6i*9rgLx{h# zQ>j3^YaV{lM_Inwal3QGa6<-3h!w8f9K$XOr`3Mo zk@re@@C_Y{&V}-FfQp+$xJbsYN&Th2$1JlrQ*%mKjuq$QD4 z3<8Jj)1mLXs{}0$)g;vTOnfq2mwJkH65WT-W6ZfSWWhsa!9z2BJJj!nGl}LKK`Q|y zTgA1%_(60nPJgqKM>w}AUFC}+RFGlfCz)E@O*9`HGQpIv@7hJor(|;O;*hd4g9*_! z&~Haup|8_AJKSKUXQo>F`mJWf1gqR^egk(??q0D*0p2|?V6@ud%T%y0L9i^CJD6s@ z+nFk7676rN%Iny5a;+~$@42nDBa^)rvI%Y4?m9F??>oFH-4^*pYKcAeEmf7WigF58 zg$!z|6y)tbga1l?g?V#+`{;7#P{od>58UWEg6A&P23Q86f@_jfg)7d7{$o7$ItPj? zZ;R3wIFI(Vb$QSb1ka~S!)(u*M3XTH&4CNZpl?1Sr)v*S6JYes>4#-3L5G=$Sx4ON!AR z*8U0LC8t4sEs>We|oCvvUDJt4;d6Hz(5SgKCjS6pU8l z8u?}5O&Fr4=wI>yt9~3e%}Zhl&u8&f0)z`dwC8xbpilQ zYt|}{n$KN~-e`KkZ8=>x-PO?n4GRlvgnoQfkl$}uE+!v~3J70;B3(cuZIpP?6P40p zC*T+1e*nKYgOxM;CIs9vn-pxQF)x6qbXNHeNb#GC1bI6&^HK`=yhploPlA@dHB}s$ zQOK3q7ns)vz_x*62MgYBQSU~hR~~-d=jhwfZD-y+k6u9+7Z;~gssWaPH<3|Q(Ri() zGO_xh*&QNkOc-cgG$Y^P-I0|_KcAUXX8M8CME?jtssdMs#>fCMhF}ToyOzqt`#*)m z75+xMo}8dvY$N5RTxSEHod?Vrt|q-y*)sR~K<|c6tfKkJ4AV<`0N^?cy5$P!mU^jZ zZ}OCzjq4dIQi7QguS(~u2o}XgQ`&PT zUu$fsx<9Thrt(Y>z78lWSv8}=veta1FCD1b-Ye;Qy{JBF5tw-mta6uOP;^~lt)kn9 zKJ?X!UH?qkuaw4tg->%P`X%la^Rck8@r)&QGeU?508ll!)#|pWtk#!=pELe`w!b_h zBg0REx9H>70HV^vH~U=rr0(H(5Nfb7q3#$san}E!oW0b12BZDR>F_rIb$Y>{Sly`} zPWAAgjEnT@FAKdn3di=gwzfE>Q^w>eWAcdpa8B)t_&{u7$m3lrXiQUBHR|b1izoE`|^l(;b8}v4F9aL zlWc44vj;9|s6q`n00;*DM57Ft5US&b-T>LUEIWQaJnG8XP21A8`tgH;5s@|Tv33&6 zWfK45{aQ=yW_>Z=RonG)+0@rQ@c@>yOGw({&fCmgFgZH#C;Zi6VX;L1E4{yyHAGT+ z^hQqfM&EM5>mywiUzM*vj5dw}BH}cIbfwS!#+s&QLs(*z9{Ud9aPO5iHy3b|6?8*& zgV|Tqq6@NfON)yE@M5j}{F*q!>{T-w6$`d53W8>z@|r)->2OHe*cNGK0n-KV{hI#ncqO@-dUd+R%hMc1V}23fOh`A zhX^@hshGE*DYc|_p4|AqOAJ()_#Y7ivtZlb&#Pkq1-P18EkQt`0uTTnf3Ebv#+JLx z-VLT;p8AxNAElNo9&=%^!Y$|0lP~zrfZS!R!edhn`j)dT^|G(JYpTJwXmOyJ7HkjAcn;O;wK;y0L z^d7P2m^RukE_Ub5ejPJ>@YoZZoV?xTCs=YDucw0x6@ylZy1hO;%+h$~09z_#O25(7Z{RF%qn_M91RJu&@ingama zfWCo&tK2%dP^8t*8%2Qn)S{RzYL@!zUoaWj*lmYO%RfOf$?!?j*v!U3Y);Uc(qkje zTD^5mtkSQyoXuYZr5VcEA8^?mYlcU97@B{(;nuI-shI6jOo=y;Rem=6ZgZ~5$P^)V zaytB4X%jZpEB|N1tgzpp_XV{EHRdbbN`N`WjADbZ5!eANlyj+5iIw*jnGPS)7SDUV zk!yPXV`^;am{;@SWgCo~*7f(=4u28=DWv{}(6kU&&u2XN=BB4C|26)>tf%+g?y20v z!HW0Vv3|2G*p>vo;<1hbhuaBB#Wh|**K<@d?gQia=7&t%b;}pss6D8Z!33Ec8tbzh z#q6}xjovaoS{wNqxtG=>x!yKFg+M|gA%nYXzpUoFGEgqFYUL{xi?@%*O_~T%jnQ1q z08!TIkb=N5b{vJ`AR;qYe6}LXMqMa$-f}rLTN%*0+o1+G9TPtD7))Q3YtIj_unzU{ znzFIuQ|)PlpYa+AvHiJIXZy2=(+n3G1JjYrugtHI->g5@PgS5To-s>?vm&mZh!Dyk zm~PXaGM1raq_3}^?g8wu?G2eF;}{rcxXtO*gDEZn`#zpFq(Zh{aw!|Km!YbD^u?cC zze@H01J}<^YpBu_44gvYzM|M17b=0q#6^xKnVQ{Cq47_{&(-|gbl)=SJxCX7uQA!A znG0(dQpoq$v1jr8@+kh={{cpRjo`^z?~tc#jL|h#hBkkBF9&UgMM8{(l5=zJbttQ~ ziC;QoPf|;%nESX`e}ua=KZ;$|3yJJ)6jKeu`5ip@WfRQ-cR4;c@amfypXc%1dgk%! z3UkXMk(jyEsx43P|3-T?_)U9VVi179?IIAbnbH4b^Ci#ygUtv3WLVrdRLcWj=3Hmz zviTd%+c*5wOlJb`4jY+Xn6-oE(3UiNemB|>;Yd0cvicYws_r7uJRvbIDqWV zTky0=Zm14cd7?dBjyLDKNh}{qKzeIe^0u?qxCyl?Q>U{Efr-!Ediq|N_D%o}L< zHxu*pAPE$@GQ#DSjWqM!A0y`aFH?i(QfVz*L$rj62Qe!!a?Td|QdCMuyS%3trt~H# zl7_620=DLu?~W065qS_?LxY**)zZkL#zaM_yVt6=HSTj2dDx`{isNqolt&Ce5=631 zq@^E^jCnf|13g<42#7AwyI)XkGy8$6l@@OIBWI8;Iaz@g3u?!_#|DJ^4X^B9LIJk< ztAptkHr!f-KTmh&y=Z=)2{Pwlhf*tpjTS8v_zV zu3?!WNKH&HD(XzMh-GxIp3x`coUOakwUy|?DXD^m?JaQwaos3|?EvQxIH#1sAhl3g zQ!_eAYEKeS|1kF(RA_aq!4u%O)aET}fCIVr$s@gU;d}1+&tod-I~U4Jc1_-YV?a@I zFYX765l<|e{OB1e_7JI$76zbd-}P9S|DmYe=+^Ts6`DCjwb4F6Ki?M@_l|`N450k6 z??ObkadF%v6EBFYS?t;tB?BB4#pXeN7T1e>xA=cSppkz;pzFdOTaRuPZ0OtIl@tVn zxIIe~#nQJQ%?wArx09H;eV)>^XbMi@7Vdv= zmdkpDImggL_xaPpnf(qM-)b}zsRQ0npF6tCkC5x(vU%)t_>Gsg<0KZ=L~y68-GW?j zFE4+mQ4)*Z#gys(^6+p#E4gW(4uHNRe^95w&BV^-O>Y ze5+lGOWC>X+n)7e?{6%QbaiReCdUqRpOA?B?jA1czGgR>JsK?B4~vyzJ7x9#_nD0v zmkYhN>=-}@r2lPwy&?mMi|m-_(*onWE-UjVHVyld2)ltK^oWXmq6kIncrhyendpr8 zOd=#K+*swgao3%@5u8&Qj+FEN>z)c&hUtt+-=l{Q3&$w^i9mMo1N4>OX!o7Buwv89 zodiJM)O!>x2!RiUpW6@kofYjy*I}BeQr?_!1Q$H)R=jlu*;_reMD-gf@8Wqkp(;c0 z?l{I^(+_dKlj zeNEkl>HRg#ZXHRwTRyQUX-6|5450qS`q>u9e&8kB z)>qGeQ}Ho(1Ve1O)|(XjTdzhst^1HL}l?WdN7ebj3Eu8@`&3=a&U{4Wu*?98NW=U*hCUhl#L?U2#h)cvh z8;|G_JVZnn1{#On3jca`oB}#e`Y;9&Y0NGtTH7dPw69qk7tceGL^1&u}7ta41Xsz7wgBPi}d%V}yI(?El7u6~T-Z z8ZYz$55h{i3+N81fIub=1V*fbs98A0U!kPCX~fWu+8}oC7Q~0WF@2*LaXufQClHkIxMIau0+;-?~|8fl;mm_{$A3I@FkI;1lcw z`#mbMjsnE##X3z5ucz1yvdAC?kgY+Q21F8W`7NoOUfMvNHl3c0wuEMLaI9; z+!*UhI3NSaf6Cx%hFzyFfdD&rjr&D&*FoqK#Eey{2wd^-ML~0q`(hq|NI5gmIJ2(4 z0(1u`V}uog2WWo8Kxkqf9R*O)0-P0I(knh=hMmg zbnX3rx%NIH%{8vp->eM^3PM$qFkwDdgStwCOCk=MPl2}(Fqtv#a9Yq!;0=m_cWVF)uiG>yCpDnlHHPqcd~~FEgCcM#n6j!${i+r16nb2q&Rs0Ki`;IBKtg-#@B@;x~V-X*bYkRG4l66ilMeZ8O;uxf%P zqY|Er7}wFv%*^NcYx7NB+OI(t5iAjSa<=&tzVgs3kc<@N%&#hE;%nzJS|(3g3B3^i z7&wS-pj+L{-Jd?aW40NbVCk!wV=#Xf>;qPgjkE}s+&u#v;hx2 z=Jm13+h5Kc!N4bm7V3icj|3J~M0~-dgy-?+TSzB&9$I%suoF@OFCTs($_$G93|q5m zwmY0y(i3JoV#X&}KXE-Ziy62fw1jto_@xpx*Bi~*9s&-Y0NBYiTMo_%LFO;qkWvA% zy7ol?6a1YUGAIaXBZ*Jp_~o48l3@b__L2s$Dn*zG;5kwfszMlS8g7}N>^inj+)`4I zqM-e5$VvqQ&m9p80-iYN=S$bvzrmoqklwZ^r*Z+_m=CPLvN(ZdC4Q1Mp?Y%r-H2f0 zEs2>s2nNvQ-%r?-$#2er+@=vLl|yM2-zmZqQ+x({e*#NF0Oy$Qs>fhdb4-zDHxz6! z0AJ1}9eM5y00@9Wrkt&YuHOc@05A;#l#q5n4fH1x25>+y=s>(DiP>S}qBhcTe zG(X8eibHc87(pWv^=4ql1vC%xnxFoMifhlfEBn#VeG?TGm0{%OakTz{`ua&aXdamt z<$0AV$X7<3KPAhVwUs;{`>*1-;@R$`wMCpTU%nen!InmW(;E3tKkL#@wJ;0 z%eUq|^!+56}J0V;+er8iD$=| z_pS=k@%ZKI=`7?6gVeH~k*b-mCKU%JWo;>vT~&y{zMe$;t2+UV!s=O6OCq1aW=aTN zBf9!cPlt0#qnA{zs|v0wlM=!;lS{Dr69dwP#fkcf`wSP8UqE#v>r6qFG{VDJVp@W( zlbUxfZW?`}$M^KV4fIsjM54xCEQTL#OCINldNNTrH4PKChg!LrZ!0NX74!}x_!eK& z7F~A9woemXyy=!-;9)##ZJZmE1Vj+SwJZ<%uUCK?X|Gw&SxJ8Wyg4za-Ug?%$dF?Y z<~MRVc3ZjI8c^U;qay6mt(Fh6q?)zM(BnT^`?^a znQ1Z_Nr@Tr)^gVb6y254YbO>0qbJ$@XL+=5U;e-4(G(r`a^HYGF%SM`?s8Y}s|2)V zOvG(n`Lggt@Qq)$VmpLRxP2%$y8Q^$JA?1sPurG(&o@bN{0P|jvp(AW#``de{3S2q zSsu7wTln4;kWp6iKum-kl3+nteDl)pBsOZt9@RDxV^O$$G*wFR>rRt?Fc0Kw_tZT# ztZ~gSBoKfkyokFuljsV{qwxYNcfF_Egfyy!Ii-B=#%}^J0cz*~RVEzmLYt#wkeco3 z;P)sDmIp?VKA}rt^&%p4JZYHqdyga$|I!DxnfEh3@mKsC++r1h<}`|F=5mgCuG6Ko znY@ZnVR#{~+D1|}Kr_Z6tPZLeO8?%>#^C?K&5lpn&;>D%+C;%gSAaTnX-D*I1;Jt~ zqIxpqRomRm)OyvjJU=zb+Bl!2>X~(ZJC^{XRcuanOGp~c&X~WGRi1rek?l`JqBlW@ z#Io&;Ko2ZFN#04UNI=-*L+H87-+qjE;%KME z(N2q_{l6`aMns-*=Pxe6X`!^!LTRU^+D?gW|9xT`)&GBL{+$*|J1vxUS}5(bP}*ss zw9`Uqr-jl^3#I+XLTRVP(N2q_{SS+y9T!x);CFqJq+G2mto*X#eBS*gF%Q*h-OC4> zA3JnfKX1_#CuSD6^xP^AxT|u9phq=8nd@rnz(Z2b*UT~2UFjAt(@5BdRQcRKID9Fx z?XtTs52HI5r?67lY=u~^BC6RM_djmlt38$|#rn6ML$6{ze8lH^{G<_-q=UjCDUV3xGp%%yAOa(EDJswbS5 z;%9v|oR1Fn0s@z!Qx7Z)(`s2NUet_Je7oSXGKa4w%d8m2TQeNx_bU5cIV=O=68!?iivCJVebm1;%hlnt{G zC-90b$l^gBP-Wf0=;Z2AFNwN?U%q;^BCj*o!Mx{Y<0qvWwA7`-&x{n~){02pPa}5R za;Ts|MOSl8<*U#JvfQU@QORR3+v1(1xqkDtbGkpf1E097hOQy1j@QH8BzPrp8VvhGY;V~pXkY^OV zsf1~vWiD4&9V+zTuvGM_3;jymSE}oyX}sSTVwDq`+H>7x_iKPv^F{7wNO)S>WdbM_ zK7Jq%BuiTO6>{%F>#BBI=oL~->23hkGdzNmD{skSke;8j#(U>Ok>!__B~FglQNu8G zPM-!fEI}Ka#BhiDWVk%2iwh1%S){&7p+>0&Hts>G1!nKqQbE8Sr95IpOC(Us?Io1q zdA4TfO?n9eC{h7pi9yj9$2TnDehgNLI<+N29iQhW!GE$2s;?k$_ZTsc#g3rZMC;>(&qCIJOJwq~ueD27}t-7K9>K^*uO z4a&(jgC97FLL{M#eIv>zIYCLb=HD*G@Ewk>2Dck+?1XQR*Vi&jQ9x}A?J2&3Q{A=sWHwrq~mmIiu0rtqv;VkIf>lUGp=JkH^I_DAeWPj9?DLFeoT21{X4{w(o5) z(6eTy9xST+m{XAOfPJLWL|v5_VoU|YR1sT9Mz8W()D0D_&xScBJV04YTd0wMn;F2( z0waQh_K)k?n@jnG1v7^Y=X6B^czv($)3_vC<%brz^F-G^rxzlq;(UhmWH#Q3Zmx#e zFT!cihSc3fS1cylB7ClO3tPd5s%2zWFnVQWnxqh_mvMM(gZ6c3-cjQtt1JYCt~ zufJhmp5w_`Gd|lc+CN$Z7l3l9 zV64K@NdG?YL>Z6GMLD|Ut&wsUTyWvjwaN6LUsko8 zH8VM{d}*BcFE}2y_^epr(Zp+cczAT=><#ty3jZ8;qR1{U7n=jwlo_=K;0l&my*V-n z9~cpQSNonYd94|hJ6l05Y-KhlbDsyrYtv=({O|!ka`n~nm8aWHUHsu{Zx5(B7f!9Q zsOHxhMoA8?oW(C6wy79~Omb=--&x(MuTV_5VJ5e_Q&J)lqLU3lOo6r=i`re=b9C}Z zZ?{|$O>>mO;4N}QU}9Ve|2F)`7re*ESBrd+E+1#0dB&CT;34vpWXcP?e+ z65+b`*7{;!mP@H?cE22WpZ^UJnEg~(Sai$gePWwscH-N&pRl=gv=x=!&l#m`Q11IX zQpw(JFX8gFNo>{^pJzNZ2aC%04x7?nU{Tz%`Mx>nJzDqn>`Og;o9()Vt*;#|FBq?p zv1S|Mi_*A{)-in(Mc!8q+XI3v(YctjNK+*zC(G*O&h|WD7?b2d7WS3&t&+2AX=JD> zpgvYADfWaRU)lISdjyv&dNv5C1>9;WzrdGsqEoBCdTi2bs-X6QkX&E-t!6`p?szUI2~@=$%G|u0{R8JWCbjNa z=PqiMepY{bU3nzjm0=^ibUad1%Ga{VP%b0y&-s4~-MPKJZE7xU81KeXuF==oIbqZB zDJkZar;eb-UUz#~xpm`HQkPYd^&$HL!qRIE#mO;^EqX_xu6YS}6UJ(i_P#PmzJO0- z2|g*EEJ)#by1Z{yU-8pfpT87+b7E3**R{1ZTxx%x(Xq|uyvt)F3W{v&h7#-$Ujxp| zs_zB5>Qy=EVC0HLm$>t#Qoia}pZw3uVh%!V*#!j>Xj1uF%HaZhZ9iVLh>~y#>hHTx z4@*c?HHIf7B=W$Uk=6-P-tO$RS8OjpdcpMli9_$qmTzl#BnP+e`u_C^aeINZ7Z%6O z$GCA*wp#VUn}V9?*wEov;U}FIsB1>3Nu@<2Ti*{thtsB+d ziw$j=!+~EVHWI6F3#GGfSohBtQYkrHULGk?{l$N&{sLI*Zc#VU+>o1THa|KbadFB| z9*(ij{O+MPHv?+r8*kf2A18TlvekRdy>5NfozuO{4B|E_u4op z4YedzrOT=QHfb-9@Acu#=;l7B8FK<_KL@J~0=Y-8-QXgJxpbx#=0XfV`+Vx@%j=ev zlpbD1JM?lhyHoGV^??GqGHGvhOs2C1!lL%axSVvA~xRGz!e!o(xC!8n+}kRe&4kUn?yr z1|T!|*o)2)vxN}4{IB-D!z-%fX>@aLP=x--KJLzY3JBqa%6KqeuQ zBqLFY3P=XYNS3VRjG&T(fPiF_oHIy%m%i?IzIWbv=lugu&$-=QRb5@(U0q#Wt<#wz zQjNFH|8`Q{16h8T&p5KF%QkW+PO9p7wkF*6j{BK(A>zL#8PEQTxZIa>M+$v|9{$Dl5}cPi?lA@z?-h&x3iI#`|=4iAbGv%GaUx#aen_{8YZIuEsX(#zmPrA33j z@P{%3_I9G2cZvV0VS0wU7)>}RfQM;sgr%b?H%Cf_+(e*x1zoM*Bkre(5(~5E ziN9`k^-4(9EB(b|D?LXl(#bqKsDCD9T(MEa-oE)YrGfN5JtIS*{uzVNE7OF=*W(Q- z+YWgj`}%H3Q#{UG5fRjIn*8PUqKq)fSyBNRmyiwIhY}tpQOkW#-fA1EnM+5r;%+xr zzGVL@=GgFjvhCLx>a36?Pq#q)xpHMsUNLTMQt?{e;mzXx{k}wz>J?wV2@9>!9s{k> z7cc&Ba~Mth&*q>&EPIKoWp%9h!S{&+d|Jqu$~KPl?*?paYXJyUS#WY1 z`SZYf?qkM(HakS-d5uLYl)cYf`Xh6g>~%IjbLFNm8IkYZqk<9V|03B<8XP7n#R_Mz zUap!^DIYs9_?Wixx8z>9nBBDGk4M)VPqOTHJUikOuyD}iPjJ#%X_Jgx7u8CCVZtQp zw!~XDG1o=8ByO1fGHiCWw_a!>t3>jjeHVxI2T`k^ttW>|id!BJ@9jzM?M>HkCf5fR zM<-}CX9iu79O2oO3yg?hpWm6*wh3p#k$Q)^c#~zHaSK;_d!M|?)h#WfRAAzWJhLi4 z{>recd$?P`C|NczL?QIX(Fo^H-!t*ZJz3^JJiQwst|xZ`NR1J$;{{12>2+6;=NkB8 z^j(#U_dBK-arECjO`%#hCwiQzlfB%Lkm>u@qM%`izJ#V8d-x(@Vl8~<_m(_^hb%tyXubH8Q9gZ;=w^-Vze1V6%zY`LTeTs;4KOe>5g#{4(!(#1!3#Jf+(> zz+Tw&wRbh~OLt!%hsFNfvlpf&cT85~em`*D&K=ITSgsx$#dXARaa$JuM55maaI{41 z#FrPbpC!5&sq@<6Jd)0HUQ&qdStHREHMr>tzw~E>rcZP;l(YP`Ym{(@e>zqa;#vFT z9==xZR>g1R_8`gGeE9obNj;tO`7V3EH^x`(OGovl>3E~Rm;(e&j_4t_)<;1t|| z>Sa&UzKAPpBNa|3+#O%Le(4T8=_c1$cRGqonAUaOIKf$^|4tOrNQH%I=uZ~y}edP4UP+d|Jo+*S6^McPPm0#1Z7-QW>Ax}Fr2+isT<>Eo}(8(6nBLTwphjbJE(lPh3WWGDaKLqkkGhDfH#p?Ze?MCDk5rHi2 zya4O!4NWE_Sd%?;)@C>;7sq2WG1BgPqtQlLYpFc@)_C8Uu*I9odfi5cm-8VC7b`v2 zi?@}ib+~V7{Fj#4UgGPc5$*U;hMb-47iELm{9%51yALAMPDiXNG`9YbbqrJqF0hNbR!EosZvW$@YvOZ0zlC$D57NFq`D_@?r+bnq>lcP_7WTV*RFPcU`Q9ev z@nbkR$oQlg;u+?<9yogPeiyW2`?O-uZ6lSDM{DL&afWpKVO^g`Yt+>q{+T|4sh3jUgGq*GziyRu z*1gk75D{!R{QjrODwjR#yOqx}7fa{OT3O@*ek{Rme#qx*Q^wjUt)|~fK8rn{ajT(q zz2n#Xq@9MXfJLjXE1&BJ3f+>CIbVLqyqfD?ZP77hYLxeqRIzK1b^hnF=N^F?Qx?_B7j}mKcFXgPiqE~z zLM{?kX& zYEqBbvHozUdp7}jsX{I#E9=H@vB6{3>~So~H{@x;{-<=%4M>Y*x3^f*(yc1VH#|JN zw$tIJzcD(+$xc0ekw0uY!Oiszd@i3=njzQ1llPx=!LY7{$R#OyC>!$M%?eLNEeUVu zxovA4)xRn~xtQ#>$I&HLf5=raMC?Bm)hp!mXtG#y2KRjW-Rj8rLE9DLOOlVMiX< zs?CuTCzyU>{F5VIUsPSGQDY?Fs`%xwohADkp6yXL$xGP2PX8C;$3eJr1fAK%9`fnE z(DtBN{sV3$N2T~4{*uGD&QZkmf6^yRy;^4(c`xGz^=Il_3SLTVFK0sixXEqG>DwGF zdTv^Crb@ROl};)p3?&RnJp2HO+Al_Ij|}pZ@44-Lw3}z(_H4a;sW^~Z0PWRmz$v#qA#m4WBmJW~a z&icJoKB-hAZabi1d|%=~ku!XKDc8Ke_ch;Fd;EM?p#+J(*G;M-p3-2Wio9uHaD%Tp zuSi`IGLNm?=((lS|G#VCD2?%wdmIjg^LwzR0Hzh+Yc<-ne`*Il+-wi&Ya}n!8xGB@R(3==h6g_)z8+egM$=Rp}A(YKm-Qh%fzzgZ~+pHvFGq>GIB1uXT?v<#PHFNK6`6!e+K5WR3VS zU4MFKoXfVz`yl)KX7!54Pc0EVT8u3uyRi>U#xE^S_4;V?ki7$Wn7Vn9 zv$*QZ(!ZFx>vnxvhuxGCGFv5W^rGkuzbu+u%1p+2H3n&t{PHdTe5u=L^QPwOdw~fG z!`^LZ3pq13BR>=6UUPBquZS}`Lx#o69pOR!fsFCd)u*Dmy3%>gSb3ip@-X>vINDWF zH5)f3zvvAQOA)e%NC%3IrGMlr?(%9Bmy~D+Fo^PVsK%Z7LCGLoBj-t!>)HJK$_gC=4*np{AWoWk_{dM`cc!eWQWk2_MQeI2Kf*z$+`IkW z7bH;lUP{=-1v#1cDSTuhH72nu?VaUR{*Gz<3>V@`X0`qK!~a(Clur4V;POsJYQ|{= z-tS3`+Npxj=zl1hV=Rjed z&RQd{Wl~z6b=NaP4u8{7=F|&(d@@x$x z%8Hz>g64nJ?fYXkntAlMbroqWby===+ebKPrB?DivhCzQY_XuqtLwcAXf2_rPG1!+ zoqnVw;gnxkRJ217pBhK*R$4t6WyOEAw(NDi>f)mOarpf}bs1!mjyOH9x8kj$x?NK-~IOH_DM$WDHQe-UL;_0Lgq zJKx+IrZ1gu+kWx6ciKsTd@8$W@9nTk(T^vOxpsXE|TpG&cWw3Yoaw~PgVboH1r0;K2kKoiC$g$js zs%n(Jv9;k#uV+_^d=nZz`Bvqr=dnCLF=h?N{5VSA=cZ4c7d3Y53DEc7gf3xl`qb<- zTnDvzjS`>c5cAr2NcHF;?(6;Eu$1uk!_?-&h;z6$EIxImN0Hl*J4AeV*eYc&@=TUV zSfZ_Tqrc__D@6|EBI(9i*WL;( zqocQwaYX=$4Cs%HY^7biUsaUqvlH#zba|CjHzfD=otW|}p@4O1X*`E7GuGDD_Q$A~ zp)To3v+t5L+dMDrklyircZ=;j5_iz>tnH9OBxCPW-SmE0*nH(2qAl zBwQ-~|1HJ;>*6LQ;7$FrzdbN*h|#m9;1J7r>+j1aPyTz|a{9#L;^ILYuTDPe*FEGH z#PtLhvw!t$y`*^g-+LX#XFq7=!dyuBmz!8vc!w1UhB}c69sd{P*yNJo+WF|B$&xFPu;B4TDy> z;D?J#Pu}(PU;q4egLmzP?ujWa>OcLExsKM~d~?VR zH5ihy^N+3iA?*^@7AY2Kt$?$mKHu)^-te3-4t@o{JQby#{#WR~w|Fnk{)feIw`!k* zO^?65BsDOoKP36;zuk*sge*oXH5C84l&=&kapsSIFV8OiFfcgiLGKFsnTL>Y^pn&V zN%@kA2fuyy-QR^aGPi9EA3QKMrWo27TbK*jnN#^`4irOEW2%**J3-j-snC)m* z)(Dnagc-xk%SR)tA4o7N|TJ|>I^sldI4VQZ*CBbCmuPp>Yv==2K`Nug75oVUH133!#LeBI1+ZFD^ zpn&!Ed~rQw(9XU;(v!Lzw<*>Ez_ec7JxNK|L$O!s;^SimlE*-Z?ypdFKkAv(=H!^b z^w&>-kOu9p~a=KMICQi;j;j7&x#{~{loQX zH@c)=Dxe3Q#Sm>P28?y<7XW*5fqE{;V6m0Xf}@MAu(=)Tca#QVOPV zDzM3dMh&e|dGWpSl?nDsFH+=1a^85+uLC6Z`g29Qk40me*P0FiC$z`p_R)v^_j??( zU>g9%F9=TceQadO=$Y!P+|Lwvu0R5CLBK@FvnIh2+d36mbvX1PvI=0ZypbPc0Tw6j z=F<*fI47fLQNsI9BP(bTO2JL@#0AsJ?&NiU?QyJWqni^q`hwl2@K(8!`UGN0Cm-NI zj5kwS*v>4^_GCea*Kjo2zO2CCA>M8&TF!2Jf9#;#?NHZkutXp$RAF`URTd(5g>R;; zq$WW(-A{GrV1MrJ2N%oX?Y{Jf1^$lD=8$(<6;RfRx8)UHxk_3@#r0an=nOlWm>)^P zFpv+g4-(7>=|C^?t*!$Y8i+<=eKHXVFhcc1yS@7`bL(eNq<!f$Ow?rGvf^NL_ijb(R&Z5sNjoHXbz`FbMr-#HFCZL zzDoHBlPyyqfD)9s%dPc5o^AX=?0m=ggU|0^^D#T)iuGHzqFdoRbCn$Kp7lo_ERHWEd%_j+f$R5WDga-xUCw9($ zFb@#ktf2FOi8=tIveGp0qV;3EPf}355u$f5XynY}Cm*px*qTw8S*0A(%mU14u+?-n zS`|OxXK1jR(hB&H8vz>2l7Wc>IULFv7r>Emi)K})q$PZRpit+=c8nd*$bf>TO;PB5 z)>JCYtlPCiht1!jOrjF#(W*tCHSv}*_1g|#6+Mh&eeBFbs1=7|bAWl4fBok1Q`ckeib$m`F1xGew( z$~wpdh83bmByIw%;3J*Za6pK`Mfkm+-qll{b58E>nAjbUx!GhkWEn=AiMg&75sp$T z;c}8VTi(~nOg*Se%L8I#u#Vk%T|Q|$D_lBX zVDo5$pA;kTU0wJ^0DwYx)tAIYy+8q7^WY0%OuwxaA@8+a-3Hx=*BYxKG}23y@b&_^ z9vy95W@XW4y>z(Hy&iqdsE1kkp2rjrt=Ou3=W*~5AQ#rJWQ{JeoHh?J>sspX@BX}L zQYoXeGUJ=i(i8$S6TmKk!2nw7&0PCH)g>PRui6PF>v|CZblNGYA`wYL^C$`Ul8a2% zZr4pGf0Xvq6>u*u20$Dw8>E8l=1M+H&HgL`tkTQTcLRivq0qNgJh@pEP{fHs63KX% z9883NDVLEzbY;$Jy>zIMe2+dpN?ui&9VRQ06ahcON_!WP@=8iL2^8_*D{TMNx!hiQ z9d8SYWDDg8n7Mqt&+|TPe%&J(uQrlmSu(Dh#Fl5ueR>pAE}UTSwFYS_KKs zrI-cyK3(A9+1foOgYcT@f)Sj58rO!q0jd&}y(K%8s*2P(*#V7Us@T`A<=tNYB0I$* zBD(ofHdlGm0JUHMrP3pJwL#kzUkEdg*4d0F0&9Umhd_{4W8Ip&rC*1E>5`oFpi>aR z$Fe3jyNgPaGP_a#RsoM{t&mfh0}sd3SAAht<bJHu4o5vKtg zLASgQP+m_qod9U>O@7(g&hs1+mFM~P6pny9<}ojsaa zoq&muyFEw^_c?prl|U9h!$gu_HE;(7O6n@FmhU&=WUD=9z@C61mSSs$h1_su3maW) zyascdmOK108Dehc{r14PLv)x~G+QqvJ5i6Ds#`*L!IlGdw4&WR9E=r1v7vox9oXa^j3dd&E$qkJ+Hm zhpgA489#8frNDHF&qdX}mc7)5XTmDc{=vtML6Fph#$l&G(p#OxbD zf+>cXfnb;4w?6CR7*UIQ6@eive^BHS4uCWE^OcJ)+zodIT zH%Dz5VG$#cI2EZ8Hq_(!wa-D$TBQ;ulN6aCloNT3-Tn4xq@|W)gOG^6qUspRKX$*f zy3-K0IXEstgoDB5nZZfN(vTFn$CZqU?mP#bp*@%Yl>%Fv#81ZSmDlsNIC>RTsh;WY zV4EalD=}w(SRdXazS!95Y+;q-JQ>fGBw%Or^4{&gn0{>@$$Dx1Ow0 z;ls#d@1aY9uzs(kcfS9X&iJRsR2B31e85N8ZjWYiC-Dh3lIrO*3d7f;!ahB&m~O}K z05mR92BetoiQ2`3RFa5xd7aoEF(-2By{#>evX%>AtnJ%h_Hpwzl;xzm%QO6WrZ0MrFVzfbZA=bI-A#}y# z<^V)+`8rQt1H0D^NeN|(`L_CZfH!fdAEbB@Y_206SZfTHzYjJCP+VOxY{Rw_WVL&p zbdwdW0MozqoKEj6nFKJJmo;vP(*WcJ+Z{w&PsH*Y!;Dm#|!R)D*-FUVY?F8yg5{7ma8+3$0O{&irk&DBh{}Igmx$OX5m$X_# z1+e==1S#0&j>zasW7z5m*QTA=EqNB%l9@wLllD}poE|*yax&Nk~Jc_%`WBrk{Kw|C1K_mT~Lj@8=M`ioE8G$ zf-C?=G`X7;bQ?QBN3Dao}?TLDTnEJ_wo^EIt-C}?d zfvo~@TDCxgFm&5Nvu<4?@{P4GS-0Gq6}E@r1s=eu3qLql3PIEOCR)t`fJ>qfyX^VXrxCbsI3C^*(NYH9lG+1PpeU~Gg{K4Z^t7SUJ0KW9V%LXteCck|U*{Bv9Cc!b*zEwLX ztza4PV2L|&b!(<%>DAFxUxBNm%S0IVambTvIMM!6Pzh6M1)Cqi@N;~Ycsg6CLj=kS z{oJ1|BFB5iBE@- zlV^N&t`qwg&HOl_e3B`N?z@$S$ALOlI z8!c~`xx;~Eb!|;$jqKA|V%Rmgo$u7XKC0{RR3G*6gl?%VDvgtY5Cp)C9zI_l7ZUH5 z^va@Z5WwlPT%W5@O@YWtkYb6vITUC9tN$#dB_o<2@W9sFpg z>UbzxvgEh1570P_OX!FzI;(Wx5Y+mIu1Aiys!r_ z;Sd-)h<;tn0rfg@M*vL$Um;6Y@eGQzqXufm37Xe}W4repdOaV-PS=FbR}(uVv+9JV z7k$mkxLLC&W8O- zA*e3+#u+_8P=qT|#MncCQG&>i0FpkgL97m$=L{4UZGt#pvZ@u|$E4xDNTk4ldLK-`Qb zNa<^lH{;WXJF2V5s})INPph6|o{%8@x>{|_{&)>bf7^Pxn0H)BQf(J11BBli{6uta zf2&KbjeCjwgO9$Dz2&y(G36$&!XUsAGdJbpe4K;m>5qU$V}u-nH*P3&NQUjiY!HG+ zLYkI+H^SEZ{cie8_klXJ#Ia$qqsC!SAcml@Pq$6wRaq1vc?#?FI?13MwyKn$L))MM z3VgIQNQL4tMibY|j`I-tz9_pmsxU+i$*%6M#n3%vM^QF$rOItUK)1?|dK0PAIOZaL z^zxgp&=s%dSJ?3Fgn?)3ef#F&^=mg-`hjo|*=3cmf}O>pn=A(TXVJyh1MBEHk-m{A zt~C94bu@b$)4T5bsD9)Q%xsuJL~Rt&0+X!WlG;+$?HZSmwj^Rj9sd@3!RX0|xB7Z; z!8X@x-+6^DSz?-Db5kBJ&$M%xAFl;<>y^12l%7?YU@8u+c+;Oue44O}+H!a-TL##~ajToc|a*NzM`u;@?$jL6A~%R{AQMkU?1DIfY_D_&H$h+v+vRXjmC zJ_Su;phGtqrcD4sl?-=3;LYJj03fX24Kx}b7mUg`w6r-SR^2W6=v?KGjA>lq?cnQ7 zfJRV(+Gvgpg;LV<2q9r40~*!DfWdb4n({ zH?}zdn&8yhIcPl}udnKmEj2^6eTIar00JKxyG(E5lSRE7qB;N)t83r7SvcjTCYQi; zUj?PoUX-iSb*rZnw?Om4}#R&hHHHn+{81I9FUzF@oMi7#u`o3XGBqdXBnA$yR}w<^oF zv$|xLz#wCgDDP*B;C9eF{W)Lz@)l(_SE|pzo%(S=MvM`_@!(73La7AheDC_do74*;;LJGuPB%eYpp~vDQL>j9deg z?OiK8UK;}gjG^S}5M5#qESE%hA^;&ylS1D++W$HYEC&P?-4ixuc42y3UGp9CM?psA KdM@d%`~Ly~_Dq}r literal 0 HcmV?d00001 diff --git a/src/list/raxos/history-dirty-write.excalidraw.png b/src/list/raxos/history-dirty-write.excalidraw.png new file mode 100644 index 0000000000000000000000000000000000000000..6fbff3747cc19e14a59af97bf550ee50b498dc50 GIT binary patch literal 63378 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

lsO#iU%43+ArwfaE%WfhF zRPOc98*P3n5#=rk{6Zf-Go!Lk19w(}-9x1lP}xSO4qy`V(e1-Xedtk05n!-kL>oQ- zj4i>k`NOm1*L6Nm%Xo}7$7S8>f8j*eCaILOzYXLtT|rzSwG*>{r@r=h zQC-4w?5Y@}L}#Ps)7)uLZ^n5VL?|bgH)T_R7Ws8tnV6OwaG$HKSIikKKn2f3Agdk` zr?MVDlc$mtNyS+0JS!Z2ij?^(?HGkYwCqvOUgVn9X1;YOLC7NsWOHGNd^*C5#bpZ1 zvR8QHj``mJMqQp^7MCZk#9QL(KxJ_Mx!K7|ic!+K@N5sKsFBAkW5YNW!?>zW=S`rJ zCZJMIHR!rPnk1|xbh)j$cOGKDb2BG4eatuB@2V}SU#&;bL`*@u1h4~!pnyFz&XTM5%flRS?NZ` zK_@!#@uMB$m7DaJnR0Ox*NZh3dXx@$vS&*quzM0$nT-t|Z~YDrk1IF&r&adzMY^3E zMoiU{lrBMZT=-nI8UKSJH2pYh$0>e%-b-IitjIN;_BD0(DC@WS06oEkA^xU{rmGmy zPrJGb@v+-8rtKyo6GHQP)YJas>F-S`Z9FOhJVUB(8wfU>0m;Lq1S^-W*i^xujD{U{ z4r3jTwg`2$`g%7R1+Q5qhH(zoy(L~0bq0Nu;%Yq|9Yr84_>{f|NCl2>n|d!L^hfLv z+ht%T4oLAh3C2wWNx6AYx0#vu$%sh{-4dOKh;aePrH)m4B}GlO`GTn7!(ZGCf}9@! zkT(oofuuv?xZfd1nPwd47?7*D$hj34wo2i@RefU$}fZT~eKS>=8?qK`w1dJi_wtKMTF4~?PG@&}Cu6cJ4>V2N> z{?XO(c(&jpVYQIP(Ufb_j}Xn=+ep14=}>9KR^G1B+BKZ6%k$$3MmUn1EDAIf`{&(r zi)4$edJm0-b{&k@6OiD!$b zpf7ssb8Ct(GOztj0I3j;?N^1;!|AE&v{Ip<``-690PW9pmt-#wQZu}M^Rxc6u5{@L+z6LNEoI)2dN;S7#Zpjd?D(8GmuQU{b2 zp1bpbw#SO8AUN1EiamNg?83ernk=yMr3Wh`O!jj%b>5G!# z?RWVQkvT=@iE9-Ab4GBXRB;N<7qF*lLbfnfu1@`~JTQ!KPyikoLh|NIoSY!4QA>q~@z->DitM!oddeN*MR;?N43+hUr@x9`>gp6^h>U;Fho6(i$Kk?E<|!W&Ji2{l7iUQENIzo~v)XuVUA zVbg?J9H$a-^XLUa>-0FsAp~ixh;}?bZQbe6qMglOQd#mBAT3@%>Cf@Dj;9_7l8#QKZgd@nR4yGqREUZP?21OlS0xo20*AJwV~+AXjeKm_sG258 z4*6^%s001ob_W=h%OWVVo0R}Ab{Z3WwDKk>K$80(fHB3Zc$pDzeLf`QT)hQA&d+-5 zP*DZ&ALha}Q!9H}%A=cL!sx1!xAfKBzrSx7dQ0;L$kwG-O(P*LdGNYhR?DC`DX4xk zQ?06RwI8&8Zq@rb3%jc^?*P7G8m~@r`#T)|J^6$n@8+btqRL@%<~NJwRK}GDP?B(~hI73pvjkc(K(uUZ<30X(xIOs-;nNWphkS=)9j{(M z-puXAI|0kFC3&ZA9_<7UA5;xpGt3dudy~YIx^Rvro9tCs*i}<|@13g>lAQ6_(D^^e84WxxFOlSopNuH`5()#~`IQ9o)u#XZ0(c`GJitx$Z*-45@D9FjK<1;y z#g+@VCe&}ZK|W+~Ae&Vjj9VyFNv_BUnIVL`qr76reFlsN5Ch%bmR13B82$SoVbCNe zc8{iE)aOnXglpdK{6AB?4ZS^0E^|(k=?vu-g5v?(E^g@M>UZDg2w_J1vMDmDX!HN#((k|!29apeQ$i* z6wLqe{{Q~0LBvL- zw3U=F-Dutr{13uG%3EIz+W>&j-RIq|2I`W(pBaETD*ai~YwU0u^L`3>sH>D4HVf(MW8iSQ)sbzCnkW1nAk|iq4*CDH^>Q8;Optz z35|DrcmV-XMY$O4oHd0Ct5f&=2cJy6k(0{(%Vch#+yP#|9UYr{zg*_)kVsOkv1Rurhi{3|%y`t&b*KbHI3Zbd&VK>lC> zfbIW(U;KY^0kS&*nca;$AV>MuJ3W`xpzFzE%j~1aiHT|ooJ=0;HQ z4;##)U>)+jzXJ-J@p~=o^e@C*38U~we==`Jm!_5$>H`eKOC*INS=2oY@G;ex5)zgX zRD>y+;A<{ki zYkM7!WP*qUKumt4vF5V59-ZkL7}#o-75yzzd;_%>xf{gX*LG~$==-g6TO^EhH&mKN zMm2iDb~41bqKp5=xv~RT@E9fEx84REY?U1YE&MnKC+dg4vkiIIvS>P@zex@+GjGI2 zA0N0geWku{hn4N7T<0a>h*+&7hS1hNVB>_Ysy=vq5)w~{& z{OPg#r*)iLTaV(pj7z=E$iTuO0UN@98`YZ`#jpfvuoNSRjHU9RXz4CJGfM4k>YR$;~k zM5l;HQ~o^7KbEx{3pNL8hi#

tFEvzyC)FOyu(Yhi(7OtpKXBfgp6fHgIMBAJ+rr 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 literal 0 HcmV?d00001 diff --git a/src/list/raxos/history-quorum.excalidraw.png b/src/list/raxos/history-quorum.excalidraw.png new file mode 100644 index 0000000000000000000000000000000000000000..930f48d0b9df82a0b71db4c576a1b06cda549889 GIT binary patch literal 25176 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

c_z%!s9T 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 literal 0 HcmV?d00001 diff --git a/src/list/raxos/quorum-majority-3.excalidraw.png b/src/list/raxos/quorum-majority-3.excalidraw.png new file mode 100644 index 0000000000000000000000000000000000000000..c729a350aa70982a50550d75d2fa08fbaa27f163 GIT binary patch literal 13797 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 LK~ug$7J>Rd0<{Ra literal 0 HcmV?d00001 diff --git a/src/list/raxos/quorum-nxn.excalidraw.png b/src/list/raxos/quorum-nxn.excalidraw.png new file mode 100644 index 0000000000000000000000000000000000000000..55847896cbf38b6907e9fd11a0b1b9bf1971c101 GIT binary patch literal 36103 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 + + +于是系统的State就可以用事件历史(DAG of events)来标识: +```rust +State: DAG; +``` + +其中Event表示State的变化, + + + +![](history.excalidraw.png) + +这与我们单机系统的状态定义也是一致的, 例如3个Event分别是: +E1: let x = 1; +E2: let y = 2; +E3: let x = x + y; +那么系统的State就是 State = apply(History) = apply(E1, E2, E3) = { x = 3; y = 2; } + +现在我们有了一个系统State的描述方式, 接下来在分布式环境中把它实现为高可用的分布式State, +也就是通过多个Event History的副本来实现高可用. + + + + + + + + +在分布式系统中, 系统状态定义为每个节点上存储的History的副本的集合: + +```rust +State: BTreeMap +``` + +## History Quorum + +在分布式环境中, 一个读操作可以看做一个函数: `fn read(node_set: Vec) -> Vec`. +它从多个节点中读History副本, 并返回一个History的集合. + +对读到的History中的任意一个, 我们可以称这个`node_set` 是这个`Hisotry`的一个quorum. 表示这个`History` 可以通过这个`node_set`(quorum)读到. + +对系统的某个特定的状态, +Histroy的quorum定义为可以读到这个History的一个节点的集合. + +例如, 在下面这个3节点的系统中, `History{E1,E2,E3}`的quorum是所有包括N1节点的节点集合: + +`{N1}, {N1,N2}, {N1,N2,N3}, {N1,N3}` + +它有4个可以读到它的quorum. + +例如`read({N1})` 会返回`History{E1,E2,E3}`在结果里, +`read({N1,N3})` 也会返回`History{E1,E2,E3}`在结果里. + +但是`read({N3})` 不会返回`History{E1,E2,E3}`. + +而`History{E1,E2}`的quorum有5个, 除了`{N3}` 之外的所有非空节点集合都是它的quorum: +`{N1}, {N1,N2}, {N1,N2,N3}, {N1,N3}, {N2,N3}`, + +例如`read({N2,N3})` 会返回`History{E1,E2}`在结果里. + + +![](history-quorum.excalidraw.png) + + +## Node set for reading + +每个系统都定义了`read()` 操作可用的node_set 有哪些: + +- 例如单机系统, `read()` 可用的node_set就是唯一这个节点`{{N1}}`, + 显然用一个空的`node_set`去读是不允许的. + +- 一个简单3节点系统中, 不做任何限制, + 那么`read()`可用的`node_set`是所有非空节点集合: `{{N1}, {N2}, {N3}, {N1,N2}, {N2,N3}, {N1,N3}, {N1,N2,N3}}` + 但注意这样一个系统中`read()`操作的结果是没有任何保证的. + +- 一个多数派读写的3节点系统中, + `read()`可用的`node_set`是至少包含2节点的集合: `{{N1,N2}, {N2,N3}, {N1,N3}, {N1,N2,N3}}`, + +如果一个read操作使用的`node_set`是这个系统定义的可用于读的`node_set`, +那么认为这个read操作是合法的, 对于不合法的read操作, +系统对读取的结果不能提供任何保证. + +这个合法的`node_set`的集合, 就是系统的`read_quorum_set`, `read_quorum_set` +中的一个元素称之为一个`read_quorum`. + +例如 3节点的系统 的`read_quorum_set`是: `{{N1,N2}, {N2,N3}, {N1,N3}, {N1,N2,N3}}`, +那么`read({N1})`, 系统就不能提供任何保证. + + +### Write quorum set + +如果一个`node_set`的集合, +其中每个node_set都跟给定的`read_quorum_set`中的一个`node_set`有交集, +那么就称它是一个合法的`write_quorum_set`, +即保证每次写入都能被读到. + + +## 单个 History的Commit状态 + +对一个History, 如果它的quorum集合覆盖了所有的 `read_quorum`, +那么它就总是能被一次合法的读操作读到, +那么这个History就可以认为是在系统的某个状态时, 是Committed的. + +### Commit 的定义 + +这里Commit的定义也很直观, 对一个History, 如果 +- 1 读操作可以通过系统中`read_quorum_set`中任意一个quorum读到它, + +这里还只是对某个系统的状态的Commit, + + + +注意这跟系统的状态State是有关的, 这个系统可能发生变化导致History不能被读到了, +那么这时就认为发生了数据丢失. +例如, 一个3节点系统中, `read_quorum_set` 定义为 +`{{N1,N2}, {N2,N3}, {N1,N3}}`, +这时如果 E3 从 N1 节点上删除了, 在这个系统状态的变化中, 就导致了`History{N1, N2, N3}`的丢失, +因为 `read_quorum` `{N1, N2}` 无法读到 `History{N1, N2, N3}`. + +但是`History{N1, N2}` 没有发生数据丢失, 因为从任意一个`read_quorum` +都可以读到它. + +![](history-data-loss.excalidraw.png) + + +## 高可用的定义 + +可以看出, Commit的是跟`read_quorum_set`相关的, `read_quorum_set`越大, +那么Committed达成的条件就越苛刻. 例如不做限制的3节点系统, +达成Committed要求从任意节点都能读到这个History. + +高可用的定义(对读的定义)就是只需要一个`node_set`集合的子集就可以读到这个History. +或者说, 这个`read()`操作容忍了某些个`node_set`子集的的故障. + + + + +## 完整的 Committed 的定义 + +如果一个History从系统某个状态开始, +后面所有的系统状态(包括每个节点上History副本变化和read_quorum_set变化), +都能通过`read_quorum_set`读到, 那么这个History就是 Committed. + + +## 多重宇宙里的分布式一致性 + +如果允许History非线性(到目前为止我们都没有要求History是线性的), +那么以上就是分布式高可用一致性算法的实现: + +向一个`write_quorum` 添加(不是替换)一个History 分支, +那么一定可以被一个`read_quorum` 读到, 那么这次写入就可以认为是Committed. + +例如: 加图 + + +因为History分支之间没有关联, 所以一个write操作可以读任意一个History, +加入新的Event构造一个新的History, 再将其写入到一个`write_quorum`, 即完成Commit. +当然新加入的Event可以依赖于已有的多个Event. 这样History会形成一个 Event的DAG. +否则History是一个树. +这里我们假设一个Event不会被多次加入到History里, 所以这个图是无环的. + + +可以看出, 我们现在没有引入时间的概念, +如果允许多重历史的存在, 那么就不存在时间的概念. + +但是现在我们如果要求历史必须是线性的(即我们不能同时存在于多于一个历史时间线), +这也是我们常识认知中的现实. +那么就会引入时间的概念. + + + +## 限制单一历史 + +但是我们现在希望得到一个线性History, +即至多只有一个无分支的History是Committed. + +`read()` 现在返回一个DAG, 它是所有节点上读到的History的并集, +它可能有多个末端端点, `read()` 函数必须只能选择其中一个作为读到的History的结果. +而且对于一个Committed的History, 多个`read()` 总是选择它. +例如(加图) 分支A和分支B同时被读到, 那么就总是选择A +这说明每个History分支之间有一个二元关系, 也就是一个全序关系. +Committed的History分支, 必须是最大的. + +表示这个全序关系, 就说明每个History分支都有一个全序关系的属性 T, +也就是说History上每个Event都对应一个全序关系的属性 T. + +每次Commit一个Event, 它必须具有全局中最大的T. + +或者说, 随着History中Event的增加, T是单调递增的, 永远不会回退. + +所以我们称之为这个分布式系统的**虚拟的** 时间. + +所以说, 时间可以理解为将高纬度的空间映射到一维上的一个映射关系. + + + + + + + +## Commit 在线性History约束中的定义 + +这里Commit的定义也很直观, 对一个History, 如果 +- 1 读操作可以通过系统中`read_quorum_set`中任意一个quorum读到它, +- 2 且总是能读到, + +它就是Committed. + +第二个条件是显然要保证的, 否则认为数据丢失了. + +例如下面的这个副本状态中: +- 如果定义系统的`read_quorum_set`是多数派,即`{{N1,N2}, {N1,N3},{N2,N3}}`, 那么`History{E1,E2}` 是Committed状态, 总是能被读到, `History{E1,E2,E3}` 不是,因为`read({N2,N3})` 不会返回它. + + +![](history-committted-12.excalidraw.png) + +- 而如果更改系统的`read_quorum_set`定义, 改成`{{N1,N2}, {N1,N3}}`, 即要求所有读操作都必须读到N1节点,那么`History{E1,E2,E3}` 就可以认为是Committed状态. + +![](history-committted-123.excalidraw.png) + + + +# Write约束 + +## Write只追加History + +这表示writer 写入时, 不能覆盖已有History, 只能追加. +即如果一个节点上的History是`{E1,E2}`, 那么不能被替换成`{E1,E3}`, 可以替换成`{E1,E2,E3}`. + + + +## Write Prepare + +虽然Write写到了`write_quorum_set`, 但是2因为read 会选择最大History, 所以可能产生一个问题, 因为有更大的History, 导致read忽略了写到`write_quorum_set`的History: + +例如可能有2个Writer W3 和 W4, W3写了N1,N2, W4写了N3. +我们假设系统的`read_quorum_set`是多数派模式, 那么W3写的History{E1,E2,E3} 虽然能被任意一个read读到, +但是如果read操作选择了quorum {N2,N3}, 那么它会选择W4写入的更大的History{E1,E2,E4}, +如果read操作选择了quorum {N1,N2}, 那么它会选择W3写入的更大的History{E1,E2,E3}, +这违背了Commit的原则, 没有达到**总是能被读到**的要求. + +![](history-dirty-write.excalidraw.png) + +## Write阻止更小的Hisotry被Commit + +所以Writer把History写到节点上前, 必须要求没有更小的History被Commit. +所以假设Write要写的History的Time是T, 首先要发一个消息, 给一个`read_quorum`, 要求这个`read_quorum`里的节点都不接受小于T的write消息. +之所以是要写到一个`read_quorum`, 是因为系统中任意一个read_quorum跟任意一个write_quorum有交集, 但是write_quorum之间, 或read_quorum之间没有必须有交集的约束. +所以为了阻止其他write, 要写到一个read_quorum里. + +## Write 要基于已经Commit的History追加 + +阻止了更小History的写入后, writer就可以选择一个在T时间的History来写入(即History的最后一个Event的Time是T), +但是写入的History仍然不能破坏Commit的约束, 不能覆盖已经可能Commit的History. +所以writer还要联系一个`read_quorum`, 进行一次读操作, +因为read操作保证读到Commit的History, 所以Writer在这个读到的History上追加新的Event再写入(paxos), 就不会造成已Commit的History丢失. +如果不满足这个条件, 就不能继续(raft). + +这次读操作, 可以选择不同的`read_quorum`; +如果看到更大的History, 那表示无法写入, 要终止. + +## 执行写入! + +执行具体的write过程相对简单, 直接将整个History 复制到一个`write_quorum`, 完成Commit. + + + +为了简化设计, 我们假设每个writer新增 + +TODO: 图: + +所以, 最终我们得到的分布式一致性算法为: + +每个Node存储的数据为: 一个线性的History路径, 和一个最小可Commit的时间 +```rust +struct Node { + least_commit_time: Time, + history: BTreeMap, +} +``` + +Phase-1 + +Phase-2 + + +# Classic Paxos + +将其简化成 Paxos 是非常直接的, 只需限制history不能包含多于1个Event; + +# Raft + +将其转变成 Raft 也很简单, +将Event设计成一个sub-event的容器,其中每个sub-event也分配一个时间`(T, index)`. +并要求在读Committed的阶段也考虑这个sub-Time. + +剩下的就是将整块的History的复制实现为分段传输的协议就好了. + +是不是很简单? + + +# 非线性一致性协议 + +以上我们将这个算法简化到了线性History, +实际上本文的目标是考虑非线性History会带来什么样的东西. + +假如我们抛弃简陋的Paxos 和 Raft的限制, 允许Time是偏序的关系(或DAG关系这里?), +上面的协议会变成: + +Phase-1 中, 仍然是小于 least 的Time不允许Commit, +Phase-1读中, 我们读到的最大History分支, 变成了读一个DAG History的 maximum(fix this term). +Phase-2 append Event 时, 它依赖于所有Time小于它的Event + +现在我们可以证明这个算法允许同时Commit多个Event并行进行, +且也能满足正确性: + +- Commit 后的值不会丢失, 总是能读到 + + +# 选择二维向量Time + +那么我们可以选择任何偏序的Time类型作为系统的时间. +我们现在选择二维向量, 即 `Time: (x i + y j)`. +其中i, j是2个维度, x, y表示Time在这两个维度上的值. +注意x和y可能是完全不同的类型, + +## 二维之间的大小关系 + +`Time(xi+yj)` 中, 显然 `x₁ >= x₂ && y₁ >= y₂` 则 `T₁ >= T₂`, +但`x₁ > x₂ && y₁ < y₂`的情况, 在没有其他条件下是不能比较大小的. + +## 二维Time的工作流程 + +例如, 现在系统的状态是有一个E1, +E2 和 E3 的 Proposer 同时开始执行, 同时commit了E2和E3, +E4 只能看到E2, 也Commit了, +E5看到了所有, 最后Commit. + + +## 二维Time的应用 + +例如我们可以用这种方法对Raft进行一个扩展, +i就是raft中的term, 保持不变. +j是墙上时钟的unix-timestamp, +然后将`Time: (x i + y j)` 替换Raft中的term, 来构建一个分布式系统. +这时我们会得到一个改进版的Raft: 在每个成员有时钟飘逸的情况下, +新的Leader也总是有更大的unix-timestamp, +这个分布式系统可以用来构建分布式授时服务, 优雅的解决Leader切换时的时间可能回退问题. + +我举这个例子是为了说明, Time的每个维度之间的类型不能假设是一样的, +即不支持加法, 但可以支持乘法. 这将会引出后面的有趣的结论. + + +## Apply 阶段 + +分布式一致性算法的核心一个是log的提交(对应我们的Event History), +另一个是状态机的实现, 也就是将log(History) 以业务定义的方式进行解释. + +我们上面提到, 系统的状态由History构成, 细心的你现在一定发现了一个问题, +就是对一个例如二维Time的History来说, apply 这些 Event的顺序是不确定的. + + +如果我们有量子计算机, +那么一个可行的实现是将所有符合DAG顺序的顺序来apply一次History, +这样所有的可能并存. + +但是我们没有. + + +所以每个副本节点上, 我们仍然需要一个相互间一致的顺序来apply已commit的History. + +而对于二维Time来说, 就是怎么为`x₁ > x₂ && y₁ < y₂` 关系的Time确定一个顺序. + + +假设找到2个T1, 和 T2是相等的关系, + +相对T1来说, T2是`x2/x1, y2/y1` + + +commit的定义: 总是能读到(因为: 可能脏读: 最大历史不在quorum里) +增加新历史前必须阻止其他写(阻止所有: 死锁, 2pc; 阻止旧的: raft, paxos)(为了满足commit) +自己不是最大历史不能写: 因为增加新历史前不能覆盖已有的(为了满足commit) +(一个简化的raft: 可以vote for非最大日志的candidate, 但是candidate自己不能继续写) +(paxos的不同做法是: 把最大历史拿过来) + +raft 接append-entries时不需要用(t2, a) 覆盖 (t2,b)