Programmer tries to explain binary search to the police

The Picard Maneuver@startrek.website to Programmer Humor@programming.dev – 2488 points –
409

You are viewing a single comment

You didn't get what was talked about here. Re-read the topmost parent comment.

How do you binary search for two people arriving, one punches the other, they both leave?

You didn’t get what was talked about here. Re-read the topmost parent comment.

I was responding to this ...

Part of my job is to review security footage for reported incidents.

If there is a long-lasting visual cue that the event has or has not happened yet (e.g. a window is either broken or not), then a binary search is very useful.

If the event lasts only a moment and leaves no visual cue (e.g. an assault), then binary search is practically useless.

I disagree with the "leaves no visual cue" part, as I've commented on. There's ALWAYS something caught on the video to help determine things. Maybe not enough, but never nothing.

Maybe I'm not understanding both arguments here but I'd like to understand. I've had to review footage of a vending machine being shaken to release drinks.

You have no before or after visual clue as to when the event took place. The only indication is when you physically see it happening. The same could be said for an assault. If nothing is changed in the before or after static still how can you pinpoint the incident?

You have no before or after visual clue as to when the event took place.

That wouldn't necessarily be true. If you shook it hard enough to move the contents inside the vending machine and the vending machine had a glass front then you would have a static change that would last from the time the event happened until a human being came to work on the machine. That change would be detectable.

Or from the shaking the vending machine is moved an inch forward and an inch to the left. That change would be detectable.

Everyone arguing against me is trying to focus the point that the event is such a short duration that it's not detectable afterwards, and what I've been arguing the whole time and that people keep ignoring is that most of the time after an event happens that the environment around the event changes, and it's detectable afterwards.

How do you binary search for two people arriving, one punches the other, they both leave?

In the same way the OP talks about it ...

You don't watch the whole thing, he said. You use a binary search. You fast forward to halfway, see if the bike is there and, if it is, zoom to three quarters of the way through. But if it wasn't there at the halfway mark, you rewind to a quarter of the way though. Its very quick. In fact, he had pointed out, if the CCTV footage stretched back to the dawn of humanity it would probably have taken an hour to find the moment of theft.

Instead of a bike, you look for the aftereffects of a fight happening (chairs knocked down, tables turned over, etc.). You can even look at how many people congregate around the location of the fight before and after the video as a 'marker' to the point of time the fight was happening/just finished.

Edit: One thing we didn't even mention, AI can also be used these days to notice subtle changes in the video. If a video is a static image of an alley, then two people walk in the alley and fight, even though they leave no traces behind, that moment of the fight is caught on the video with activity/movement. Motion sensor movement, basically.

You are seriously confused. OP specifically said that you're fucked if there is no visual cue.

You are seriously confused.

And you are seriously trying to kill the messenger.

OP specifically said that you’re fucked if there is no visual cue.

And I'm saying there's ALWAYS a visual clue/cue, always. Either the bike is there one minute and gone another, or a fight breaks out and trashes the place from the fight. In the vast amount of cases, there's always a visual difference.

And in this case we're talking specifically about a bike, going missing.

Absolutely not true. Guy walks bye and shoots someone well offscreen. Momentary action with no visual cue before or after. Why are you arguing this useless point?

Absolutely not true. Guy walks bye and shoots someone well offscreen. Momentary action with no visual cue before or after. Why are you arguing this useless point?

The person dropping to the ground dead would be the visual cue.

...well offscreen... wow

If its all offscreen, then WTF are we bothing to talk about?

Is this on purpose?

The shooter is on screen the victim is not.

This is on purpose isn't it. You're fucking with me.

This is on purpose isn’t it. You’re fucking with me.

Sorry, I thought you were saying that the guy walking by was off screen, and the person on screen was shot, since the focus of the conversation was about binary search based on what's on the video.

Guy walks bye and shoots someone well offscreen.

In that case the shooter, walking up and then holding up a gun and pulling the trigger would be the marker, as well as the puff of smoke, for the binary search, which could be done with AI, if not human eyes.

Also they would know the approximate time of death, so they can use that to extrapolate a range on the video that they need to binary search on. I'm pretty sure this is normal police work that I'm describing at this point.

Having said that, that's one hell of a hypothetical you made there. At some point you could definitely come up with an example of when a binary search wouldn't work, but not based on what the OP was discussing, or what others were discussing about two people having a fight on camera.

If you skip to after the smoke has dissipated, you cannot gather enough information to know that you need to rewind. A binary search is useless in this scenario.

16 more...

You are trying really hard for some reason to fit a binary search into a discussion about a situation where it clearly does not belong. Very weird but very passionate I applaud you.

You are trying really hard for some reason to fit a binary search into a discussion about a situation where it clearly does not belong. Very weird but very passionate I applaud you.

The actual/origiinal OP talks about a binary search.

Changing the focal point of discussion to fit your narration is not intellectually honest.

You're trying to change the discussion focus point to kill the messenger.

Seriously, my guy. Are you having a mental breakdown or what? You're accusing rational people trying to correct you of being botnet responses, you're constantly moving your goal posts and accusing everyone else of doing it, you're being intellectually dishonest and accusing everyone else of doing it.

You are being transparently and irrationally defensive all because you can't admit you made a mistake. Surely you can see this is no way to go through life and no way to spend your time, right? I'm worried about you.

5 more...
5 more...
5 more...
21 more...
21 more...
21 more...
21 more...

Not if he's off screen. It's only a visual cue if it's captured by the video.

If you have a separate video of the guy falling over dead, you can use that video to get a window of time to view in the other video, but one video that captures only parts of the scene can easily leave you with no visual cues.

21 more...
21 more...

Ok but the text that you replied to, that you quoted, was "If the event lasts only a moment and leaves no visual cue (e.g. an assault), then binary search is practically useless." Emphasis mine. If you'd started out saying "there's ALWAYS a visual cue," then you likely wouldn't be getting dragged, but you started out arguing from this position without clarifying it, which makes it seem like you didn't know what you were talking about. You can't say that you can simply look for visual cues when the other person specified that there were none.

Ok but the text that you replied to, that you quoted, was “If the event lasts only a moment and leaves no visual cue (e.g. an assault), then binary search is practically useless.” Emphasis mine. If you’d started out saying “there’s ALWAYS a visual cue,” then you likely wouldn’t be getting dragged, but you started out arguing from this position without clarifying it, which makes it seem like you didn’t know what you were talking about.

Last time I checked, I'm allow to disagree with a comment someone made, and argue the opposite. Just because they say 'no visual cue' does not mean that is no visual cue.

You can’t say that you can simply look for visual cues when the other person specified that there were none.

Why, because you say so? Yes, I can. Of course I can.

Its called "disagreeing" with what the other person is speaking of, and countering. Its a discussion.

Just because they say 'no visual cue' does not mean that is no visual cue.

It literally, explicitly does, because they are talking about a hypothetical situation where no visual cues are left. If no visual cues are left, then there are no visual cues to see.

Why, because you say so? Yes, I can. Of course I can.

Okay. I should have been extremely specific. You cannot rightly and correctly say that there are visual cues that could be found when the other person explicitly says that there are no visual cues to be found, because in the hypothetical situation that they've brought up, there would be no visual cues to find, and so while you are physically capable of stating the phrase "just look for the visual cues," or some variation thereof, you are incorrect in the assumption that there would be visual cues to find.

When somebody says "you can't say" followed by a statement that's incorrect, they aren't trying to tell you that you are physically incapable of saying that statement; rather, there is an implicit "correctly" or "honestly" between the "can't" and "say."

because they are talking about a hypothetical situation where no visual cues are left.

No, I am not. I'm disagreeing with that, and my comments are stating as much. I'm allowed to disagree with what someone is saying.

You seem to talk about different things when you say "visual clue". Yes, there will be a small duration in the video where the event happens and maybe a short aftermath. That's not a visual clue, that's the thing you're looking for. What all others mean by visual clue is a definite indicator that you can see when picking any random frame in the video that tells you if that frame is before or after the event. That allows you to exclude all other frames from your search, reducing your search range by half.

A stolen bike, a broken window, your examples that trash the place or end up with a crowd of people in the area, all leave such a visual clue. At any random frame you can check if the bike is there or not, the window is broken or not, etc.

But let's say you have footage of the street facing CCTV and you need to find at what time the suspect left the scene (crime happened somewhere else). There's nothing that tells you when looking at the halfway point if the suspect already passed or didn't. You still have to look at both sides of that point in time.

The classic example for binary search is looking for a word in a dictionary. You open it halfway and see if the words there are before or after the one you're looking for. Then you know which half of the dictionary you need to look in next. Then you use the same method for that half and so on.

But what if someone highlighted a word in the dictionary and you don't know which word? Binary search is useless. You have to skim through the whole thing until you see it.

I believe what you stated is partially incorrect, as you don't look at just a single frame, you compare it to the frames before and after as well, you search for pattern changes.

I stand by what I said. I don't believe you're seeing the whole thing (pardon the pun).

Five months later, and I'm not going down this rabbit hole again. I'll just leave it at agree to disagree.

Even if you're looking at a range, it still won't tell you anything except that you found the guy or you didn't find the guy. If you didn't, what's the next step? (In the find when the suspect passed in front of the camera scenario)

21 more...
21 more...

Your adding things that would allow a binary search work, but the question was in a situation where the only evidence is the conflict itself

2 guys enter one guy punches the other guy they both leave. Nothing is moved no blood was created,

you could not use a binary search effectively to duduce when it occurred.

Your adding things that would allow a binary search work, but the question was in a situation where the only evidence is the conflict itself

I'm describing the vast majority of fights that happen in the public. Also, you're trying to move the goalposts by focusing on a fight, when the discussion is about the theft of a bike.

Edit: One thing we didn’t even mention, AI can also be used these days to notice subtle changes in the video. If a video is a static image of an alley, then two people walk in the alley and fight, even though they leave no traces behind, that moment of the fight is caught on the video with activity/movement. Motion sensor movement, basically.

What does that have to do with a binary search If a camera has AI on it then two things. A you have a system that already would be capturing movement or motion so you already have flags that you can check which would make a binary search mostly unnecessary. and B it's not binary search. Which is this whole discussion.

Cool you're adding information to the question to make yourself "right" but even your comment says that's only the vast majority of fights and also you had to clarify in public so there are edge cases where the situation still stands that binary search wouldn't work or wouldn't be feasible.

A solution doesn't have to work for 100% of things for it to still be a good solution.

Cool you’re adding information to the question to make yourself “right”

No, I'm not. Within the moment I'm creating a comment I might save and then edit, because in the past I lost whole comments when I switch tabs in my browser. But when I'm done and hit that save I'm done, and then a few cases when I'm not I add an "Edit:" to it.

but even your comment says that’s only the vast majority of fights and also you had to clarify in public

Well most fights are in public, if a public camera is recording it. If a fight is private then it's probably not being done where a camera is.

so there are edge cases where the situation still stands that binary search wouldn’t work or wouldn’t be feasible.

The only edge case I could think of would be if something happens in a split second and then the scene is static again, the same before and after that.

But even then if you're talking about a static scene on the camera AI would probably be able to catch that split second change happening, so binary searching can still be done.

I have a feeling you just don't understand how a binary search functions even with AI you wouldn't be using a binary search at that point

If you have camera footage from 4pm to 8pm with event lasting 1 minute but no changes occur to the background/foreground how exactly are you using recursion to determine which part of the footage even occurred without going through the entire film. Are you picking at random?

The way you're describing AI is not binary search and so it can't be used in this example. Also most public cameras are not 8K cameras they don't contain a lot of detail, so the argument that they could catch something subtle kinda gets blown out of the water. You can't just use AI as a cop out for not understanding how function behaves or works

I have a feeling you just don’t understand how a binary search functions even with AI you wouldn’t be using a binary search at that point

I've written binary searches before. I understand how they work.

What does that have to do with a binary search If a camera has AI on

You can have a AI do the actual binary search as described by the OP in his comment pic. Doesn't have to be a human being that does it, but the process would be done the same way by either.

My mentioning motion detection is just that an AI would be able to detect the moment of change in the video, the focus point more readily than a human being, is all.

I'm describing the vast majority of fights that happen in the public.

But the comment you replied to already addressed those fights, and bike thefts, and the vast majority of cases that you're talking about, by saying

If there is a long-lasting visual cue that the event has or has not happened yet (e.g. a window is either broken or not), then a binary search is very useful.

No one is moving goalposts. The parent comment said that binary search is useful in situations like bike thefts where visual cues are present, and not useful in situations where visual cues are not present.

In your hypothetical situation involving AI, the AI would use visual cues that are present, and so the situation is covered by the parent comment's second paragraph. In a situation where there are no visual cues for the AI to use, it would be covered by the third paragraph. They still aren't wrong about anything.

The parent comment said that binary search is useful in situations like bike thefts where visual cues are present, and not useful in situations where visual cues are not present.

Just repeating myself at this point, but I was responding to this (the bolded part) …

Part of my job is to review security footage for reported incidents.

If there is a long-lasting visual cue that the event has or has not happened yet (e.g. a window is either broken or not), then a binary search is very useful.

If the event lasts only a moment and leaves no visual cue (e.g. an assault), then binary search is practically useless.

I disagree with the “leaves no visual cue” part, as I’ve commented on. There’s ALWAYS something caught on the video to help determine things. Maybe not enough, but never nothing.

I disagree with the “leaves no visual cue” part, as I’ve commented on. There’s ALWAYS something caught on the video to help determine things. Maybe not enough, but never nothing.

Then you should be responding to the "leaves no visual cues" part, not the "binary search is useless" part. If there WERE a situation that left no visual cues, THEN binary search WOULD be useless. It does not matter whether there ARE such situations.

Then you should be responding to the “leaves no visual cues” part, not the “binary search is useless” part.

I did, by disagreeing with that statement, and listing reasons why.

No, you are either lying or wildly confused. You explicitly just stated that what you were responding to was the "binary search is useless" part. If you were responding to the "leaves no visual cues" part, you would have bolded it. You just said that what you responded to was the "binary search is useless" part. That means that logically, your argument IS that even in situations where there are no visual cues, binary search WOULD be useful, which is incorrect.

What about this hypothetical scenario:

Suppose the objective is to review highway cam footage of the day to verify that a (non-speeding) car with a particular license plate drove past the area / used this route. The route is used 24/7 by many identical cars throughout the day and night, and that our target car is one such identical car, with the only difference being the license plate. We know on average cars that drive past this camera only appear for 3 seconds on the footage. How can binary search be used to find the car within 24 hours of footage, if the target car only appears for 3 seconds within the 24 hour video?

21 more...
21 more...