General Systems Thinking (An Introduction to)

Your favorite books and links
wood
Posts: 355
Joined: Wed Sep 16, 2015 5:53 am

General Systems Thinking (An Introduction to)

Post by wood » Wed Apr 26, 2017 6:19 am

Written by Gerald M. Weinberg

I think many of you have read it, but I couldn't find a thread on it.

This book is unlike anything I expected. It takes time for me to digest and is not an easy read. I'm having trouble applying it to real life examples.

I'm about halfway through it. Considering to put it away for now and perhaps pick it up later when I have time/energy to understand everything.

Not the best OP for a book that is highly recommended by many :lol: but I guess this can serve as a small warning to those of us who are not blessed with above average intelligence.

7Wannabe5
Posts: 4745
Joined: Fri Oct 18, 2013 9:03 am

Re: General Systems Thinking (An Introduction to)

Post by 7Wannabe5 » Thu May 04, 2017 6:44 am

I just finished this book. I thought it was great, but I agree that it might be more than a bit difficult to understand if you never previously encountered abstract algebra, or you are not fluent in 1970s-academic-ese, or you do not remember the VIC-20. IOW, I would overall rate this book at Grade Level 17+, but I could squeak by comprehending it due to happy circumstance of previous experience.

One question I have for any forum members who currently have expertise in computer programming and/or hardware would be whether there are now games that are written with the intention of unknown results due to varying input? Another not unrelated question would be what would be the rough analogue of shaking a pinball machine? IOW, is there any way in which a relatively very small amount of energy can be inputted to a running computer program so that results are altered, but the system is not completely fried?

fiby41
Posts: 931
Joined: Tue Jan 13, 2015 8:09 am

Re: General Systems Thinking (An Introduction to)

Post by fiby41 » Thu May 04, 2017 7:24 am

7Wannabe5 wrote:
Thu May 04, 2017 6:44 am
Another not unrelated question would be what would be the rough analogue of shaking a pinball machine?
I think you are alluding to Monte Carlo simulations. Most FIRE calculators have an option for this. freefincal.com
has a special spreadsheet just for this.

Excel Monte Carlo Retirement Calculator

7Wannabe5
Posts: 4745
Joined: Fri Oct 18, 2013 9:03 am

Re: General Systems Thinking (An Introduction to)

Post by 7Wannabe5 » Thu May 04, 2017 8:49 am

@fiby41:

Thanks, but what I was questioning is kind of one level outside of that. I don't have enough vocabulary, but I mean something like are there programs that are written without parameters that would prevent failure but perhaps produce interesting results, and is there some way to kick just a little bit of energy into a microprocessor analogous to shaking a pinball machine?

In the book, Weinberg offers and example where a piece of software doesn't run properly, so the programmers diligently search for errors before considering the much more unlikely cause of hardware failure. Finally, the programmers give up and call on the hardware expert to check the system, and it appears to be functional, so they go back to checking the software. But, it turns out that the problem was due to some way in which the night-shift janitor was jostling the system. Computerized simulations are meant to be idealized models of closed systems because, unlike in the real world, they usually fail due to internal problems rather than external problems. I am curious about how this might be different 40 years later. Likely that I am either not constructing my question very well, or I am asking something trivial.

jacob
Site Admin
Posts: 10966
Joined: Fri Jun 28, 2013 8:38 pm
Location: USA, Zone 5b, Koppen Dfa, Elev. 620ft, Walkscore 73
Contact:

Re: General Systems Thinking (An Introduction to)

Post by jacob » Thu May 04, 2017 9:15 am

@7 - https://www.amazon.com/Feynman-Lectures ... 0738202967

Digital machines are specifically designed (clock cycles and parity checks) to prevent this kind of randomness from entering. If you want randomness, it's simulated at the software level. Some calculations are inherently chaotic and simulating them can lead to interesting differences depending on platform since they will respond to the least significant digit which is often "random".

Kicking in a little bit of energy is highly undesireable. This is actualy a real problem for chips that go into orbit because of cosmic radiation (which can be a lot of energy). NASA famously vacuumed ebay for old 8086 chips because they were (are?) among the few ICs certified for space operations.

7Wannabe5
Posts: 4745
Joined: Fri Oct 18, 2013 9:03 am

Re: General Systems Thinking (An Introduction to)

Post by 7Wannabe5 » Thu May 04, 2017 10:54 am

@jacob: Gotcha. Added to list. I read his Physics Lectures 31 years ago. (Squirts more WD40 into brain case- (sigh))

My follow-up question would be how long approximately is the longest cycle in a modern computer game? I suppose I am looking for an answer in terms of the aspects of the game that a human player could possibly observe such as screen shots, sounds etc. , and not inclusive of artifacts that might be created by input of any human as the game is being played. For example, if the game allowed you or another player to input a character that was created on Sketch-Up at some juncture, then that would be an opening in the system. Or maybe the simple, non-archaic way to express this would be given that the computer/program is not attached to any network.

jacob
Site Admin
Posts: 10966
Joined: Fri Jun 28, 2013 8:38 pm
Location: USA, Zone 5b, Koppen Dfa, Elev. 620ft, Walkscore 73
Contact:

Re: General Systems Thinking (An Introduction to)

Post by jacob » Thu May 04, 2017 11:59 am

Probably best read that book first.

https://en.wikipedia.org/wiki/Clock_rate ... The clock rate is set by the processor. It's what's listed ... i.e. a 2GHz CPU will need 0.5 nanoseconds to ensure that all the requires bit changes have had time to complete the process from 0 to 1 (voltage to no voltage) or vice versa. Memory access may operate on a different frequency. W/o a clock to synchronize everything, various registers, memory, would get out of sync. The clock ensures that an operation, such as a multiplication, proceeds in [the correct] order.

In practice, some motherboards/CPUs allow you to overclock which means increasing the clock rate. This has two side-effects. First, the faster switching generates more heat (because it's a physical process). Therefore this requires more cooling. Second, the switching physics might not be able to keep up with the faster clock rate. This causes errors and the system to crash, as per above.

Many years ago (maybe still?) you could get "freezer" boards for the C64 and the A500 which allowed you to freeze the entire system and restart it. This was useful for directly editing the memory while the CPU was stopped. This was useful to increase the number of remaining lives in a game from 2 to 5 or whatever. No idea if this is still a thing today: https://en.wikipedia.org/wiki/Commodore ... cartridges

7Wannabe5
Posts: 4745
Joined: Fri Oct 18, 2013 9:03 am

Re: General Systems Thinking (An Introduction to)

Post by 7Wannabe5 » Thu May 04, 2017 2:32 pm

Okay, I will read the book, but I think you answered my question anyways, because the program gets the random number from the machine, and the machine uses energy, so it is an expensive, chaotic process like sex, which can lead to an immeasurable cycle.

bryan
Posts: 1036
Joined: Sat Nov 29, 2014 2:01 am
Location: mostly Bay Area

Re: General Systems Thinking (An Introduction to)

Post by bryan » Thu May 04, 2017 8:54 pm

Jacob's description is aptly simple. Of course, reality is quite a lot more complex so in some domains it may not be so accurate (processors: without clocks, using something other than base-2, analog instead of digital, systems on a chip instead of a single simple core processor, fuzzy logic, etc).

There have been "Random Number Generator" circuits for a long time; the "quality" and cost varies.. They've been shipping in popular CPUs/SoCs for some years now and your OS probably makes use of it in it's entropy collector code (which also looks at other sources of external input it could construe as sources of randomness e.g. your networking hardware or keyboard/mouse).

@7W5, I can't quite suss out your meaning. As jacob mentioned, computers are designed to convert analog physics to digital logic and are finite state machines where you would usually be looking at ~0.5ns for state changes, not that that really means anything to a human.. your resolution would depend on other perspectives (like who is the one really doing the canonical state-keeping for the particular system you are interested in: the CPU, the memory, the hard drive, the game software, the computer's monitor, your brain, some other thing out over the internet?). All systems are distributed systems if you zoom in enough (or no systems are distributed if you zoom out enough..)..

Applying a jolt, as you would a pinball machine, _might_ mean mutating the state, whatever that might mean.. Again, usually these systems are designed to protect against mutations (ECC memory, redundant systems, buffered power, the use of safer and safer programming languages, etc).

note Bitcoin is a bit of an innovation in the realm of canonical state/time-keeping for some applications... also interesting to think about time-keeping importance in the past: 1, 2

7Wannabe5
Posts: 4745
Joined: Fri Oct 18, 2013 9:03 am

Re: General Systems Thinking (An Introduction to)

Post by 7Wannabe5 » Fri May 05, 2017 6:18 am

Cycles are the signature of state-determined behavior. When we see a system in a cycle, we suspect it may be at present uninfluenced by external factors. Of course, it many be influenced by a cyclic external factor, or by an external factor that is too small to break the cycle...

The closed-system fiction is thus a useful heuristic device. If we see non-cyclic behavior, we look for an input. If, on the other hand, we asserted that the system is closed, but "random." we would be saying there is no use looking for any additional input. Many scientists are reluctant to admit a system is open, so sometimes it does pay to talk about randomness as a labor saving, or face-saving device. That way we do not have to admit that our view is incomplete or explain why we are not looking for inputs.
bryan said: @7W5, I can't quite suss out your meaning. As jacob mentioned, computers are designed to convert analog physics to digital logic and are finite state machines where you would usually be looking at ~0.5ns for state changes, not that that really means anything to a human.. your resolution would depend on other perspectives (like who is the one really doing the canonical state-keeping for the particular system you are interested in: the CPU, the memory, the hard drive, the game software, the computer's monitor, your brain, some other thing out over the internet?). All systems are distributed systems if you zoom in enough (or no systems are distributed if you zoom out enough..)..
I am not completely computer-illiterate. I owned a VIC 20 with a cassette tape drive which I programmed in BASIC in 1982, took first course in Fortran in 84, first course in Pascal in 89, and tiny course in Javascript last year. Since the Weinberg book was originally written in 1975, some of the examples offered would likely seem archaic to a young, modern reader. For me, they were sort of causative of a trip down memory lane.

So, as I was reading the book, I was referencing experiences with my VIC 20 and the old school pinball style video machines that filled a room of the ice cream parlor where I was employed in 1982. I hated the video game machines because when to parlor was empty, they would play terrible snatches of inane electronic theme music in predictable cycles. The one themed on the band Journey was particularly unbearable.

I had a sister who was only 7 in 1982, so she loved to visit me at my part-time job and play video games and eat ice cream for free. So, I wrote a game for her on my VIC 20 which was entitled Gypsy Fortune Teller. It seemed like magic to her 7 year old brain, because it would offer random, reasonably sensible answers to any question she typed in. Of course, any reasonably intelligent adult could have figured out what was going on pretty quickly because I doubt I included more than a dozen options for IF "How.." or IF "Why..." or "ELSE..", YET that adult would still have been unable to predict (except in terms of statistics after large number of repeated trials)answer to next question typed, BECAUSE I had purposefully chosen to model an open system by including RANDOM function.

As you noted, a computer is a finite state machine, only some of which could be perceptible to a human, and any program would tend towards further limiting the number of perceptible states. So, I guess what I was really attempting to ask was something like what is the longest possible cycle of states perceptible to a human being a modern computer could generate given no use of any form of RANDOM function/entropy-collector, but inclusive of limited range of input from operator? But, then I realized that was the equivalent of asking something like how much data is stored/available in memory? I couldn't store even the shortest Strawberry Shortcake cartoon on my cassette drive for the purposes of entertaining my sister in 1982, but now...?

jacob
Site Admin
Posts: 10966
Joined: Fri Jun 28, 2013 8:38 pm
Location: USA, Zone 5b, Koppen Dfa, Elev. 620ft, Walkscore 73
Contact:

Re: General Systems Thinking (An Introduction to)

Post by jacob » Fri May 05, 2017 8:34 am

@7 - Still not sure whether you're referring to what's perceptible to human senses in real time (very little) or what's perceptible by going through a core dump (everything). Of course a core dump now has so much info (modern programs are HUGE) that they're mostly read through other programs (debuggers). Whereas half or 3/4 of a century ago, people could still input an OS by hand via a terminal. You know, we're only a couple of decades away from when "computing" is literally one century old. Now,...

In case of the former, look at
https://en.wikipedia.org/wiki/Instructions_per_second (the Vic20 like the C64 used a 6502 chip which is on the list).

In practical terms, quant trading is notorious for working below at least 50ms ... with some type of trading pushing the microsecond scale. In contrast, it takes a human being about 100-200ms to blink their eyes; so a modern trading system could execute several trades in the time a human blinks they eye. This limit is mostly by network speed and trading requires many many instructions. If you're asking for some comparison between how fast you can calculate 5*13 and a modern CPU, the speed difference is approaching a trillion x.

Games that require interaction with human senses and thinking are [wall] clocked to ensure that they run at the human speed. This also used to be a problem in the old days. If you tried to load an old DOS game, say a flightsim, from 1990 (when people just wanted everything to run as fast as possible because computers were slow) onto a computer from 1999 that at that time had become so fast that once you hit the throttle for takeoff, you'd find yourself crashed at the end of the runway as fast as you could humanly perceive. Now, all the extra CPU and memory is now used on fancier graphics. The landscape you now see exquisitely rendered in games in real time used to take many hours for each screenshot even 15 years ago. Go to youtube and compare a modern computer game like Elite Dangerous with Babylon5 (the TV series) which was the first(?) scifi series that used 100% computer modeling for its outside space shots.

bryan
Posts: 1036
Joined: Sat Nov 29, 2014 2:01 am
Location: mostly Bay Area

Re: General Systems Thinking (An Introduction to)

Post by bryan » Fri May 05, 2017 6:27 pm

7Wannabe5 wrote:
Fri May 05, 2017 6:18 am
So, I guess what I was really attempting to ask was something like what is the longest possible cycle of states perceptible to a human being a modern computer could generate given no use of any form of RANDOM function/entropy-collector, but inclusive of limited range of input from operator? But, then I realized that was the equivalent of asking something like how much data is stored/available in memory? I couldn't store even the shortest Strawberry Shortcake cartoon on my cassette drive for the purposes of entertaining my sister in 1982, but now...?
I still don't get it :D

Computational states perceptible to humans necessarily means in an interface. Jacob mentioned a debugger or dump. All these interfaces are practically cycle/clock decoupled from the super fast processor these days.. jacob hinted at this modern reality with his flight sim example. So you have monitors (internal refresh rate, 60Hz-240Hz these days, which displays what is drawn by the computer, the draw cycle is known as frame rate/frames per second.), sound (includes a digital-to-analog conversion, DAC, cycle), USB devices like a mouse/keyboard (usually decoupled by a 100-1000Hz cycle).

I'm not really sure of the details of how human systems (and sub-systems) are clocked or possibly decoupled from each other.. but they certainly have experimentally consistent reaction times to sensory inputs. Man machine interfaces (and information encoding/decoding) for human producer/consumer will usually consider these limits, for better or worse. We may yet have newer interfaces like what you see in sci-fi e.g. https://en.wikipedia.org/wiki/Brain%E2% ... _interface

I may look into human/animal/plant systems in more detail in a future life.. many musings on the subject coming from a computer systems background..

7Wannabe5
Posts: 4745
Joined: Fri Oct 18, 2013 9:03 am

Re: General Systems Thinking (An Introduction to)

Post by 7Wannabe5 » Sun May 07, 2017 6:36 pm

...they speak in absolute terms, as if the "emergence" were "stuff" in the system, rather than a relationship between system and observer, Properties "emerge" for a particular observer when he could not or did not predict their appearance We can always find cases in which a property will be "emergent" to one observer and "predictable" to another.

Demonstrations that a property could have been predicted have nothing to do with "emergence." By recognizing emergence as a relationship between the observer and what he observes, we understand that properties will "emerge" when we put together more and more complex systems.
Maybe what I meant to ask was more along the lines of are there computer games that model systems so complex that they produce properties that are emergent for the programmer? Surprise that are not crashes? IOW, are there programs that seem to have a life or mind of their own? I am thinking the answer must be "Yes."

Anyways, I have to read some more books and fiddle around with my lifestyle systems design model and my 3-D landscape program some more before I can figure out how to better ask the question. I am really trying to answer a question about why neither of them "pop" for me.

jacob
Site Admin
Posts: 10966
Joined: Fri Jun 28, 2013 8:38 pm
Location: USA, Zone 5b, Koppen Dfa, Elev. 620ft, Walkscore 73
Contact:

Re: General Systems Thinking (An Introduction to)

Post by jacob » Sun May 07, 2017 7:39 pm

Well ... facebook.com certainly produced unintended social consequences. As for whether programs not running as intended produce "funny stuff" at a purely mechanical level after they've been released; the goal is to avoid that. And if it does happen, it's usually more embarrassing that interesting.

bryan
Posts: 1036
Joined: Sat Nov 29, 2014 2:01 am
Location: mostly Bay Area

Re: General Systems Thinking (An Introduction to)

Post by bryan » Sun May 07, 2017 7:54 pm

> Maybe what I meant to ask was more along the lines of are there computer games that model systems so complex that they produce properties that are emergent for the programmer? Surprise that are not crashes? IOW, are there programs that seem to have a life or mind of their own? I am thinking the answer must be "Yes."

Oh yes, for sure. I would say it's far, far more common than not. A lot of the time it is the whole intent of the programmer, to hand over the control of the system to the system instead of having the programmer or other humans figuring things out ahead of time. It's proven to be a huge net positive, but many regard it as a risky move. Sometimes it is to be avoided at all costs for high-assurance applications.. you can even find SW that is formally (mathematically) proved correct against its specification.

edit: of course as I mentioned before a lot of effort goes into avoiding mutations.. and that goes for programs that control themselves/other things as well. Usually it means limits imposed on/within the system that the system can't mutate. "Isolating" (implementations/effectiveness vary) systems from one another is also a common move.

7Wannabe5
Posts: 4745
Joined: Fri Oct 18, 2013 9:03 am

Re: General Systems Thinking (An Introduction to)

Post by 7Wannabe5 » Mon May 08, 2017 4:31 pm

@bryan@jacob: Thanks for your replies. Maybe someday something will happen like a wind sweeping through Minecraft.

bryan
Posts: 1036
Joined: Sat Nov 29, 2014 2:01 am
Location: mostly Bay Area

Re: General Systems Thinking (An Introduction to)

Post by bryan » Tue May 09, 2017 12:29 am

For the most part programmers really do put limits on things.. but it just takes some flipping things on their head (or pulling the rug from under them) to get _immediate_ surprises. For instance, in the movie Virtuosity, from the 90s, (watched recently) there is a line that basically says "we took that module out of the system and put it into a different system and now we've got emergence!" (accurate)

Another clear segment of emergence is AI/machine learning. For instance we have neural nets that can classify with quite high probability subject content of an image. Super cool and useful! Let's plug it into a larger system! Oh wait.. what if it has a surprising edge case, just like Snow Crash suggested predicted exists (for humans)?

This is why folks get (rightfully) scared of things like AI.. it's not that the AI will become "sentient," it's that they will have the power.

Sclass
Posts: 1531
Joined: Tue Jul 10, 2012 5:15 pm
Location: Orange County, CA

Re: General Systems Thinking (An Introduction to)

Post by Sclass » Tue May 09, 2017 2:46 pm

Hi 7W,

I think I know what your asking. In my narrow world of embedded systems and digital signal processors (if you could call these things "computers") the answer is yes.

Instructions can be single stepped instruction by instruction or clock edge to clock edge with development hardware. This can be useful in some situations where you want to see exactly what your code does as the program counter steps. Or maybe you want to trap a condition and halt your system. As Bryan said, in more complex systems there is so much going on simultaneously that it often doesn't make sense to break down execution this way. But the short answer is yes, I can step my clock as slowly as I can click my mouse if it'll shed some light on operations.

In terms of your pinball bump being able to modify the code after the event, well I guess the compiled code cannot necessarily be modified on the fly. However, parametric data can be updated to make a system change its dynamics which is kind of like changing the code on the fly when the system is bumped. I don't program PCs, I'm talking about embedded code that say runs on an traction control system in a car or a transmission shift controller in a car.

Those are examples of computing systems that monitor your driving behaviors (lead foot, heavy braking, slipping on wet pavement) and "trim" the system parameters to better handle your driving style. An auto tuning thermostat is another example where your local extremes in temperature and your furnace's ability to rapidly change the temperature are empirically collected by the system, processed and used to modify gains and damping to track temperature better. The code really isn't changed but the system is adaptive and the dynamics will change as if it is running different code.

I'm not so sure of the human analogy. I take it you're interested in AI? A friend I used to work with described adaptive feedback as a form of AI. I never thought I was doing something that sophisticated but my machines (digital PID systems) certainly improved themselves as they operated.

Edit - this was in response to
One question I have for any forum members who currently have expertise in computer programming and/or hardware would be whether there are now games that are written with the intention of unknown results due to varying input?
Again I'm not really a "computer" programmer. Not sure what people do on servers and desktops. The answer to the question regarding self tuning thermostats for example is "yes" where inputs like the thermal mass of a room, conductivity, airflow, temperature boundary conditions etc are not always well known before installation. The system is installed, allowed to run and then it tracks better and better after it collects data over time.

bryan
Posts: 1036
Joined: Sat Nov 29, 2014 2:01 am
Location: mostly Bay Area

Re: General Systems Thinking (An Introduction to)

Post by bryan » Tue May 09, 2017 3:53 pm

> the compiled code cannot necessarily be modified on the fly

It all depends on the underlying system (such a general term..). If the lower level hardware/software does not enforce things like memory read/write/execute exclusivity, you can compile a program that can modify itself. In practice this means concepts like JIT/dynamic compilation/translation or more commonly interpretors. These are very often built into programs; but even if they are not you may be able to find ways to manipulate a program input/state as if they are (Sclass said as much here).

jacob
Site Admin
Posts: 10966
Joined: Fri Jun 28, 2013 8:38 pm
Location: USA, Zone 5b, Koppen Dfa, Elev. 620ft, Walkscore 73
Contact:

Re: General Systems Thinking (An Introduction to)

Post by jacob » Tue May 09, 2017 3:56 pm

Speaking of which ... Bateson likes to use the thermostat is an example of how cybernetic feedback processes can operate at different levels. At the simplest zero level, there's no feedback. The furnace is simply on or off. At the next level of feedback, a temperate is set and it may be operated like a bang-bang controller or a PID. This kind of thermostat is responsive to the temperature at the first level. Now, imagine a human being part of the process. The human's goal is to achieve the optimal temperature. The average human has no idea about the process that controls the furnace based on the temperature setting. Instead the human tries to control their comfort by controlling the temperature setting or maybe by installing a new type of thermostat. The human provides a feedback on the [possible set of] feedback process[es]; so this kind of system is responsive at the second level. I'll leave the third level as an exercise for the reader.

Post Reply