2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 16:43 


16/08/05
1153
Этот термин встречаю повсеместно, но что он означает пока не понимаю. Он упоминается и у LocalSolver, и у MiniZinc, и у других брендов периодически всплывает.

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 17:29 
Заслуженный участник


06/07/11
5627
кран.набрать.грамота
Обычно черным ящиком называется нечто, чье внутреннее устройство неизвестно. И обычно этот термин в тестировании применяется (например: Тестирование по стратегии чёрного ящика). Это может быть программа, модуль, библиотека и т. п.

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 17:35 


16/08/05
1153
Если кто-то пишет программу (модуль, библиотеку) и называет её чёрным ящиком, то как её содержимое автору может быть неизвестно? Он же сам её творец. Всё равно непонятно.

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 17:47 
Заслуженный участник
Аватара пользователя


16/07/14
9143
Цюрих
"Черный ящик" - способ использования этой программы. Т.е. автор говорит "на вход давайте $X$, с выхода забирайте $Y$, а что внутри - вас не касается".

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 17:49 
Заслуженный участник


09/05/12
25179
Не обязательно именно неизвестно - может быть и просто неважно. Если Вы написали модуль так, что у него есть четко определенный набор входных данных, при задании которых получается определенный же результат, то это куда полезнее и удобнее, чем ситуация, когда на поведение модуля влияет куча дополнительных настроек, находящихся неизвестно где.

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 17:59 


16/08/05
1153
mihaild в сообщении #1259665 писал(а):
"Черный ящик" - способ использования этой программы. Т.е. автор говорит "на вход давайте $X$, с выхода забирайте $Y$, а что внутри - вас не касается".

Но так действует любая программа без исходного кода, как её ни называй. Даже реверсинг, когда удаётся, лишь частично раскрывает внутренние механизмы программы.

Может BlackBox - это ещё одно название случайного поиска?

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 18:17 
Заслуженный участник
Аватара пользователя


16/07/14
9143
Цюрих
dmd в сообщении #1259670 писал(а):
Но так действует любая программа без исходного кода, как её ни называй.
Нет, иногда объявляются какие-то дополнительные особенности. А иногда не заявляются, но всё равно вылезают наружу.

Вообще, blackbox - термин неформальный, означающий что мы что-то рассматриваем как функцию, не интересуясь внутренним устройством. И ничего больше.
dmd в сообщении #1259670 писал(а):
Может BlackBox - это ещё одно название случайного поиска?
Нет, это разные категории.

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 18:25 
Заслуженный участник


27/04/09
28128
dmd в сообщении #1259647 писал(а):
Он упоминается и у LocalSolver, и у MiniZinc, и у других брендов периодически всплывает.
А можно ссылку на что-то с конкретными вхождениями. У меня по вашим словам есть подозрения, что это название какого-то объекта в какой-то библиотеке, и если так, надо — очевидно! — смотреть документацию по ней.

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 18:56 


16/08/05
1153
https://www.localsolver.com/documentati ... ckbox.html

у MiniZinc не нашёл упоминаний, видимо я спутал с Xpress (где про ограничения "user functions (black box optimization) is restricted to 1"):
http://subscribe.fico.com/xpress-optimi ... ty-license

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 19:14 
Аватара пользователя


23/09/15
167
dmd
Ну там же написано, это такой метод оптимизации, который ничего не знает о оптимизируемой функции, а может только вычислять её значение в нужных точках.

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 19:21 


16/08/05
1153
это я вижу. Просто не пойму, в чём смысл метода, в чём отличие от случайного поиска.

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 19:24 
Заслуженный участник


27/04/09
28128
В чём смысл, там и не написано. Написано только, что ему достаточно предоставлять значения самой функции в разных точках, никакие производные её и другие данные не требуются, т. е. метод ничего особенного не предполагает о функции. О реализации может быть написано где-то ещё в другом разделе, а может и не. Если бы это был проект с открытым исходным кодом, можно было бы глянуть код.

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 19:30 
Аватара пользователя


31/10/08
1244
dmd в сообщении #1259663 писал(а):
Если кто-то пишет программу (модуль, библиотеку) и называет её чёрным ящиком, то как её содержимое автору может быть неизвестно? Он же сам её творец. Всё равно непонятно.

Есть отдел разработки, а есть отдел тестирования. Пишут одни тестируют другие.
Так же автор может сам отложить программу на срок в несколько месяцев. Если вы не будете к ней возвращаться, то через год вы уже сами забудете о её внутреннем устройстве.

dmd в сообщении #1259670 писал(а):
mihaild в сообщении #1259665

писал(а):
"Черный ящик" - способ использования этой программы. Т.е. автор говорит "на вход давайте $X$, с выхода забирайте $Y$, а что внутри - вас не касается".
Но так действует любая программа без исходного кода, как её ни называй. Даже реверсинг, когда удаётся, лишь частично раскрывает внутренние механизмы программы.

Может BlackBox - это ещё одно название случайного поиска?

Частично раскрытое это уже серый ящик.
Белый ящик это очень просто. Метод тестирование по белому ящику смотрим код и пишем тесты что-бы они зашли во все ветки условий.
Чёрный ящик. Когда мы по названию пробуем отгадать внутреннее устройство и соответственно пишем такие тесты.
К тестированию программы по методу чёрного ящика, так же можно отнести поведенческое тестирование. Отдельно разрабатывается поведенческая модель пользователя и после эта модель используется для тестирования.

Тривиальной моделей может служить "по нажимать все кнопки программы" и результатом должно быть отсутствие зависания или выскакивания окон с ошибками.

dmd в сообщении #1259647 писал(а):
Он упоминается и у LocalSolver, и у MiniZinc, и у других брендов периодически всплывает.

dmd в сообщении #1259670 писал(а):
Может BlackBox - это ещё одно название случайного поиска?

Думаю скорее нет, чем да. Просто сейчас популярен ИИ, все хотят что-бы за вас всё сделала умная программа. Вот изобретатели и пользуются доверчивостью пользователей, придумывают непонятные слова пробуют заманить необразованный народ на свою сторону. А наделе эти алгоритмы не работают без специалиста который выберет правильный алгоритм и правильно подготовит данные.

Применительно к методам оптимизации таким как LocalSolver модель чёрного ящика подразумевает, что у нас есть функция, но мы не рассматриваем её внутренне устройство. Проще говоря отбрасываем все её свойства, которые были. К примеру у функции могут быть неустранимые разрывы. Что не даёт взять производную аналитически, но алгоритм оптимизации может самостоятельно численно найти градиенты. Разумеется при таком подходе ничего хорошего быть не может. Или неизвестных масштабных коэффициентов нет никаких гарантий, что алгоритм будет устойчивым. Вместо глобального минимума получить локальный.

Но если у нас сырые данные, то тут неважно, что мы применим. Так как функция всегда неизвестна. А вот если метод уже умеет работать с чёрным ящиком, значит мы можем его применять без адаптации и доработок. Так что вполне полезное свойство.

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение27.10.2017, 20:48 


08/03/11
273
логический прувер SPASS+T
http://people.mpi-inf.mpg.de/%7Euwe/software/#TSPASS
как-то содержит арифметику

 Профиль  
                  
 
 Re: Что такое BlackBox в мат.программировании?
Сообщение28.10.2017, 00:41 


17/10/08

1313
Допустим, нужно оптимизировать форму сопла двигателя.
Форма, допустим, зависит от 5 параметров.
Чтобы посчитать тягу двигателя с указанными конкретными параметрами, нужно решить систему диф. уравнений.

Возникает вопрос: "И что?"

Говорите этому вашем LocalSolver - черный ящик с 5-ю параметрами и одним выходом . Нужно подобрать такие 5 параметров (форму сопла), чтобы получить максимальный выход (мощность двигателя).

LocalSolver спрашивает у черного ящика, а сколько будет при таких-то параметрах? А, ящик? А вот при таких то параметрах сколько будет? И т.д. и ищет, ищет, ищет максимум.

Предположим, что мы как настоящие пацаны, берем и программируем в LocalSolver систему диф. уравнений, в котором, среди прочих, есть те самые 5 параметров. Если LocalSolver может решать такие задачи, и если перепрограммирование диф. уравнений не так сложно, и если не страшно допустить ошибку при переписывании диф. уравнения, решение которого написано в 60-х годах еще на фортране и .... то тогда черный ящик не нужен.

В данной задаче "черным ящиком" можно обозвать систему решения дифуров в следующих случаях:
* Военные не сказали, что внутри (какой именно диф-ур). Что в ящике не известно - есть 5 входов и 1 выход
* Военные сказали, что за каждую ошибку (несовпадении результатов LocalSolver и "старой библиотеке") - 100 подтягиваний; 1 день задержки выполнения работ - 10км кросс в кирзовых сапогах;.
* Зависимость от параметров настолько хитрая, что знание дифура ничего не дает.

А теперь представьте себе в количестве до и больше таких дифуров и библиотек, написанных с 60-х годов, которые по параметрам выдают значение. И по всей планете (если мы единственные разумные существа в Галактике, то и по всей Галактике) сколько таких задач?

Чтобы обозвать класс задач/систем/и т.д. , в которых внутренности либо неизвестны, либо сложны, либо не важны, используется термин "черный ящик".

Кстати, вспомнил, недавно была тема, там черный ящик обозвали "Оракулом". Вот затейники...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group