xFS-bots 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. xfs_bots-0.0.1/LICENSE.txt +19 -0
  2. xfs_bots-0.0.1/PKG-INFO +208 -0
  3. xfs_bots-0.0.1/README.md +185 -0
  4. xfs_bots-0.0.1/pyproject.toml +31 -0
  5. xfs_bots-0.0.1/setup.cfg +4 -0
  6. xfs_bots-0.0.1/setup.py +16 -0
  7. xfs_bots-0.0.1/xFS_bots/graph_models/__init__.py +0 -0
  8. xfs_bots-0.0.1/xFS_bots/graph_models/_mg_sample.py +331 -0
  9. xfs_bots-0.0.1/xFS_bots/graph_models/action_table.py +395 -0
  10. xfs_bots-0.0.1/xFS_bots/graph_models/agent_database.py +77 -0
  11. xfs_bots-0.0.1/xFS_bots/graph_models/analog_graph.py +130 -0
  12. xfs_bots-0.0.1/xFS_bots/graph_models/analog_schemes.py +320 -0
  13. xfs_bots-0.0.1/xFS_bots/graph_models/analog_schemes_aux.py +294 -0
  14. xfs_bots-0.0.1/xFS_bots/graph_models/base_node.py +189 -0
  15. xfs_bots-0.0.1/xFS_bots/graph_models/bfs.py +69 -0
  16. xfs_bots-0.0.1/xFS_bots/graph_models/community.py +389 -0
  17. xfs_bots-0.0.1/xFS_bots/graph_models/controverter.py +274 -0
  18. xfs_bots-0.0.1/xFS_bots/graph_models/cyclical_navigator.py +241 -0
  19. xfs_bots-0.0.1/xFS_bots/graph_models/dependency_seq.py +61 -0
  20. xfs_bots-0.0.1/xFS_bots/graph_models/dfs.py +78 -0
  21. xfs_bots-0.0.1/xFS_bots/graph_models/dir_imp_path.py +188 -0
  22. xfs_bots-0.0.1/xFS_bots/graph_models/eb_graph_navigator.py +326 -0
  23. xfs_bots-0.0.1/xFS_bots/graph_models/expr_tree.py +907 -0
  24. xfs_bots-0.0.1/xFS_bots/graph_models/game_table.py +129 -0
  25. xfs_bots-0.0.1/xFS_bots/graph_models/gcs.py +323 -0
  26. xfs_bots-0.0.1/xFS_bots/graph_models/graph_gen.py +462 -0
  27. xfs_bots-0.0.1/xFS_bots/graph_models/hg_obj_path.py +421 -0
  28. xfs_bots-0.0.1/xFS_bots/graph_models/hg_obj_path_op.py +512 -0
  29. xfs_bots-0.0.1/xFS_bots/graph_models/hypergraph.py +221 -0
  30. xfs_bots-0.0.1/xFS_bots/graph_models/jamming_graph.py +399 -0
  31. xfs_bots-0.0.1/xFS_bots/graph_models/lattice_graph_gen.py +402 -0
  32. xfs_bots-0.0.1/xFS_bots/graph_models/micrograph.py +414 -0
  33. xfs_bots-0.0.1/xFS_bots/graph_models/modular_graph.py +452 -0
  34. xfs_bots-0.0.1/xFS_bots/graph_models/node_navigator_handler.py +31 -0
  35. xfs_bots-0.0.1/xFS_bots/graph_models/node_path.py +345 -0
  36. xfs_bots-0.0.1/xFS_bots/graph_models/node_priority_function.py +97 -0
  37. xfs_bots-0.0.1/xFS_bots/graph_models/node_to_cycle.py +85 -0
  38. xfs_bots-0.0.1/xFS_bots/graph_models/path_induction.py +260 -0
  39. xfs_bots-0.0.1/xFS_bots/graph_models/pswap_graph.py +440 -0
  40. xfs_bots-0.0.1/xFS_bots/graph_models/radial_subgraph.py +106 -0
  41. xfs_bots-0.0.1/xFS_bots/graph_models/reactive_simple_graph_rules.py +210 -0
  42. xfs_bots-0.0.1/xFS_bots/graph_models/shortest_paths.py +429 -0
  43. xfs_bots-0.0.1/xFS_bots/graph_models/shortest_paths_approx.py +461 -0
  44. xfs_bots-0.0.1/xFS_bots/graph_models/shortest_paths_type_st.py +119 -0
  45. xfs_bots-0.0.1/xFS_bots/graph_models/spanning_tree.py +146 -0
  46. xfs_bots-0.0.1/xFS_bots/graph_models/sparse_graph_gen.py +66 -0
  47. xfs_bots-0.0.1/xFS_bots/graph_models/tree_gen.py +150 -0
  48. xfs_bots-0.0.1/xFS_bots/graph_problems/__init__.py +0 -0
  49. xfs_bots-0.0.1/xFS_bots/graph_problems/bkb.py +43 -0
  50. xfs_bots-0.0.1/xFS_bots/graph_problems/bkb_ext.py +55 -0
  51. xfs_bots-0.0.1/xFS_bots/graph_problems/cb.py +73 -0
  52. xfs_bots-0.0.1/xFS_bots/graph_problems/cb_ext.py +61 -0
  53. xfs_bots-0.0.1/xFS_bots/graph_problems/drb.py +67 -0
  54. xfs_bots-0.0.1/xFS_bots/graph_problems/drb_ext.py +27 -0
  55. xfs_bots-0.0.1/xFS_bots/graph_problems/easy_gen.py +429 -0
  56. xfs_bots-0.0.1/xFS_bots/graph_problems/easy_gen_default_vars.py +104 -0
  57. xfs_bots-0.0.1/xFS_bots/graph_problems/efb.py +145 -0
  58. xfs_bots-0.0.1/xFS_bots/graph_problems/efb_ext.py +92 -0
  59. xfs_bots-0.0.1/xFS_bots/graph_problems/hfb.py +106 -0
  60. xfs_bots-0.0.1/xFS_bots/graph_problems/hfb_ext.py +31 -0
  61. xfs_bots-0.0.1/xFS_bots/graph_problems/hte.py +319 -0
  62. xfs_bots-0.0.1/xFS_bots/graph_problems/hte_ext.py +165 -0
  63. xfs_bots-0.0.1/xFS_bots/graph_problems/ib.py +86 -0
  64. xfs_bots-0.0.1/xFS_bots/graph_problems/ib_ext.py +65 -0
  65. xfs_bots-0.0.1/xFS_bots/graph_problems/mkb.py +76 -0
  66. xfs_bots-0.0.1/xFS_bots/graph_problems/mkb_ext.py +45 -0
  67. xfs_bots-0.0.1/xFS_bots/graph_problems/mmb.py +126 -0
  68. xfs_bots-0.0.1/xFS_bots/graph_problems/mmb_ext.py +34 -0
  69. xfs_bots-0.0.1/xFS_bots/graph_problems/pdib.py +41 -0
  70. xfs_bots-0.0.1/xFS_bots/graph_problems/pdib_ext.py +30 -0
  71. xfs_bots-0.0.1/xFS_bots/graph_problems/pib.py +138 -0
  72. xfs_bots-0.0.1/xFS_bots/graph_problems/pib_ext.py +35 -0
  73. xfs_bots-0.0.1/xFS_bots/graph_problems/ptb.py +137 -0
  74. xfs_bots-0.0.1/xFS_bots/graph_problems/ptb_ext.py +42 -0
  75. xfs_bots-0.0.1/xFS_bots/graph_problems/rnb.py +228 -0
  76. xfs_bots-0.0.1/xFS_bots/graph_problems/rnb_ext.py +90 -0
  77. xfs_bots-0.0.1/xFS_bots/graph_problems/sb.py +79 -0
  78. xfs_bots-0.0.1/xFS_bots/graph_problems/sb_ext.py +67 -0
  79. xfs_bots-0.0.1/xFS_bots/graph_problems/sim_solution_search.py +92 -0
  80. xfs_bots-0.0.1/xFS_bots/graph_problems/snb.py +115 -0
  81. xfs_bots-0.0.1/xFS_bots/graph_problems/snb_ext.py +76 -0
  82. xfs_bots-0.0.1/xFS_bots/graph_problems/tftmb.py +54 -0
  83. xfs_bots-0.0.1/xFS_bots/graph_problems/tftmb_ext.py +56 -0
  84. xfs_bots-0.0.1/xFS_bots/graph_problems/tsb.py +42 -0
  85. xfs_bots-0.0.1/xFS_bots/graph_problems/tsb_ext.py +36 -0
  86. xfs_bots-0.0.1/xFS_bots/graph_problems/vtb.py +13 -0
  87. xfs_bots-0.0.1/xFS_bots/graph_problems/vtb_ext.py +44 -0
  88. xfs_bots-0.0.1/xFS_bots/quant/__init__.py +0 -0
  89. xfs_bots-0.0.1/xFS_bots/quant/agent_23.py +750 -0
  90. xfs_bots-0.0.1/xFS_bots/quant/bool_rules.py +50 -0
  91. xfs_bots-0.0.1/xFS_bots/quant/bull_graph.py +434 -0
  92. xfs_bots-0.0.1/xFS_bots/quant/ce_agent.py +294 -0
  93. xfs_bots-0.0.1/xFS_bots/quant/ce_net.py +228 -0
  94. xfs_bots-0.0.1/xFS_bots/quant/cee_map.py +247 -0
  95. xfs_bots-0.0.1/xFS_bots/quant/cnf_mask.py +182 -0
  96. xfs_bots-0.0.1/xFS_bots/quant/cng.py +243 -0
  97. xfs_bots-0.0.1/xFS_bots/quant/controverter_graph.py +247 -0
  98. xfs_bots-0.0.1/xFS_bots/quant/default_graph_introproc.py +160 -0
  99. xfs_bots-0.0.1/xFS_bots/quant/dual_obj.py +337 -0
  100. xfs_bots-0.0.1/xFS_bots/quant/gl_expr_table.py +34 -0
  101. xfs_bots-0.0.1/xFS_bots/quant/graph_introspector.py +125 -0
  102. xfs_bots-0.0.1/xFS_bots/quant/gt_agent.py +94 -0
  103. xfs_bots-0.0.1/xFS_bots/quant/hmm_agent.py +382 -0
  104. xfs_bots-0.0.1/xFS_bots/quant/hscript_graph.py +501 -0
  105. xfs_bots-0.0.1/xFS_bots/quant/hte_analog_induction.py +81 -0
  106. xfs_bots-0.0.1/xFS_bots/quant/hte_aux.py +321 -0
  107. xfs_bots-0.0.1/xFS_bots/quant/hte_navigator.py +226 -0
  108. xfs_bots-0.0.1/xFS_bots/quant/levenschtein.py +89 -0
  109. xfs_bots-0.0.1/xFS_bots/quant/middle_agent.py +221 -0
  110. xfs_bots-0.0.1/xFS_bots/quant/middleman_graph.py +346 -0
  111. xfs_bots-0.0.1/xFS_bots/quant/mob_graph.py +334 -0
  112. xfs_bots-0.0.1/xFS_bots/quant/mutable_ce_net.py +46 -0
  113. xfs_bots-0.0.1/xFS_bots/quant/mvec_agent.py +462 -0
  114. xfs_bots-0.0.1/xFS_bots/quant/pd_graph.py +318 -0
  115. xfs_bots-0.0.1/xFS_bots/quant/pd_inadvertency.py +266 -0
  116. xfs_bots-0.0.1/xFS_bots/quant/poison_snt.py +277 -0
  117. xfs_bots-0.0.1/xFS_bots/quant/pt_aux.py +346 -0
  118. xfs_bots-0.0.1/xFS_bots/quant/qstruct.py +671 -0
  119. xfs_bots-0.0.1/xFS_bots/quant/qstruct_aux.py +195 -0
  120. xfs_bots-0.0.1/xFS_bots/quant/reactive_graph_introspector.py +103 -0
  121. xfs_bots-0.0.1/xFS_bots/quant/rstruct.py +256 -0
  122. xfs_bots-0.0.1/xFS_bots/quant/selection_rules.py +227 -0
  123. xfs_bots-0.0.1/xFS_bots/quant/simple_hmm_env.py +141 -0
  124. xfs_bots-0.0.1/xFS_bots/quant/square_nt.py +94 -0
  125. xfs_bots-0.0.1/xFS_bots/quant/static_graph_introspector.py +129 -0
  126. xfs_bots-0.0.1/xFS_bots/quant/strangle_form.py +567 -0
  127. xfs_bots-0.0.1/xFS_bots/quant/strangle_graph.py +160 -0
  128. xfs_bots-0.0.1/xFS_bots/quant/ul_vec_classifier.py +58 -0
  129. xfs_bots-0.0.1/xFS_bots/quant/usg_controller.py +84 -0
  130. xfs_bots-0.0.1/xFS_bots/quant/vt_graph.py +96 -0
  131. xfs_bots-0.0.1/xFS_bots.egg-info/PKG-INFO +208 -0
  132. xfs_bots-0.0.1/xFS_bots.egg-info/SOURCES.txt +133 -0
  133. xfs_bots-0.0.1/xFS_bots.egg-info/dependency_links.txt +1 -0
  134. xfs_bots-0.0.1/xFS_bots.egg-info/requires.txt +4 -0
  135. xfs_bots-0.0.1/xFS_bots.egg-info/top_level.txt +1 -0
@@ -0,0 +1,19 @@
1
+ The MIT License (MIT)
2
+ Copyright © 2026 Richard Pham
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this
5
+ software and associated documentation files (the “Software”), to deal in the Software
6
+ without restriction, including without limitation the rights to use, copy, modify,
7
+ merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to the following
9
+ conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all copies
12
+ or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
15
+ INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
16
+ PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
17
+ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
18
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
19
+ DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,208 @@
1
+ Metadata-Version: 2.4
2
+ Name: xFS_bots
3
+ Version: 0.0.1
4
+ Summary: A suite of offline bots built on top of classical NP-Complete problems. Friendly for cryptographic operations.
5
+ Home-page: https://github.com/Changissnz/xFS
6
+ Author: Richard Pham
7
+ Author-email: Richard Pham <phamrichard45@gmail.com>
8
+ License-Expression: MIT
9
+ Project-URL: Homepage, https://github.com/changissnz/xFS
10
+ Project-URL: Issues, https://github.com/changissnz/xFS/issues
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Operating System :: OS Independent
13
+ Requires-Python: >=3.9
14
+ Description-Content-Type: text/markdown
15
+ License-File: LICENSE.txt
16
+ Requires-Dist: numpy>=1.22.1
17
+ Requires-Dist: matplotlib>=3.10.9
18
+ Requires-Dist: morebs2>=0.1.99
19
+ Requires-Dist: networkx>=3.6.1
20
+ Dynamic: author
21
+ Dynamic: home-page
22
+ Dynamic: license-file
23
+
24
+ # xFS
25
+
26
+ This project is allocated for algorithms I have attempted in some of my past projects,
27
+ as well as some emerging ideas of mine.
28
+
29
+ The projects [puissec](https://github.com/Changissnz/puissec) and
30
+ [r2apart](https://github.com/Changissnz/r2apart), in particular, are not fully functional
31
+ and were developed by me only in conjunction with my research efforts. Technicalities in
32
+ both hardware and those projects' code implementation have pressured me to cease their
33
+ further development.
34
+
35
+ ```
36
+ NOTE: 06/07/2026, unofficial completion of project. Indefinite hiatus on project.
37
+ ```
38
+
39
+ ```
40
+ NOTE: 5/24/2026, planned completion for project < 30 days.
41
+ ```
42
+
43
+ ```
44
+ NOTE: 5/18/2026, Hiatus for indefinite time.
45
+ ```
46
+
47
+ ```
48
+ NOTE: Project has entered progressive mode on 3/3/2026. Further developments will not
49
+ go according to previous rate of development.
50
+ ```
51
+
52
+ ```
53
+ NOTE: no graphical user interface provided.
54
+ ```
55
+
56
+ ```
57
+ NOTE: all of these bots are programmed to run offline, disconnected from other devices.
58
+ ```
59
+
60
+ ## Graph Problems of Interest (in my words)
61
+
62
+ Here is a list of graph problems in the project:
63
+ - Respondent Network Bot (Alpha)
64
+ - vantage point for learning: Q, the questioner.
65
+ - file: `graph_problems/rnb.py`
66
+ - Hidden Threat Exposure Bot (Alpha)
67
+ - vantage point for learning: navigator of network containing threats.
68
+ - file: `graph_problems/hte.py`
69
+ - Slander Net Bot (Alpha)
70
+ - vantage point for learning: agent that determines what communication
71
+ ports to open and close to maximize objective function score.
72
+ - code has non-deterministic elements to it. Required to set seeds for
73
+ Python and Numpy random.
74
+ - file: `graph_problems/snb.py`
75
+ - Poison Trace Bot (Alpha)
76
+ - vantage point for learning: agent (poison target), in a network, that
77
+ has to position alert relays to help it know (poison source, poison identity)
78
+ of poison delivered to it. Accurate knowledge allows for poison target to
79
+ negate poison before its termination.
80
+ - code has non-deterministic elements to it. Required to set seeds for
81
+ Python and Numpy random.
82
+ - file: `graph_problems/ptb.py`
83
+ - Bull Killer Bot (Alpha)
84
+ - vantage point for learning: Chaser agents that pursue the Bull along a
85
+ network.
86
+ - file: `graph_problems/bkb.py`
87
+ - Homo Frame Bot (Alpha)
88
+ - vantage point for learning: n agents expected to act according to
89
+ homomorphic demands, set by administrator.
90
+ - file: `graph_problems/hfb.py`
91
+ - Mob Killer Bot (Alpha)
92
+ - vantage point for learning: anti-mob unit acting against `n` Mob agents in
93
+ a reactive system.
94
+ - file: `graph_problems/mkb.py`
95
+ - Strangle Bot (Alpha)
96
+ - vantage point for learning: strangling agent with objective to control all nodes
97
+ of graph G, the subject of strangling.
98
+ - file: `graph_problems/sb.py`
99
+ - Controverter Bot (Alpha)
100
+ - vantage point for learning: an agent in a multi-agent cyclical game, structured as a
101
+ continually variable chain of decision junction points, each requiring all the
102
+ agents to make their moves.
103
+ - file: `graph_problems/cb.py`
104
+ - Token-Swapping Bot (Alpha)
105
+ - vantage point for learning: an agent that has to solve the NP-Complete problem, Token Swapping,
106
+ for an arbitrary graph.
107
+ - file: `graph_problems/tsb.py`
108
+ - Dual Role Bot (Alpha)
109
+ - vantage point for learning: a dual agent that has to complete n demands, each demand consisting
110
+ of an independent and a third-party component, with the least cost from conflicts of independence
111
+ within and between the demands.
112
+ - NOTE: problem can be reduced to the NP-Hard problem, Set Cover.
113
+ - file: `graph_problems/drb.py`
114
+ - Middleman Bot (Alpha)
115
+ - vantage point for learning: a buying agent that is to buy x units of a product through a network
116
+ of sellers, the network starting with one original seller and n middle agents, at the lowest
117
+ cumulative price.
118
+ - file: `graph_problems/mmb.py`
119
+ - Vector-Tracking Bot (Alpha)
120
+ - vantage point for learning: a group of n > 1 tracking agents that is to track a moving
121
+ target, over q rounds, with the primary goal of minimal cumulative euclidean distance
122
+ with the target and the secondary goal of maintaining symmetric balance with one another.
123
+ - file: `graph_problems/vtb.py`
124
+ - Introspection Bot (Alpha)
125
+ - vantage point for learning: obtaining the same cyclical node output and shortest paths as a
126
+ reference result in a simple undirected graph, traversed through a breadth-first or depth-first
127
+ process.
128
+ - file: `graph_problems/ib.py`
129
+ - Probabilistic Impact Bot (Alpha)
130
+ - vantage point for learning: defending against each of an offendor's moves by correctly predicting the
131
+ move; based on the Hidden Markov Model.
132
+ - file: `graph_problems/pib.py`
133
+ - Ends-Fixated Bot (Alpha)
134
+ - vantage point for learning: navigating a directed graph from start node to end node, such that each
135
+ node is associated with an activation function navigator must pass, via providing appropriate
136
+ support values (real numbers) to the nodes of relevance.
137
+ - file: `graph_problems/efb.py`
138
+ - Two Faces Three Motives Bot (Alpha)
139
+ - vantage point for learning: an agent, connected to two other agents in a trifecta arrangement, that
140
+ has to execute its independently selected move at every timestamp.
141
+ - file: `graph_problems/tftmb.py`
142
+ - Proaction-Driven Inadvertency Bot (Alpha)
143
+ - vantage point for learning: executing n three-noded steps with the least number of inadvertencies
144
+ activated.
145
+ - file: `graph_problems/pdib.py`
146
+
147
+ #### NOTE:
148
+ Some of these bots rely on Python/Numpy random. User results may differ from
149
+ developer results. As of this time in writing, developer Python version is 3.14.2.
150
+
151
+
152
+ #### NOTE:
153
+ The methods provided in `file<graph_problems.easy_gen>` allow for easy generation of
154
+ these bots (less instantiating parameters).
155
+
156
+ ## The Machine-Learning Aspect
157
+
158
+ The graph problems defined in this project involve software agents. These agents are
159
+ programmed with functionalities that are static. This implies the agents cannot "learn"
160
+ any more, past their programming, about the specific problems they act in. Their learning
161
+ mechanisms cannot "expand" any more outside of this static programming: no additional
162
+ variables of interest, no different data structure formats, no different ordering scheme
163
+ of deciding on the best choice per timestamp, no different ranking mechanisms for choices.
164
+ Instead, the only way to improve a solution is through a semi-blind search process that iterates
165
+ through a candidate list of pseudo-random number generators (PRNGs) for the best PRNG.
166
+ PRNGs are used in agent decision-making for these graph problems. PRNGs output numbers,
167
+ and agents map these numbers out to decisions taken by them. The utility of obtaining a
168
+ high-performing PRNG for a graph problem of specific starting parameters is restricted to
169
+ that case. There is no software mechanism provided to automate deriving of further insight
170
+ into any graph problem example via a high-performing PRNG. This deficit differs from
171
+ traditional machine-learning problems on fixed and labeled datasets, where feedback loops
172
+ of training iterations can be guaranteed to yield incrementally better solutions, until
173
+ the global optimum is found. This guarantee, of course, is theoretical and cannot be stated for
174
+ deep learning problems on highly variable datasets. It is possible to implement further
175
+ code for these graph problems to be more conducive for machine-learning. However,
176
+ implementing further code would defeat the purpose of graph problem difficulty. The
177
+ division of partial information between agents in every one of these graph problems was
178
+ deliberate in fulfillment of maintaining a baseline of probabilistic difficulty for an agent
179
+ to improve its solution (PRNG). Unlike the highly vectorizable (input,output) samples
180
+ of traditional machine-learning that typically operates in Euclidean space, finding a
181
+ high-scoring solution does not easily lead to a better solution derived from that one.
182
+ Users can refer to one high-scoring PRNG, and add tweaks to it at selected indices of
183
+ the generator output. See below for illustration on PRNG G and tweaking it to G2:
184
+ ```
185
+ G: x0,x1,x2,x3,x4,x5...
186
+ G2: x0,x42,x2,x56,x4,x5,...
187
+ ```
188
+
189
+ But this is a cumbersome process, and there is no guarantee making tweaks to a high-performing
190
+ generator would result in a better solution.
191
+
192
+ ## User Access to the Graybox
193
+
194
+ The computer code for these bots in these graph problems is open for view. This is not a
195
+ blackbox arrangement. Users, in their attempts to guess high-performing PRNGs for any
196
+ graph problem example, can carefully review how the automata decision-making pipelines
197
+ work. These pipelines follow a general form, and descriptions are provided for each of
198
+ these graph problem bots. But these implementations rest on arbitrary design.
199
+
200
+ In a blackbox system, users would not know what the graph problem is, let alone the general
201
+ form of it. They would only be able to enter in a PRNG for the automaton to use for
202
+ decision-making. They would not be able to ascertain the end results from the PRNG. In these
203
+ graybox implementations, users would know the end results from the PRNG. But since a
204
+ PRNG only outputs real numbers for decision-making, users would not be able to easily know
205
+ what decisions the PRNG was responsible for. Thus, users would have a relatively difficult
206
+ time knowing what decisions are sub-optimal. Users can analyze the code implementation to
207
+ determine the specific decisions the PRNG mapped to, post-simulation. But code is not
208
+ provided in this project to convenience that.
@@ -0,0 +1,185 @@
1
+ # xFS
2
+
3
+ This project is allocated for algorithms I have attempted in some of my past projects,
4
+ as well as some emerging ideas of mine.
5
+
6
+ The projects [puissec](https://github.com/Changissnz/puissec) and
7
+ [r2apart](https://github.com/Changissnz/r2apart), in particular, are not fully functional
8
+ and were developed by me only in conjunction with my research efforts. Technicalities in
9
+ both hardware and those projects' code implementation have pressured me to cease their
10
+ further development.
11
+
12
+ ```
13
+ NOTE: 06/07/2026, unofficial completion of project. Indefinite hiatus on project.
14
+ ```
15
+
16
+ ```
17
+ NOTE: 5/24/2026, planned completion for project < 30 days.
18
+ ```
19
+
20
+ ```
21
+ NOTE: 5/18/2026, Hiatus for indefinite time.
22
+ ```
23
+
24
+ ```
25
+ NOTE: Project has entered progressive mode on 3/3/2026. Further developments will not
26
+ go according to previous rate of development.
27
+ ```
28
+
29
+ ```
30
+ NOTE: no graphical user interface provided.
31
+ ```
32
+
33
+ ```
34
+ NOTE: all of these bots are programmed to run offline, disconnected from other devices.
35
+ ```
36
+
37
+ ## Graph Problems of Interest (in my words)
38
+
39
+ Here is a list of graph problems in the project:
40
+ - Respondent Network Bot (Alpha)
41
+ - vantage point for learning: Q, the questioner.
42
+ - file: `graph_problems/rnb.py`
43
+ - Hidden Threat Exposure Bot (Alpha)
44
+ - vantage point for learning: navigator of network containing threats.
45
+ - file: `graph_problems/hte.py`
46
+ - Slander Net Bot (Alpha)
47
+ - vantage point for learning: agent that determines what communication
48
+ ports to open and close to maximize objective function score.
49
+ - code has non-deterministic elements to it. Required to set seeds for
50
+ Python and Numpy random.
51
+ - file: `graph_problems/snb.py`
52
+ - Poison Trace Bot (Alpha)
53
+ - vantage point for learning: agent (poison target), in a network, that
54
+ has to position alert relays to help it know (poison source, poison identity)
55
+ of poison delivered to it. Accurate knowledge allows for poison target to
56
+ negate poison before its termination.
57
+ - code has non-deterministic elements to it. Required to set seeds for
58
+ Python and Numpy random.
59
+ - file: `graph_problems/ptb.py`
60
+ - Bull Killer Bot (Alpha)
61
+ - vantage point for learning: Chaser agents that pursue the Bull along a
62
+ network.
63
+ - file: `graph_problems/bkb.py`
64
+ - Homo Frame Bot (Alpha)
65
+ - vantage point for learning: n agents expected to act according to
66
+ homomorphic demands, set by administrator.
67
+ - file: `graph_problems/hfb.py`
68
+ - Mob Killer Bot (Alpha)
69
+ - vantage point for learning: anti-mob unit acting against `n` Mob agents in
70
+ a reactive system.
71
+ - file: `graph_problems/mkb.py`
72
+ - Strangle Bot (Alpha)
73
+ - vantage point for learning: strangling agent with objective to control all nodes
74
+ of graph G, the subject of strangling.
75
+ - file: `graph_problems/sb.py`
76
+ - Controverter Bot (Alpha)
77
+ - vantage point for learning: an agent in a multi-agent cyclical game, structured as a
78
+ continually variable chain of decision junction points, each requiring all the
79
+ agents to make their moves.
80
+ - file: `graph_problems/cb.py`
81
+ - Token-Swapping Bot (Alpha)
82
+ - vantage point for learning: an agent that has to solve the NP-Complete problem, Token Swapping,
83
+ for an arbitrary graph.
84
+ - file: `graph_problems/tsb.py`
85
+ - Dual Role Bot (Alpha)
86
+ - vantage point for learning: a dual agent that has to complete n demands, each demand consisting
87
+ of an independent and a third-party component, with the least cost from conflicts of independence
88
+ within and between the demands.
89
+ - NOTE: problem can be reduced to the NP-Hard problem, Set Cover.
90
+ - file: `graph_problems/drb.py`
91
+ - Middleman Bot (Alpha)
92
+ - vantage point for learning: a buying agent that is to buy x units of a product through a network
93
+ of sellers, the network starting with one original seller and n middle agents, at the lowest
94
+ cumulative price.
95
+ - file: `graph_problems/mmb.py`
96
+ - Vector-Tracking Bot (Alpha)
97
+ - vantage point for learning: a group of n > 1 tracking agents that is to track a moving
98
+ target, over q rounds, with the primary goal of minimal cumulative euclidean distance
99
+ with the target and the secondary goal of maintaining symmetric balance with one another.
100
+ - file: `graph_problems/vtb.py`
101
+ - Introspection Bot (Alpha)
102
+ - vantage point for learning: obtaining the same cyclical node output and shortest paths as a
103
+ reference result in a simple undirected graph, traversed through a breadth-first or depth-first
104
+ process.
105
+ - file: `graph_problems/ib.py`
106
+ - Probabilistic Impact Bot (Alpha)
107
+ - vantage point for learning: defending against each of an offendor's moves by correctly predicting the
108
+ move; based on the Hidden Markov Model.
109
+ - file: `graph_problems/pib.py`
110
+ - Ends-Fixated Bot (Alpha)
111
+ - vantage point for learning: navigating a directed graph from start node to end node, such that each
112
+ node is associated with an activation function navigator must pass, via providing appropriate
113
+ support values (real numbers) to the nodes of relevance.
114
+ - file: `graph_problems/efb.py`
115
+ - Two Faces Three Motives Bot (Alpha)
116
+ - vantage point for learning: an agent, connected to two other agents in a trifecta arrangement, that
117
+ has to execute its independently selected move at every timestamp.
118
+ - file: `graph_problems/tftmb.py`
119
+ - Proaction-Driven Inadvertency Bot (Alpha)
120
+ - vantage point for learning: executing n three-noded steps with the least number of inadvertencies
121
+ activated.
122
+ - file: `graph_problems/pdib.py`
123
+
124
+ #### NOTE:
125
+ Some of these bots rely on Python/Numpy random. User results may differ from
126
+ developer results. As of this time in writing, developer Python version is 3.14.2.
127
+
128
+
129
+ #### NOTE:
130
+ The methods provided in `file<graph_problems.easy_gen>` allow for easy generation of
131
+ these bots (less instantiating parameters).
132
+
133
+ ## The Machine-Learning Aspect
134
+
135
+ The graph problems defined in this project involve software agents. These agents are
136
+ programmed with functionalities that are static. This implies the agents cannot "learn"
137
+ any more, past their programming, about the specific problems they act in. Their learning
138
+ mechanisms cannot "expand" any more outside of this static programming: no additional
139
+ variables of interest, no different data structure formats, no different ordering scheme
140
+ of deciding on the best choice per timestamp, no different ranking mechanisms for choices.
141
+ Instead, the only way to improve a solution is through a semi-blind search process that iterates
142
+ through a candidate list of pseudo-random number generators (PRNGs) for the best PRNG.
143
+ PRNGs are used in agent decision-making for these graph problems. PRNGs output numbers,
144
+ and agents map these numbers out to decisions taken by them. The utility of obtaining a
145
+ high-performing PRNG for a graph problem of specific starting parameters is restricted to
146
+ that case. There is no software mechanism provided to automate deriving of further insight
147
+ into any graph problem example via a high-performing PRNG. This deficit differs from
148
+ traditional machine-learning problems on fixed and labeled datasets, where feedback loops
149
+ of training iterations can be guaranteed to yield incrementally better solutions, until
150
+ the global optimum is found. This guarantee, of course, is theoretical and cannot be stated for
151
+ deep learning problems on highly variable datasets. It is possible to implement further
152
+ code for these graph problems to be more conducive for machine-learning. However,
153
+ implementing further code would defeat the purpose of graph problem difficulty. The
154
+ division of partial information between agents in every one of these graph problems was
155
+ deliberate in fulfillment of maintaining a baseline of probabilistic difficulty for an agent
156
+ to improve its solution (PRNG). Unlike the highly vectorizable (input,output) samples
157
+ of traditional machine-learning that typically operates in Euclidean space, finding a
158
+ high-scoring solution does not easily lead to a better solution derived from that one.
159
+ Users can refer to one high-scoring PRNG, and add tweaks to it at selected indices of
160
+ the generator output. See below for illustration on PRNG G and tweaking it to G2:
161
+ ```
162
+ G: x0,x1,x2,x3,x4,x5...
163
+ G2: x0,x42,x2,x56,x4,x5,...
164
+ ```
165
+
166
+ But this is a cumbersome process, and there is no guarantee making tweaks to a high-performing
167
+ generator would result in a better solution.
168
+
169
+ ## User Access to the Graybox
170
+
171
+ The computer code for these bots in these graph problems is open for view. This is not a
172
+ blackbox arrangement. Users, in their attempts to guess high-performing PRNGs for any
173
+ graph problem example, can carefully review how the automata decision-making pipelines
174
+ work. These pipelines follow a general form, and descriptions are provided for each of
175
+ these graph problem bots. But these implementations rest on arbitrary design.
176
+
177
+ In a blackbox system, users would not know what the graph problem is, let alone the general
178
+ form of it. They would only be able to enter in a PRNG for the automaton to use for
179
+ decision-making. They would not be able to ascertain the end results from the PRNG. In these
180
+ graybox implementations, users would know the end results from the PRNG. But since a
181
+ PRNG only outputs real numbers for decision-making, users would not be able to easily know
182
+ what decisions the PRNG was responsible for. Thus, users would have a relatively difficult
183
+ time knowing what decisions are sub-optimal. Users can analyze the code implementation to
184
+ determine the specific decisions the PRNG mapped to, post-simulation. But code is not
185
+ provided in this project to convenience that.
@@ -0,0 +1,31 @@
1
+ [project]
2
+ name = "xFS_bots"
3
+ version = "0.0.1"
4
+ dependencies = [
5
+ "numpy>=1.22.1",
6
+ "matplotlib>=3.10.9",
7
+ "morebs2>=0.1.99",
8
+ "networkx>=3.6.1"
9
+ ]
10
+
11
+ authors = [
12
+ { name="Richard Pham", email="phamrichard45@gmail.com" },
13
+ ]
14
+ description = 'A suite of offline bots built on top of classical NP-Complete problems. Friendly for cryptographic operations.'
15
+ readme = "README.md"
16
+ requires-python = ">=3.9"
17
+ classifiers = [
18
+ "Programming Language :: Python :: 3",
19
+ "Operating System :: OS Independent",
20
+ ]
21
+ license = "MIT"
22
+ license-files = ["LICEN[CS]E*"]
23
+
24
+ [tool.setuptools.packages.find]
25
+ where = ["."]
26
+ include = ["xFS_bots*"]
27
+
28
+ [project.urls]
29
+ Homepage = "https://github.com/changissnz/xFS"
30
+ Issues = "https://github.com/changissnz/xFS/issues"
31
+
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,16 @@
1
+ from setuptools import setup, find_packages
2
+
3
+ with open('README.md') as f:
4
+ readme = f.read()
5
+
6
+ setup(
7
+ name='xFS_bots',
8
+ version='0.0.1',
9
+ description='A suite of offline bots built on top of classical NP-Complete problems. Friendly for cryptographic operations.',
10
+ long_description=readme,
11
+ author='Richard Pham',
12
+ author_email='phamrichard45@gmail.com',
13
+ url='https://github.com/Changissnz/xFS',
14
+ #license=LICENSE,
15
+ packages=find_packages(exclude=('tests','docs'))
16
+ )
File without changes