Cause?

Fragment of a discussion from User talk:Tkiesel
Jump to navigation Jump to search

Hmm... I don't think so. While IMO it's important to handle "oops, I skipped a turn and lost my radar lock" gracefully, that would have a similar probability of affecting any given round out of the 35 rounds, which would likely not result in such a huge gap between battles.

Whatever the problem is likely is something that affects subsequent rounds after the problem first occurring I think... Times like this make me wish Roborumble sent slightly more information to the server (i.e. per round results, or compressed robot stdout logs for the last <insert-number-here> battles in the rumble)

Rednaxela05:37, 4 June 2012

A few little spots where NullPointerExceptions crept in. Just needed a few sanity checks here and there. Wave surfing with a kNN is very interesting in round one.. where there may be little or no data to go on yet!

Tkiesel05:47, 4 June 2012

I would argue that aspect is more of an issue for VCS, because in kNN you'll always get at least one data point after the first wave passes, whereas in VCS you could get no data even after the first wave passes. Though in both cases you need to handle the no-data case gracefully of course.

Rednaxela06:02, 4 June 2012

What bites me is that I cull points via displacement vectors (points that would lead off of the battlefield), so it's still feasible for me to end up with an empty return till about 1/2 to 3/4 of the way through round one.

I really should drop the displacement culling and see if it hurts/helps. It may be a bit of complexity I don't need.

Tkiesel06:11, 4 June 2012
 

Hmm, you're surfing displacement vectors? Or just using them for bounds checking? If it's the former, that's pretty interesting. Maybe try wall smoothing them instead?

If it's just for bounds checking, that doesn't make much sense to me in movement. In a gun, it makes sense to discard that data because it's clearly not the movement choice the enemy's going to make now. But in surfing, you're the one deciding on the exact movement that correlates to the firing angle, which the enemy had already chosen. I don't really see the correlation that says you should ignore the data you collected about that firing angle. But it's pretty late and my brain's pretty fried from refactoring... :-)

Voidious06:20, 4 June 2012

I record guess factors and displacement vectors for all waves, and come kNN time, I drop data with a (scaled to current situation) displacement vector that leads off the battlefield.

"If it's just for bounds checking, that doesn't make much sense to me in movement." Exactly. Basically, I need to add a boolean argument to that method so that my gun can drop points and my movement doesn't have to. After all, few if any enemies will be doing such culling, so not doing so with movement data will be a closer approximation to the enemy's view of the situation.

Tkiesel06:54, 4 June 2012
 
 

I just surf a Head-On Targeting curve if there's no data. Glad you figured it out. =)

Voidious06:09, 4 June 2012

Yeah, it struck me while walking the dog this afternoon that just seeding my movement kd-tree with a single hit at GF {-0.01,0.01} in the middle of my n-dimensional data-space would probably handle everything.

Tkiesel06:56, 4 June 2012