Proof of Concept: Decentralized/Scaleable Mixed Bus

This board is to show, discuss and archive useful combinator- and logic-creations.
Smart triggering, counters and sensors, useful circuitry, switching as an art :), computers.
Please provide if possible always a blueprint of your creation.
Post Reply
Eketek
Long Handed Inserter
Long Handed Inserter
Posts: 56
Joined: Mon Oct 19, 2015 9:04 pm
Contact:

Proof of Concept: Decentralized/Scaleable Mixed Bus

Post by Eketek »

A few months ago, I posted a mildly complicated combinator construct which (though useless for most purposes) allows for signals to propagate across a circuit network in such a manner as to have signal components traceable toward their origins from any point within the network, but I was a bit sketchy on my plans for it (I was a bit delayed with life and had to do a bit of revision & design to get something that doesn't have degenerate in-spec cases that cause failures). (viewtopic.php?f=193&t=40753)

I now have a successful test of a logistic system I had in mind which uses those propagators to route items from anywhere within a system of circular or bidirectional paths. It handles multiple requesters and multiple providers for any resource, whether those requesters and providers are placed nearby each other or randomly scattered across a network. It moves requested items, but occasionally oversupplies due to inserter stack size bonus and multiple providers inserting concurrently (any oversupplied items in circulation are used to satisfy subsequent requests before taking more from providers). Generally speaking, it is a heavily modified circuit-controlled circular bus. The system can work with belts, with trains, with bots, with oversized/cheating chests, or with anything else which can use of circuit signals to move items (and thus is also quite scalable).

The current design uses 2 system-wide circuits and 2 auxiliary circuits at each node. The main circuits carry supply (green) and demand (red) signals. The node auxiliary circuits also carry supply and demand signals, but are isolated from the main network - The green auxiliary line is an item tracker with a memory cell directly attached (and updated with pulsed signals, positive for adding, negative for removing an item). The red auxiliary line is there to isolate a demand negation signal (-supply). Request signals are attached directly to the main demand line (though behind isolators to filter out negative requests, since I didn't bother limiting inserter stack sizes). The Supply signal is transferred from the tracking line to an isolator to the main supply line.

At each link is a pair of signal propagators (one for each network line). The supply & demand gradient is used to determine the surplus or deficit on either side of the link (this is supply and demand of the entire portion of the network behind either side, not just the immediately attached nodes). If one side of a link has a deficit of some item and the other side has a surplus of it, it will set filter inserters to transfer that kind of item from the side with the surplus to the side with the deficit (and those inserters will update the supply trackers on both nodes).

The network must be a simply connected graph (all nodes linked so that there is exactly one path between any two nodes [and no loops]). The network must have a corresponding a logistic system which is able to use circuit signals to move items from anywhere to anywhere else.

There is no dependency on components from mods. The only required configuration is a buffer specification at each requester. There is no centralized controller for the network (the network is effectively its own processor) - just copies & variants of the basic components marked on the picture below. Though the test build is just three daisy-chained nodes, it can also handle branching networks.
decentralized_mixedbus_routing_test.png
decentralized_mixedbus_routing_test.png (2.5 MiB) Viewed 2309 times
The test base is a very poorly designed factory for a few Bob-Mods components, but it does demonstrate some of the intended routing: Resources are inserted pretty much at whatever random place was nearby where I bused them in from, but routed where they are needed. Circuit components are made and consumed mostly in the large logistic loop, but some of the transistors are pointlessly made in the southern loop, with parts and transistors exchanged between both logistic loops to make it happen. Basic engines are made in the southern loop, then shipped north, where there is Lubricant, turned into electric engines, then shipped all the way to the eastern loop (travelling through the southern loop to get there) and turned into bots. None of the routes which any items take are hard-coded, nor do any providers respond to any specific requests - It all comes from the supply & demand gradient.

The test build is incomplete - it should further filter requests given to filter inserters so that only items which are present next to the inserter may be present in the signal, but I was wiring it all by hand and didn't feel like doing all the extra work. I have not yet set up a set of easily stamped blueprints, but the design is suitable for that sort of expansion, but may cause some fun problems if you try to configure and/or link a new section to an established network if bots are still busy building the new section (running out of power or accidental item pickup & dropoff causes more significant problems - at least until someone goes through the trouble of designing a reset button).

Since I don't have the blueprints (still need to decide how to make "puzzle pieces" out of it, so it can be freely stamped), I've attached a small test base which includes the functioning components:
decentralized_mixedbus_routing.zip
(7.45 MiB) Downloaded 98 times

Post Reply

Return to “Combinator Creations”