English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

гість
1 / ?
назад до уроків

Перша велика обчислення

Перша велика симуляція Річарда Хеммінга: Лос-Аламос, 1945. Мета — розробити робочу атомну бомбу.

Проблема, що зробила симуляцію необхідною: жоден дослід у малому масштабі не існує. Критична маса є двійковою. Або розщеплювальний матеріал перевищує критичну масу, і виникає ланцюгова реакція, або цього не відбувається. Ви не можете запустити версію з масштабуванням.

Дизайн сферичної імплозії

Один дизайн використовував сферичну симетрію, імплозію. Інженери розділили матеріал на багато концентричних оболонок. Для кожної оболонки вони написали рівняння для сил на обох гранях, плюс рівняння стану, що пов'язує тиск з густиною.

Час був дискретизований на інтервали 10⁻⁸ секунд, звані 'поштовхи' (від 'поштовху ягняти за хвіст'). На кожному поштовху обчислення просувалися вперед: куди переміщується кожна оболонка? Які сили діють на неї?

Цикл симуляції: концентричні оболонки & часові кроки

Три умови, які змушують до симуляції

Хеммінг визначив ситуації, де симуляція замінює фізичний експеримент:

1. Неможливі експерименти — критичну масу неможливо тестувати у малому масштабі

2. Небезпечні експерименти — ви не можете детонувати бомбу для отримання калібрувальних даних

3. Занадто дорогі або занадто повільні — атмосфера блокує, прогноз погоди, траєкторії ракет

Мета: отримати еквівалентні результати, а не точно відтворити фізичний процес. Симуляція не обов'язково повинна відповідати реальності атом за атомом. Вона повинна створити одні й ті ж спостережувані результати у межах точності, яка потрібна для дизайну.

Еквівалентні результати

Ключова ідея Хеммінга у Лос-Аламосі: дані рівняння стану були неточними. Залежності тиску від густини походили з лабораторій високого тиску, оцінок землетрусів, моделей зоряних ядер, усіх з суттєвою невизначеністю.

Інженери читали ці криві з трьома десятковими розрядами, а потім табулювали їх п'ятьма цифрами. Це видавалося мотлохом.

Проте дизайн бомби спрацював.

Чому? Тому що обчислення взяли другі різниці значень на сусідніх оболонках. Будь-яка локальна помилка у рівнянні стану усереднювалася протягом історії оболонки, коли вона проходила криву. Мало значення: кривизна рівняння стану, і тільки у середньому.

Зворотний зв'язок у обчисленні компенсував неточні входи.

Принцип Хеммінга: 'Мета симуляції — не точно відтворити існуючий процес, а створити еквівалентні результати.' У вашій галузі опишіть симуляцію, де входи або модель, як відомо, є приблизними; проте симуляція все ще створює корисні, надійні виходи. Яка властивість обчислення це робить можливим?

Повторювана основа

Хеммінг визначив універсальну структурну ознаку великих симуляцій: дуже повторювана внутрішня цикл.

У Лос-Аламосі: одні й ті ж рівняння сил запускалися для кожної оболонки у кожному часовому кроці. Код для однієї оболонки запускався тисячі разів. Без цієї повторюваної структури вартість програмування була б забороненою.

Цей принцип узагальнюється: прогноз погоди розбиває атмосферу на блоки; одні й ті ж рівняння фізики оновлюють кожен блок. Симуляції ракет просуваються через одні й ті ж рівняння траєкторії при кожному часовому приросту. Дизайн транзистора обчислює одні й ті ж польові рівняння у кожній просторовій точці сітки.

Порада Хеммінга: рано шукайте повторювані частини будь-якої запропонованої симуляції. Відлийте симуляцію у формі, яка використовує повторення. Симуляція без щільної внутрішньої цикли, ймовірно, погано структурована.

Експертні знання як жорста передумова

Хеммінг багато разів повертався до правила, яке він вважав неприйнятним: тільки експерт у галузі може знати, що має значення.

Експерт з симуляції може структурувати код, обрати числові методи, налагодити повторювану цикл. Але тільки той, хто вільно володіє фізикою, хімією або інженерією галузі, може визначити:

- Які ефекти повинні з'явитися у моделі

- Які можна безпечно пропустити

- Чи сигналізує незвичайний результат фізичну істину або помилку моделювання

У Лос-Аламосі Хеммінг був експертом з обчислень. Фізики були експертами у галузі. Жоден не міг замінити іншого.

Жаргон як бар'єр & інструмент

Одне з найсильніших оперативних правил Хеммінга: вивчіть жаргон галузі, яку ви моделюєте.

Його історія: проблема перехоплення ВМС з 28 одночасних диференціальних рівнянь. Він наполегливо просив пропонента, друга-фізика, пройти через кожен рядок двійкового коду машини з ним перед запуском обчислення.

Посередині прогулянки фізик сказав: 'Дік, це обмеження через плавники, а не обмеження напруги.' Один і той же математичний символ, одне й те ж формальне рівняння; проте дві різні фізичні інтерпретації дають суттєво різні результати.

Урок: обидві сторони розуміли математику. Жодна не мала комунікаційної невдачі у звичайному сенсі. Але фізичне значення граничної операції залишалося невизначеним лише рівняннями.

Без прогулянки симуляція запустилася б з невірною інтерпретацією. Жодної помилки під час виконання. Жодного очевидно поганого виходу. Просто неправильні відповіді на важливу проблему.

Хеммінг наполегливо просив людину з інтимним знанням того, що моделюється, бути задіяною у детальному програмуванні. Він відмовився запускати симуляцію ВМС, поки фізик не переглянув машинний код рядок за рядком. Наведіть конкретний приклад, з вашого власного досвіду або галузі, яку ви знаєте добре, де симуляція або модель кодували припущення, яке було технічно правильним, але фізично або операційно неправильним. Яким було припущення, і як експерт його би впіймав?

Стабільні проти нестабільних проблем

Хеммінг провів чітку лінію між проблемами, які симуляція вирішує добре, та проблемами, де симуляція майже неможлива.

Атомна бомба: невеликі різниці у траєкторіях оболонок протягом шляху не сильно вплинули на фінальний вихід. Симуляція була стабільною; помилки у проміжних кроках не підсилювалися.

Прогноз погоди: протилежне. Малий збурення, 'чи помахує метелик крилами у Японії', може, у принципі, визначити, чи ударить шторм континент. Чутливість до початкових умов робить прогноз погоди у день ненадійним за короткими горизонтами.

Обидві проблеми використовують одну й ту ж математичну структуру: дискретизуйте простір на комірки, дискретизуйте час на кроки, рухайтеся вперед. Різниця лежить у полі напрямків, чи зростають (нестабільні) або стискаються (стабільні) невеликі відхилення від траєкторії з часом.

Погода показує обидва: короткострокова нестабільність (денний хаос), довгострокова стабільність (сезони слідують своїм чередам), та дуже-довгострокова нестабільність (льодовикові епохи).

Правило Хеммінга: перед початком будь-якої симуляції перевірте, чи є проблема фундаментально стабільною чи нестабільною. Якщо нестабільна, визначте, чи є нестабільність фундаментальною для відповіді, яка вам потрібна, чи артефактом масштабу або граничних умов. Не відкривайте це після інвестування місяців роботи.

Просто спочатку, повністю потім

Бажаний метод Хеммінга для підходу до нової симуляції:

1. Почніть просто, включіть тільки головні ефекти. Отримайте правильну домінуючу поведінку.

2. Отримайте ідеї рано, просто симуляція розкриває структуру проблеми перед тим, як ви інвестуєте у повну деталь.

3. Розвивайтесь до повноти, додавайте вторинні ефекти прогресивно, перевіряючи кожне додавання проти простішої основи.

Він проілюстрував це проектом ракети Nike. Його ранні симуляції використовували просту експоненціальну модель атмосфери. Пізніші симуляції додавали профілі густини залежно від висоти, умови бічного вітру та нелінійне опір. Але ранні ідеї, вертикальний запуск зменшує опір у густій нижній атмосфері; більші крила коштують більше швидкості, ніж отримують у маневреності пізно, походили з простої моделі.

Попередження: у кінці заморозьте дизайн, використовуючи повну симуляцію. Просту симуляцію заробляє ідеї; повна симуляція заробляє зобов'язання.

Хеммінг виявив, що запуск тисяч траєкторій на високошвидкісному комп'ютері НЕ дав би йому ту ж ідею, що спостереження кількох траєкторій розвиваються повільно на релейному обладнанні 1940-х років. Він написав: 'Я часто сумніваюсь, чи сотні більше рішень навчили б мене так само багато.' Який принцип це ілюструє стосовно взаємозв'язку між обчислювальним обсягом та розумінням? Ви згодні чи не згодні, та чому?