6 ms·
"the system consists of a set of complex collision avoidance and autonomous decision making algorithms..." It's 50 nested ifs, isn't it.
by hoseja 6y ago
"the system consists of a set of complex collision avoidance and autonomous decision making algorithms..."
It's 50 nested ifs, isn't it.
- mhh__ 6y agoActually - I sort of want to work in defense for a few years to find out, that and the sheer amount of tech in a modern missile (the fact that they would likely be used is why I didn't apply) - I reckon most the algorithms here are basically finely tuned signal processing and other non-"AI" processes. There's a tendency to think that everything that isn't completely ab initio like machine learning is bad or inelegant - I often fall for this trap myself, but to just get the job done you can get a very long way with "dumb" algorithms and a practically infinite budget.
- pjc50 6y agoThe advantage of the "old" control systems approach is that it's not a black box; you can reason about its behavior across the state space and make assertions about its frequency response and stability conditions. (Is a neural network really different from a very large cascade of nonlinear filter elements?)
- BrianOnHN 6y ago> Is a neural network really different from a very large cascade of nonlinear filter elements? It's different in theory, but not by much practically. Reverse engineering the former is a fool's errand, but so would be a sufficiently complex version of the latter. In terms of Kahneman's "Thinking Fast and Slow," ML, at least in its current stage, is like the fast thinking system. It's essential but is exponentially more valuable when combined with the slow system, which is still elusive in AI practice.
- mhh__ 6y agoIndeed. I'm just kind of fascinated by military technology e.g. The F/A-18's cockpit HMDs and Hud were light-years ahead of anything in star wars with the exception of holograms even in 1983.
- noneeeed 6y agoIt pretty much is the case. Part of it is that predictability is a desirable feature in these systems, but also that problems like the one described in the article you don't really need things like ML. The majority of control problems like this are surprisingly straightforward. They might be complex, in the sense of having a lot of variables, but the physics involved is well understood and can be modelled using traditional techniques. The progress of self-driving cars is a good example of this. I can remember seeing expeimental self driving cars many years ago, but always going round mostly empty test tracks. Driving a car isn't that difficult for a computer system, what's hard is driving in highly complex urban environments with many other cars around that you need to predict. Planes, in contrast, have a rather simple environment. The number of objects they have to avoid is massively lower, and their freedom of movement is higher, with established rules for how to behave, there are no traffic signs to interpret. This means that all you are really doing is object detection with radar, and collision avoidance. In addition, modern combat planes are effectively flown by a computer all the time anyway, with the pilot providing the instructions. A number of fighter planes, especially the most modern, are essentially unflyable without computers due to their aerodynamics. Most are inherently unstable around at least one axis, which makes them more manouverable, but means they will not fly stably in the way a 747 will.
- nonameiguess 6y agoAlgorithms that don't use machine learning aren't dumb. The point of machine learning is you need to implement some function, can't derive it directly from first principles, but have lots of examples of correct inputs and outputs and can use that build a function estimator instead. But in a whole lot of quite sophisticated and intelligent applications, you can derive the functions from first principles. Not easily. One of the projects I spent the first few years of my career working on was the common image formation processing for spy satellite collections, and you need to take into account special relativity, orbital mechanics, curvature and velocity both of earth and of the arrays, midnight crossover in time keeping, temperature calibration and the impact on reported voltage detection of each sensor cell, parallax effects of rapid altitude changes, polarization of light. There's a ton that goes into it, but we know the physics and don't have to use statistics to make educated guesses. We can compute "given voltage levels x1, x2, ..., xn on sensor cells y1, y2, ..., yn at times t1, t2, ..., tn, that is what we were looking at" exactly. Mind you, I'm talking basic level 1 transformation of raw data streams to human-intelligible images. Once you get into automated object recognition, that's when we start to use machine learning, but the algorithms upstream of that are still plenty smart.
- ip26 6y agoGPS is a good example. Heavy math. Lots of physics. Not dumb at all, and you'd never get sub-1m accuracy with ML-GPS. Once you get it right (& get a lock) it works every time, instead of occasionally deciding you are in Nome.
- mhh__ 6y agoAs a theoretical physics student who can actually write good code, this is the kind of thing I want to work on - unfortunately where I live you basically have a choice of making things and making money
- nvoid 6y ago> who can actually write good code If you're going to make this statement, you need some skin in the game by putting your GH in your bio. I don't have the balls to boast about my code so there is no GitHub link in mine :). There wouldn't be much to see anyway.
- 177tcca 6y ago> the sheer amount of tech in a modern missile "Old", reliable tech is prevalent there, too. Sqlite in missiles is a good example.
- jsrcout 6y agoSqlite is used in missiles? Would love to know more about that!
- koonsolo 6y agoComing from a game development background, the easy part is to make the perfect opponent. The hardest part is to let the opponent feel human. I'm guessing pointing a missile to the right direction has more to do with fast feedback loops and less about training neural networks.
- mhh__ 6y agoWith a missile the actual signal processing and acquisition is what interests me rather than the control theory e.g. you send radar pulses out, you get Doppler shifted pulses back absolutely littered with ECM - now turn that signal into a target to aim at. Laser codes on A2G missiles are a similar thing that interests me.
- deleted 6y ago[deleted]
- tester34 6y ago>It's 50 nested ifs, isn't it. which can be complex ... algorithm, can't it?
- the_af 6y agoYes, in fact many static code analyzers and metrics will flag a piece of code as too complex if it has too many nested ifs. But it does sound a lot less glamorous, doesn't it?
- tester34 6y agofor marketers? maybe for me? if it works, then it's great - especially here, where it saved people's life & expensive af aircraft
- mikestew 6y agoWell, “it works” in your desktop testing. That doesn’t mean it works. How do you test the permutations of 50 nested if statements such that you know “it works”? Whoops, there’s a bug reported from the field. Have fun debugging that corner case. Or IOW, why do you think the static analyser flagged it in the first place?
- akiselev 6y agoIt doesn't matter if it's 50 nested ifs or not if we're talking about a recent generation jet fighter - it's going to be hell to test no matter what. Even with provable control systems you're still at the mercy of cutting edge technology and the whole point of the jet is superiority over a yet unknown adversary with high tech capabilities so the system has be overengineered with that in mind.
- fma 6y agoI have a very rudimentary knowledge of ML. But decision trees basically is if else statements, isn't it? The "ML" part is coming up with the tree.
- imagine99 6y agoMight be just the one... if pilot.conscious = false then flyto(base);
- gnatman 6y agoSales guy here- turns out programming’s easier than I thought!
- imagine99 6y agoThat's just because the above code is in Pascal. You see, it would be much more complicated if written in C++ or distributed real-time Java.
- martin_a 6y agoI was _so_ freaked out by that one equal sign. Pascal uses := for assignments, if I remember correctly?
- deleted 6y ago[deleted]
- imagine99 6y agoThat is correct, but for boolean expressions, logical operators etc. it's just the one equal sign. E.g. if pilot.sleeping = true then alarm.playing := true; // This will check if the property "sleeping" of pilot is true and will then set the property "playing" of alarm to true as well. You could also do a "while" or "repeat .. until" there which would probably better to stop the alarm if the pilot wakes up again (... then alarm.playing := false). It could totally work this way if you programmed a simple flight simulator with Delphi, even today. BTW, one exception to := in assignments are initialized variables inside a var section: var announcement: string = 'Wake up!';
- leetcrew 6y agosad that this didn't catch on more broadly. I find that the difference between `=` and `==` is consistently confusing to beginners. it's actually worse when someone has a strong math background. that and the fact that `1/2 * x` is zero in most languages...
- NoOneNew 6y agoI dont really see a problem with that. While ugly as hell visually, it's stupid simple to find out what went wrong and fix it. Over abstraction and fancy technique doesn't automatically equate to reliability and performance. Why over complicate something just to inflate your own ego and be a show off to people who are not the end user putting their life in the hands of the software?
- jakub_g 6y ago2^50 meets the definition of "complex", if you ask me
- robocat 6y agoAssuming there are only “if” and no “else”, then there would be 51 code paths (Presuming other preconditions like: the condition is code or there is some code within each if; the code cannot throw exceptions; there is no return statement; etcetera). You could perhaps have only two code paths: the 50 ifs are true and something happens, or any one of the ifs are false and something doesn’t happen... although that could be written as a single if statement with “and”s. The 2^50 case would be more code than we can store (unless using techniques that reduce the complexity i.e. not 2^50).
- mattmaroon 6y agoI wouldn’t think it’s really that complicated. The autopilot on a 182 would do the same thing. If the nose is pointed at the ground, pull back on the yoke. Etc. The nicer ones can even stop a spin and have a button you press that’ll return you to straight and level flight. I guess a fighter is often purposefully in attitudes a regular plane normally isn’t, but I’d bet it’s a simple warning and override. But I don’t fly fighters so I’m just guessing. Collision avoidance with other planes In a dogfight might be a lot more complex too.
- Animats 6y agoFighters sometimes fly close to the ground on purpose. Building a system that will allow extreme maneuvers near the ground without a false alarm trigger was hard. The Swedish air force was the first to use this system, and they routinely fly "close to the rock", through mountain passes. That's the hardest part of the problem, deciding when to initiate the recovery while not impeding what fighter pilots consider normal flight. The threshold is something like 0.3 secs before it's too late to correct. That requires a very good trajectory predictor for figuring out when it's going to be too late. Next is getting the aircraft into a wings-level condition, no matter what direction it's pointing. For fighters, extreme attitudes are normal. Auto-GCAS will make violent maneuvers to do this. "At that instant, the Auto-GCAS commands some of the most aggressive, eye-watering maneuvers this ex-USAF flight test engineer and civil pilot has ever experienced. If inverted (bank angle greater than 90 deg.) and somewhat nose-down, a negative 1g push throws the pilot "up" into his shoulder straps and lap belt to get the aircraft's nose headed skyward. Immediately, a 180-deg./sec. roll is commanded, bringing the aircraft to wings-level, right-side-up." Only then can the system command a climb: "Somewhere after passing the 90-deg.-bank point, a 5g pull-up is initiated at an approximately 4g/sec. rate. The system commands a maximum angle-of-attack recovery, if flight conditions will not sustain a 5g pull-up."
- jki275 6y agoThe F18 literally has a switch labeled "Spin Recover". One of the things it does is to take the computer out of the equation and allow the pilot to fully command the airplane rather than processing stick and rudder inputs.[1] General procedure though is take your hands and feet off the controls to start with. The full procedure is in the link a few pages in. Notably, it ends with "if passing 10,000ft AGL with no indication of recovery, eject. 1 - https://apps.dtic.mil/dtic/tr/fulltext/u2/a256522.pdf https://apps.dtic.mil/dtic/tr/fulltext/u2/a256522.pdf
- tyingq 6y agoSome more detailed info: https://sci-hub.se/https://doi.org/10.1109/DASC.2011.6096148 https://sci-hub.se/https://doi.org/10.1109/DASC.2011.6096148
- tablespoon 6y ago>> "the system consists of a set of complex collision avoidance and autonomous decision making algorithms..." > It's 50 nested ifs, isn't it. If that's the case, I don't see an issue if they're spread out among a reasonable number of functions. I wouldn't want some sexy ML system that will sometime go off the rails because the clouds are in the wrong place to be within 100 feet of an aircraft control system.
- Nition 6y agoFunny how that sort of statement can sound promising to the general reader but scary to a programmer. I anything I'd put more trust in "We have a very simple collision avoidance system, you could probably write it yourself."
- busterarm 6y agoI would bet it's mostly just PID in software.
- mvh 6y agoGoogle “ACAS X” if you’re interested in what these algorithms are like. There are some good papers available online.