Требовать формулы - если возможно - PullRequest
0 голосов
/ 07 июня 2011

Я пишу системный инструмент, написанный на Java, который, по сути, запускает задачу в t0 и завершается за N секунд.Поскольку я ожидаю, что этот инструмент будет работать на разных машинах, время выполнения задачи будет различным.

Итак, перед запуском этого инструмента необходимо выполнить одноразовую калибровку, чтобы он мог точно предсказать, как долговыполнение заданий займет («точное», так как через 1 - 3 секунды это нормально).

В основном у меня есть измерения для x и y, которые завершаются за N секунд ...

x                       y                           N Seconds
------------------------------------------------------------
1.0                     15                          5.54
1.5                     15                          3.64
2.0                     15                          2.73

1.0                     35                          12.7
1.5                     35                          8.44
2.0                     35                          6.23

1.0                     55                          19.9
1.5                     55                          13.8
2.0                     55                          10.3

Учитывая приведенные выше измерения, могу ли я вывести волшебную формулу, которая гласит: «Если задача должна быть выполнена за 15 секунд, то х должен быть« бла », а у -« бла ».

Очевидно, математика нене моя сильная сторона, возможна ли формула?

Спасибо!

Ответы [ 3 ]

6 голосов
/ 07 июня 2011

Из-за того, что вы играете с данными в вопросе, похоже, что эта функция является довольно хорошим приближением.

z = y / (x * 2.67)

Например, для х = 1,5 и у = 15 он дает 3,74, а для х = 1,0 и у = 55 - 20,6.

У вас есть два свободных параметра, поэтому, если вы хотите сказать, z = 15, то вы можете просто заменить и получить оценку для y или x. Не зная одного, ты не сможешь узнать другого.

15 = y / (x * 2.67)
15 / (x * 2.67) = y
y = 5.83 / x
x = 5.83 / y
0 голосов
/ 07 июня 2011

если задача должна быть выполнена в 15 секунд, то х должен быть "бла" и у это "бла"

Возможно, могут появиться решения для вышеперечисленного. Но было бы разумно найти x, учитывая y и N.

  1. В основном вы хотите найти корреляцию между x, y и N. Существует много алгоритмов для определения линейной корреляции, например Линейная регрессия .

  2. Если вы не работаете на принципиально разных машинах, например, одна машина является клиентом WInXP, а другая - Linux Box, я не думаю, что вам нужно останавливаться на этом глубоко, потому что другие мелочи могут преодолеть время (например, другие процессы, запущенные в системе)

0 голосов
/ 07 июня 2011

Если вам нужны только значения в таблице, просто используйте эту таблицу. Если вам нужно больше, вы должны использовать некоторый метод интерполяции функций, чтобы получить формулу, например, полиномиальная интерполяция

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...