Допустим, нужно оптимизировать форму сопла двигателя.
Форма, допустим, зависит от 5 параметров.
Чтобы посчитать тягу двигателя с указанными конкретными параметрами, нужно решить систему диф. уравнений.
Возникает вопрос: "И что?"
Говорите этому вашем LocalSolver - черный ящик с 5-ю параметрами и одним выходом . Нужно подобрать такие 5 параметров (форму сопла), чтобы получить максимальный выход (мощность двигателя).
LocalSolver спрашивает у черного ящика, а сколько будет при таких-то параметрах? А, ящик? А вот при таких то параметрах сколько будет? И т.д. и ищет, ищет, ищет максимум.
Предположим, что мы как настоящие пацаны, берем и программируем в LocalSolver систему диф. уравнений, в котором, среди прочих, есть те самые 5 параметров. Если LocalSolver может решать такие задачи, и если перепрограммирование диф. уравнений не так сложно, и если не страшно допустить ошибку при переписывании диф. уравнения, решение которого написано в 60-х годах еще на фортране и .... то тогда черный ящик не нужен.
В данной задаче "черным ящиком" можно обозвать систему решения дифуров в следующих случаях:
* Военные не сказали, что внутри (какой именно диф-ур). Что в ящике не известно - есть 5 входов и 1 выход
* Военные сказали, что за каждую ошибку (несовпадении результатов LocalSolver и "старой библиотеке") - 100 подтягиваний; 1 день задержки выполнения работ - 10км кросс в кирзовых сапогах;.
* Зависимость от параметров настолько хитрая, что знание дифура ничего не дает.
А теперь представьте себе в количестве до и больше таких дифуров и библиотек, написанных с 60-х годов, которые по параметрам выдают значение. И по всей планете (если мы единственные разумные существа в Галактике, то и по всей Галактике) сколько таких задач?
Чтобы обозвать класс задач/систем/и т.д. , в которых внутренности либо неизвестны, либо сложны, либо не важны, используется термин "черный ящик".
Кстати, вспомнил, недавно была тема, там черный ящик обозвали
"Оракулом". Вот затейники...