Проблема оптимизации:
Поэтому я пытаюсь оптимизировать набор данных массива.Цель состоит в том, чтобы как можно меньше модифицировать набор данных для соответствия требуемым условиям.
Чтобы определить это: │ [исходный массив] - [конечный массив] │ = x Где x Iхотите быть минимально возможным значением
Условия:
Абсолютная разница в смежных значениях в массиве должна быть ≤1
• │(n-1) -n│≤1
• │n- (n + 1 │≤1
• • Сумма данных в исходном массиве должна быть равна суммеданные в окончательном массиве.
Пример, приведенный ниже, лучше всего описывает проблему. См. пример здесь
Массив ниже, где я сейчас нахожусь, я просто ищунесколько советов о том, как лучше использовать процесс в будущем. Я не уверен, что алгоритм Greedy - это лучший подход или есть что-то, что будет работать лучше.
(array([1, 0, 1, 0, 1, 1, 0, 0, 3, 0, 0, 3, 0, 0, 2, 1, 1, 2, 1, 1, 3, 1,
0, 5, 0, 2, 4, 0, 3, 2, 1, 4, 2, 2, 3, 1, 1, 4, 4, 0, 4, 2, 1, 5,
0, 4, 4, 0, 5, 2, 1, 4, 2, 3, 4, 3, 1, 4, 2, 2, 6, 1, 3, 5, 0, 5,
3, 1, 5, 2, 4, 3, 3, 2, 4, 5, 0, 6, 3, 1, 7, 1, 5, 3, 2, 5, 3, 3,
4, 5, 2, 3, 6, 1, 6, 4, 1, 7, 2, 5, 3, 2, 7, 3, 4, 5, 2, 4, 4, 6,
2, 6, 1, 2, 6, 3, 5, 1, 3, 4, 2, 4, 2, 4, 4, 3, 3, 2, 5, 2, 2, 6,
1, 5, 2, 2, 5, 1, 5, 3, 2, 3, 4, 2, 3, 4, 3, 4, 3, 1, 6, 0, 5, 5,
1, 4, 4, 2, 3, 3, 3, 4, 3, 2, 6, 3, 2, 5, 2, 2, 6, 1, 3, 5, 3, 3,
6, 1, 4, 3, 2, 7, 3, 1, 6, 2, 3, 6, 2, 3, 4, 5, 2, 5, 2, 5, 3, 3,
5, 4, 1, 6, 1, 2, 6, 2, 5, 5, 3, 4, 4, 2, 5, 3, 3, 5, 3, 3, 6, 2,
2, 7, 1, 5, 4, 4, 5, 2, 4, 4, 5, 1, 7, 4, 2, 5, 4, 1, 7, 4, 4, 4,
2, 6, 3, 2, 7, 4, 3, 6, 3, 3, 6, 4, 3, 6, 3, 2, 7, 2, 5, 6, 2, 4,
3, 4, 5, 4, 5, 2, 6, 2, 4, 3, 4, 5, 4, 3, 3, 5, 2, 1, 6, 2, 3, 4,
1, 3, 3, 3, 2, 2, 3, 1, 2, 4, 1, 0, 5, 2, 1, 2, 2, 1, 2, 2, 1, 2,
2, 2, 1, 2, 2, 0, 1, 1, 3, 0, 1, 2, 0, 0, 3, 1, 0, 0, 2, 0, 0, 2,
2, 0, 0, 2, 0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 1, 0, 1, 2, 0, 0, 0, 1,
0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1]
Я смогдобиться этой проблемы в Excel, однако я сейчас пытаюсь оптимизировать это решение в Python с помощьюлучше подход
# Create arrays for optimisation process
# Setup of bin edges
bins = np.arange(Min_Delay, Max_Delay + Bin_size, Bin_size)
# Create array of histogram results
hist = np.histogram(df, bins=bins)
print(hist)