Optimization problems like that are fascinating. We can treat them generically without having to teach our program about the specific problem it's trying to solve. All we have to do is come up with proposed solutions and pare them down.
For starters, we need a "cost function" so we can see which solutions are better than others. That's the easy part: render the model on 3D hardware, lighting it with a distant point light source. The "cost" (the value we're trying to minimize) is 1 - Σ(face_brightness); modern hardware can easily handle precise geometric shadowing using a stencil buffer or similar well-known technique. Handle the thermal constraints by setting the "cost" to 1 when the space station disintegrates.
Now we just need to find some ways of coming up with proposed solutions and pruning all but the best solutions. This problem has path dependencies, so we can't just apply a greedy algorithm. That is, solar panel actuators take time to move, so the best solution for time [T_1, T_3] isn't necessarily the concatenations of the best individual solutions for intervals [T_1, T_2] and [T2, T_3].
What you're left with is actually a graph search problem, where our graph nodes are actuator inputs at specific (quantized) times; I feel like something like the veneralbe A* algorihm would be a good place to start looking for paths through this graph.
A good solution should also minimise movement, to conserve energy and reduce mechanical wear. And part of the orbit is in darkness - the criteria would be different there (not optimising illumination, but needing to be ready for the return to daylight).
So many trash comments on the site about how NASA should be "offering more money" or how this is a way for them to "save money" and it is all a scam.
Seriously? Any decent hacker attempting this is probably doing it for props. The money is great and provides a good monetary incentive but when it comes down to it I'd wager people would do this for free. Hell a personal tour of NASA and maybe their name in the code might but just as good.
I'd like to propose a different perspective into this.
In a respectable aerospace organization, a typical effort into such an optimization project would be in the order of 3 mid-to-senior staff, for a duration of 6 months. Consider a loaded rate of $200k/year (remember, overhead makes it much more expensive), and you'll be looking at about $300k for a single tentative. Let's suppose they probably tried no more than 3 to 5 approaches already, that's $1.5M of taxpayer's money they already put on that. And they still can't figure out a way to keep a good configuration of shadows on the longerons when they push it for a little more power.
If I came up with an optimal solution to this problem, I'd be miffed to be let go with $10k (or $30k as they seem to have updated) and a nicely worded letter. I would hope my carreer to be guaranteed✝ for a few years, instead of being thrown back on my own into the void.
--
✝ No, the letter is not a guarantee of employment elsewhere. If anything, it might very well scare off "normal" employers from hiring a prospect.
More or less true, but remember that even submitting the winning submission does not carry the same weight of responsibility or liability that it would normally carry at an engineering firm. Your submission doesn't even have to come close to providing an optimal, or even safe solution, and that won't hurt you (beyond not winning) one bit. Validation and testing will no doubt be done by actual fully paid NASA (or whatever space agency) employees, at their usual rates.
> If I came up with an optimal solution to this problem, I'd be miffed to be let go with $10k (or $30k as they seem to have updated) and a nicely worded letter.
You would have known in advance that that's the prize. If you would be miffed to get the prize, you shouldn't enter this particular contest.
The problem is that these 10.000 $ look cheap regarding the amount of work it requires. I can't find a link but there's several studies showing that people are willing to do a lot of things for free if they like it, but they see it like work if it's paid and they enjoy it less, especially if for a ridiculous sum of money.
I'm pretty sure Wikipedia would have a lot less content if they paid their contributors 1 cent by article.
I think the Nasa should either increase the bounty or make it 0 $.
> I can't find a link but there's several studies showing that people are willing to do a lot of things for free if they like it, but they see it like work if it's paid and they enjoy it less, especially if for a ridiculous sum of money.
This seems to be the unfortunate result every time a bounty or a prize is offered for a public competition with some meaningful task.
* If the task is obviously unuseful (for example other TopCoder competitions, sports competitions), prizes seem to make it more desirable.
* If the task is useful and there is no prize, people jump on the chance of doing something cool.
* If the task is useful and there is a prize, it is seen as work, and judged based on the typical (Western world) hourly rates.
Plenty of open-source bounty boards have had a similar backlash, even though hundreds of thousands of coders work on fixing open-source bugs just because they like it.
It would be great to come up with a solution that stops people being upset at being offered more than nothing, for work they would gladly do for free anyway. But at the moment I don't have any solutions to propose.
For this particular hackathon, NASA would do better to say up front if this is a space publicity competition (and the results are not useful to them), or if they will use the winner's code on the ISS (in which case bragging rights are worth way more than $10k).
Agree, most hackers with interest in space, science, etc would dedicate a considerable amount of time and do it for free. 10k is 10k and its really not a game changer amount. Its the fun, the problems significance and bragging rights!
+100. NASA can easily write you a $1 million check and then some for a lot of things, but imagine the satisfaction each time the Space Station is mentioned...that sucker is (partly) running on my code. And then there's the resume thing and your name mentioned all over the interwebs if you win
> Your goal (...) is to define the angular position and velocity for each of the joints that connect the solar panels to the station for every point in a 92-minute orbit. Limitations on any solution include making sure the masts for each panel aren't in a shadow more than they need to be, making sure the cycle can be repeated each orbit
Sounds like (if the finalist is deemed good enough and their solution will be used) a lookup-table of numbers will be uploaded, not your actual code running on any actual chips in actual space.
So much for hiding an obfuscated buffer-overflow code execution exploit and taking over a space-station ... pew pew pew!
It seems a bit absurd that the Panama canal isn't on that list given that it cost around $15 billion in present day dollars. And that's with 25,000+ people dying in the process. I can only imagine what the cost would have been if they had take the precautions necessary to prevent most of those deaths.
they actually did take a great deal of precautions in the later American phase, like draining swamps and chemical agents to control mosquito populations. Mosquito born illness was a major factor that sunk the earlier french attempt.
I always get kind of depressed with these contests and never enter them, because although I feel that I could come up with a solution, I also think there's probably thousands of other people out there working on the challenge and doing it even better than me.
What harm can possibly a person from Iran do to this project, or US, or us citizens or other people from the world, by contributing to this project or other ones on TopCoder?! Ok I understand that you can not sell things to us, because you think that we may misuse them for terrorism (Although real terrorists - not the people - can find what they want easily) but seriously what does contributing to an International project can do anything with politics?
This is such a stupid comment. He didn't just copy the source code, he was sniffing all communications to the team developing for NASA. He killed himself for a completely different hacking incident almost a decade later.
From the official rules: "The tester will be eligible for the final prizes based on his initial submission, but not the tester is eligible for the milestone prizes."
In practice this is an interesting problem for ISS. Considering the varying contingent of shadow-casting (and reflecting!) payloads, orbital replacement units, visiting vehicles and robotic elements the station's geometry is constantly changing. Then we have to consider system and lifespan effects. Solar array orientation alters the corresponding equilibrium attitude of the station and thereby the need for gyro and thrust stabilization. Along with problems we've had with overuse of the solar array rotary joints, there is a lot to consider after and optimal array orientation is found. Space is expensive.
Could you cite where it states that you have to be a US citizen? I can't see any restriction apart from the usual ones on Quebec and the axis-of-evil countries.
It's entirely possible that I'm looking at the wrong place, that's why I'm asking.
From the official rules and regulations:
"A Competitor is not eligible for this Competition if he/she is a resident of the Quebec province of Canada, [...]"
You don't have to be in the US: "(iv) a non-U.S. resident authorized in the country in which the member resides while participating in this Competition to perform services as an independent contractor."
And for those asking, I read through the terms and conditions until I bounced into this and jumped to a hasty conclusion...
Eligibility
This Competition is open to all members of the TopCoder website, who have agreed to the terms thereof, and who are at least 18 years of age. Competitors must be:
(i) a U.S. citizen,
(ii) a lawful permanent resident of the U.S.,
(iii) a temporary resident, asylee, refugee of the U.S., or have a lawfully issued work authorization card permitting unrestricted employment in the U.S., or
For the last line indeed says:
(iv) a non-U.S. resident authorized in the country in which the member resides while participating in this Competition to perform services as an independent contractor.
Since this is the first request for collaboration with NASA we've seen on HN, are there other obvious problems you'd like to independently analyze with us? ISS? Rovers? Navigation? Deep Space Networking? (etc)
Yes. And you are prohibited to disclose (and that sucks):
>This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited.
This Competition is open to all members of the TopCoder website, who have agreed to the terms thereof, and who are at least 18 years of age. Competitors must be:
(i) a U.S. citizen,
(ii) a lawful permanent resident of the U.S.,
(iii) a temporary resident, asylee, refugee of the U.S., or have a lawfully issued work authorization card permitting unrestricted employment in the U.S., or
(iv) a non-U.S. resident authorized in the country in which the member resides while participating in this Competition to perform services as an independent contractor.
I hear you. As a Quebec resident, I've been getting screwed all my life by these restrictions on contests. I don't even know why we're listed there alongside Kim Jong-il, Ahmadinejad and Castro. There's probably some law somewhere that the government of Quebec voted, but I don't know what it is.
"A Competitor is not eligible for this Competition if he/she is a resident of the Quebec province of Canada, Iran, Cuba, North Korea, Sudan or Syria."
http://contests.about.com/od/sweepstakes101/f/VoidinQuebec.h... summarizes it pretty well. The contest laws there make it a lot more work (and more expensive). Especially for sweepstakes where they're just randomly giving away free stuff (rather than competitions like this), it makes more sense to just exclude it instead of dealing with their laws.
It's a fun, hard, puzzle. Some people enjoy fun hard puzzles. This puzzle gives those people a small chance of winning some cash as well as giving them a fun hard puzzle to work on.
For starters, we need a "cost function" so we can see which solutions are better than others. That's the easy part: render the model on 3D hardware, lighting it with a distant point light source. The "cost" (the value we're trying to minimize) is 1 - Σ(face_brightness); modern hardware can easily handle precise geometric shadowing using a stencil buffer or similar well-known technique. Handle the thermal constraints by setting the "cost" to 1 when the space station disintegrates.
Now we just need to find some ways of coming up with proposed solutions and pruning all but the best solutions. This problem has path dependencies, so we can't just apply a greedy algorithm. That is, solar panel actuators take time to move, so the best solution for time [T_1, T_3] isn't necessarily the concatenations of the best individual solutions for intervals [T_1, T_2] and [T2, T_3].
What you're left with is actually a graph search problem, where our graph nodes are actuator inputs at specific (quantized) times; I feel like something like the veneralbe A* algorihm would be a good place to start looking for paths through this graph.