Let's go to the Mun!
Oct. 11th, 2013 01:00 pmНазываются ли разработчики космической программы космическими программистами?
В наше темное время, когда NASA закрылось, а Роскосмос вставляет датчики положения вверх ногами, регулярно бороздя космическими кораблями пашни Казахстана и просторы Тихого океана, вся надежда человечества сосредоточена на небольшой группе людей, знакомых с кроссплатформенной игрушкой Kerbal Space Program, а надежда этих людей лежит сегодня на вас: нужно написать программу, которая бы изобретала ракеты, оптимально приспособленные под параметры миссии. Входных параметров всего два: масса полезного груза и Delta-V бюджет миссии (определяемый планируемым маршрутом корабля), программа должна придумать конфигурацию ракеты минимальной массы, способной подняться в космос и доставить груз по назначению.
Подробное описание задачи здесь. Там же ссылка на онлайн-калькулятор, в котором можно проверить свое решение и посмотреть, как идет расчет.

Задача проходит в рамках октябрьского конкурса по функциональному программированию, но с измененными правилами. Побеждает не тот, кто пришлет решение раньше, а тот, чьи ракеты для предложенных миссий окажутся легче, а поиск конфигураций - быстрее. Ответы с найденными конфигурациями, ссылками на исходники и указанием времени работы оставляйте здесь. Комментарии будут скрыты в течении 72 часов. Открытое обсуждение условий на страничке конкурса, ну и тут тоже можно, только могут быть некоторые задержки с открытием таких комментов.
Upd: время вышло, ответы открыты, подводим итоги:
Похоже, наш победитель - Никита Белоглазов с решением на Clojure!
Если есть вопросы или лучшие идеи по оценке решений, еще не поздно тут обсудить.
Я думаю, окончательные результаты опубликует у себя хозяин конкурса ФП(ФП)
_darkus_.
В наше темное время, когда NASA закрылось, а Роскосмос вставляет датчики положения вверх ногами, регулярно бороздя космическими кораблями пашни Казахстана и просторы Тихого океана, вся надежда человечества сосредоточена на небольшой группе людей, знакомых с кроссплатформенной игрушкой Kerbal Space Program, а надежда этих людей лежит сегодня на вас: нужно написать программу, которая бы изобретала ракеты, оптимально приспособленные под параметры миссии. Входных параметров всего два: масса полезного груза и Delta-V бюджет миссии (определяемый планируемым маршрутом корабля), программа должна придумать конфигурацию ракеты минимальной массы, способной подняться в космос и доставить груз по назначению.
Подробное описание задачи здесь. Там же ссылка на онлайн-калькулятор, в котором можно проверить свое решение и посмотреть, как идет расчет.

Задача проходит в рамках октябрьского конкурса по функциональному программированию, но с измененными правилами. Побеждает не тот, кто пришлет решение раньше, а тот, чьи ракеты для предложенных миссий окажутся легче, а поиск конфигураций - быстрее. Ответы с найденными конфигурациями, ссылками на исходники и указанием времени работы оставляйте здесь. Комментарии будут скрыты в течении 72 часов. Открытое обсуждение условий на страничке конкурса, ну и тут тоже можно, только могут быть некоторые задержки с открытием таких комментов.
Upd: время вышло, ответы открыты, подводим итоги:
| Mun | Kerbol | Moho | sum | language | |
| Nikita Beloglazov | 224.325 | 113.899 | 467.7125 | 805.9365 | Clojure |
| Sanny Sanoff | 223.6125 | 128.975 | 504.75 | 857.3375 | Java |
| Alex Pashkov | 222.7875 | 116.1499 | 552 | 890.9374 | Haskell |
| kerbal_nut | 225.05 | 115.462499 | 603.30 | 943.8125 | Python |
Похоже, наш победитель - Никита Белоглазов с решением на Clojure!
Если есть вопросы или лучшие идеи по оценке решений, еще не поздно тут обсудить.
Я думаю, окончательные результаты опубликует у себя хозяин конкурса ФП(ФП)
Финальный сабмишен
Date: 2013-10-13 07:02 pm (UTC)Mun 225.05 7001.99753996 [ { "fuel": "FL-T200 Fuel Tank", "engine": "LV-T30 Liquid Fuel Engine", "central": true, "numSideParts": 2, "numEngines": 1, "height": 3 }, { "fuel": "FL-T800 Fuel Tank", "engine": "LV-T30 Liquid Fuel Engine", "central": true, "numSideParts": 6, "numEngines": 7, "height": 2 }, { "fuel": "Rockomax X200-32 Fuel Tank", "engine": "Rockomax \"Skipper\" Liquid Engine", "central": true, "numSideParts": 4, "numEngines": 5, "height": 1 }, { "fuel": "FL-T200 Fuel Tank", "engine": "Rockomax \"Mainsail\" Liquid Engine", "central": true, "numSideParts": 2, "numEngines": 3, "height": 1 } ] Kerbol 115.4625 12015.2296636 [ { "fuel": "FL-T400 Fuel Tank", "engine": "LV-N Atomic Rocket Engine", "central": true, "numSideParts": 0, "numEngines": 1, "height": 3 }, { "fuel": "FL-T400 Fuel Tank", "engine": "LV-T30 Liquid Fuel Engine", "central": false, "numSideParts": 2, "numEngines": 2, "height": 3 }, { "fuel": "Rockomax X200-16 Fuel Tank", "engine": "LV-T30 Liquid Fuel Engine", "central": true, "numSideParts": 6, "numEngines": 7, "height": 1 }, { "fuel": "FL-T100 Fuel Tank", "engine": "Rockomax \"Skipper\" Liquid Engine", "central": true, "numSideParts": 2, "numEngines": 3, "height": 3 } ] Moho 603.3 10504.0617543 [ { "fuel": "FL-T800 Fuel Tank", "engine": "LV-N Atomic Rocket Engine", "central": true, "numSideParts": 2, "numEngines": 3, "height": 1 }, { "fuel": "FL-T400 Fuel Tank", "engine": "LV-N Atomic Rocket Engine", "central": true, "numSideParts": 4, "numEngines": 5, "height": 1 }, { "fuel": "Rockomax Jumbo-64 Fuel Tank", "engine": "Rockomax \"Mainsail\" Liquid Engine", "central": true, "numSideParts": 2, "numEngines": 3, "height": 2 }, { "fuel": "Rockomax Jumbo-64 Fuel Tank", "engine": "Rockomax \"Mainsail\" Liquid Engine", "central": true, "numSideParts": 4, "numEngines": 5, "height": 1 }, { "fuel": "FL-T800 Fuel Tank", "engine": "Rockomax \"Mainsail\" Liquid Engine", "central": true, "numSideParts": 6, "numEngines": 7, "height": 2 } ]В предположении что тороидалный двигатель в центральной части действительно не нужен и что моя программа правильна, Laythe решений не имеет.
https://github.com/Vlad-Shcherbina/kerbal/blob/23fa93a496b05c4f1f54b59be87c69c572389e03/production/solve_all.sh
Для получения данных конструкций солвер запускался в два процесса с ограничением в 110с.
Первые три миссии я ещё попробую ради интереса запустить ночью в большое число процессов и с большим таймлимитом.
Re: Финальный сабмишен
Date: 2013-10-14 08:33 am (UTC)Но вот зато решение для Mun:
222.725 7001.34188801 [ { "fuel": "FL-T200 Fuel Tank", "engine": "LV-T30 Liquid Fuel Engine", "central": true, "numSideParts": 6, "numEngines": 1, "height": 1 }, { "fuel": "FL-T400 Fuel Tank", "engine": "LV-T30 Liquid Fuel Engine", "central": true, "numSideParts": 3, "numEngines": 4, "height": 3 }, { "fuel": "Rockomax Jumbo-64 Fuel Tank", "engine": "Rockomax \"Mainsail\" Liquid Engine", "central": true, "numSideParts": 0, "numEngines": 1, "height": 1 }, { "fuel": "Rockomax Jumbo-64 Fuel Tank", "engine": "Rockomax \"Mainsail\" Liquid Engine", "central": false, "numSideParts": 2, "numEngines": 2, "height": 1 }, { "fuel": "FL-T800 Fuel Tank", "engine": "Rockomax \"Mainsail\" Liquid Engine", "central": true, "numSideParts": 2, "numEngines": 3, "height": 2 } ] it took 14797.9sRe: Финальный сабмишен
Date: 2013-10-14 08:51 am (UTC)