|
15 / 4 / 1
Регистрация: 11.11.2014
Сообщений: 24
|
|||||||||||
Перебор всех возможных вариантов, оптимизация макроса09.07.2015, 10:37. Показов 4547. Ответов 18
Метки нет (Все метки)
Всем доброго времени суток!
Для калибровки скоринговой карты необходимо сделать подстановку всех возможных вариантов ответов (6 для каждого question) на вопросы (17 штук) путем перебора. Это позволит получить распределение вероятностей для скоринговой карты. Максимальное число различных вариантов ответов может быть 6^17 степени, что равно почти 17 трильйонам операций перебора. Написал цикл, все работает, но за ночь ноут успел сделать перебор только 100 млн вариантов. Отключить автоматическое вычисление параметров не могу, так как каждому вопросу ВПР-м подтягиваются вероятности и результат пересчитывается. Как можно ускорить цикл, чтобы получить требуемый результат? Заранее спасибо за ответ.
0
|
|||||||||||
| 09.07.2015, 10:37 | |
|
Ответы с готовыми решениями:
18
Перебор всех возможных вариантов фильтров Перебор возможных вариантов сочетания данных в excel Перебор всех возможных вариантов |
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
| 09.07.2015, 11:07 | |
|
vibo90, путем оптимизации кода можно получить ускорение в 100 раз, но это не спасет ситуацию: если продолжать работу с существующим кодом, потребуется 169266 ночей, а если с оптимизированным - 1700 ночей.
Приложите книгу, где ВПР-м подтягиваются вероятности, может, кто-то что-то предложит.
1
|
|
|
15 / 4 / 1
Регистрация: 11.11.2014
Сообщений: 24
|
|
| 10.07.2015, 11:53 [ТС] | |
|
Прикрепляю для примера расчетный файл.
0
|
|
|
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,671
|
||||||
| 10.07.2015, 14:02 | ||||||
|
наверное так покороче будет
(про скорость не знаю)
1
|
||||||
|
Модератор
|
||
| 10.07.2015, 15:16 | ||
но как зависят ответы на 6 вопрос от ответов на 15-й вариантов на вопрос 6^6=46656 или около 2 мин вопросов 17 значит 34 минуты
0
|
||
|
15 / 4 / 1
Регистрация: 11.11.2014
Сообщений: 24
|
||||||||
| 10.07.2015, 16:19 [ТС] | ||||||||
Если мы к примеру для первых 10 вопросов дадим ответ а, то на странице Computation в столбцах L и M в место значения 1 будет проставлены соответсвующие вероятности, с которыми варианты ответа влияют на вероятность дефолта. Далее считается произведение по столбцу L, разделяется на произведение по столбцу M и умножается на константу. В таком случае возможных комбинаций ответов, а соответственно различных PD (cells(29,8)) может быть 6^17. 6 вариантов для каждого вопроса имеют разные рассчетные значения. Для корректного получения вероятности пользователю нужно дать ответы как минимум на 10 вопросов. Если условие не выполняется результат не рассчитывается. Спасибо.
0
|
||||||||
|
Супер-модератор
|
||||||
| 10.07.2015, 16:36 | ||||||
|
Даже не вникая в суть, можно отметить, что код:
1
|
||||||
|
15 / 4 / 1
Регистрация: 11.11.2014
Сообщений: 24
|
|
| 10.07.2015, 17:09 [ТС] | |
|
Catstail, но как использовать массив, если конечный результат расчета - одно число, которое размещено в одной ячейке?
Использование немножко модифицированного скрипта Казанского (с использованием цикла) замедлило выполнение запроса. Мне кажется, для процедуры tmp_a, использование цикла только усугубляет процесс выполнения. Функция Choose обрабатывает каждый вариант в списке, несмотря на то, что возвращает всего один вариант.
0
|
|
| 10.07.2015, 18:19 | |
|
Какова цель перебора? нужно высчитать вероятность для всех 6^17 возможных вариантов либо какая то другая цель?
Если решается задача оптимизации или нахождения наиболее вероятного устойчивого значения, не приводящего к дефолту, то может решать задачу линейной оптимизации (симплекс методом) инструментарием "Поиск решения" (Solver), встроенного в Excel
0
|
|
|
15 / 4 / 1
Регистрация: 11.11.2014
Сообщений: 24
|
||||||
| 10.07.2015, 23:13 [ТС] | ||||||
|
Основная цель - получить график или гистограмму распределения всех возможных вариантов вероятности дефолта от 0 до 1 (PD). Как вариант пробую Random-ом сгенерить несколько десятков тысяч значений от 0 до 6^17. Далее полученные значения перевести в шестиричную систему счисления (так как вариантов всего 6) и посчитать для каждого переведенного кода, преобразованого в конкретный набор вариантов ответа значение PD.
Добавлено через 4 часа 37 минут Хочу решить вопрос используя случайные числа, но возникает ошибка с переводом больших чисел в двоичную или какую либо другую систему счисления. Для конвертации использовал функцию конверт (Alex77755). Проверка результата в окне immediate случайного числа дает ошибку overflow. Проблема не возникают с числами, длина строки которых, меньше 10 символов. ? конверт(12345678910,2) выбивает ошибка overflow Как можно устранить ограничение? Спасибо.
0
|
||||||
|
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,671
|
|
| 11.07.2015, 05:05 | |
|
может я совсем тупой
но зачем столько вызовов функции? ведь фактически код макроса ни как не связан с функцией макрос смотрит на одни ячейки - функция на другие согласенCatstail - обращение к ячейке (тем более когда обновление экрана включено) дорогое удовольствие по части производительности - массив лучше Добавлено через 21 минуту разобрался Добавлено через 15 секунд разобрался точно тупой
1
|
|
|
15 / 4 / 1
Регистрация: 11.11.2014
Сообщений: 24
|
|
| 12.07.2015, 00:02 [ТС] | |
|
Всем спасибо! Все получилось. Генерирование по отдельности 17 чисел от 1 до 6 как предложил m-ch это пожалуй лучший способ решения моей задачи. Получение выборки в 10 тыс строк и результатов занимает меньше минуты.
0
|
|
|
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 3
|
|
| 10.10.2015, 18:42 | |
|
Здраствуйте помогите пожалуйста. Я тут у Вас нашел такой фаил, как перебор всех возможных вариантов слов но там 10 столбцов и 20 строк. Помогите переделать что бы было 15 столбцов и 3 строки
0
|
|
|
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 3
|
|
| 10.10.2015, 20:52 | |
|
Огромное спасибо. А есть вариант как ускорить вычисления если данные во всех ячейках
0
|
|
| 11.10.2015, 10:18 | ||
|
Учтите, что 3^15 это 14,3 млн. комбинаций, на лист (в один столбец) они не поместятся, лучше сразу сохранять в файл
1
|
||
|
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 3
|
|
| 11.10.2015, 10:48 | |
|
А можно сделать что бы выгружал в microsoft access 2010
0
|
|
| 11.10.2015, 10:48 | |
|
Помогаю со студенческими работами здесь
19
Перебор всех возможных вариантов (рекурсивно) Перебор всех возможных вариантов в масиве Перебор всех возможных вариантов буквосочетаний Перебор всех возможных вариантов массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|