Об это одной интересной концепции MVT (коротко). Те кто разбирается в бигдате и сложной математике.

Автор: Андрей Шраупенмайстер

В 70-х годах прошлого века, с появлением суперкомпьютеров, началось развитие новой концепции анализа данных. Эта концепция, основанная на трудах таких математиков как Колмогоров (СССР) и Туки (США), легла в основу многовекторного объёмного мышления (MVT)

MVT - это подход к решению сложных задач, который помогает выйти за рамки привычного линейного мышления. Вместо того, чтобы рассматривать проблему с одной-двух сторон, MVT предлагает использовать "объёмные модели" данных, представляющие собой многомерное пространство, где каждый фактор - это вектор.

Вектор - это математический объект, имеющий направление и величину. В контексте MVT вектор используется для отображения влияния конкретного фактора на проблему. Например, если мы анализируем продажи компании, то цена, качество продукта, маркетинговые усилия и конкуренция – все это векторы, влияющие на конечный результат.

Объёмные модели, в свою очередь, позволяют увидеть не только каждый фактор в отдельности, но и сложные взаимосвязи между ними. Простой пример: снижение цены может положительно сказаться на продажах, но этот эффект будет нивелирован, если качество продукта останется на низком уровне. MVT помогает увидеть общую картину и принять взвешенное решение.

Как MVT воплощается на практике?

Существуют разные методы создания объёмных моделей. Среди них можно выделить, то что сейчас используется:

  • Многомерное шкалирование: позволяет визуализировать связи между факторами в многомерном пространстве.
  • Семантические сети: отображают взаимосвязи между различными концепциями и идеями, что особенно полезно при решении творческих задач.
  •  Кластерный анализ: Позволяет группировать похожие объекты (векторы) в кластеры на основе выбранных параметров. Это помогает выявить скрытые закономерности и связи между факторами.
  • Факторный анализ: Используется для сокращения размерности данных и выявления скрытых факторов, которые влияют на наблюдаемые переменные.
  • Метод главных компонент: Схож с факторным анализом, но фокусируется на выявлении главных компонент, объясняющих наибольшую долю вариации в данных.
  • Анализ соответствий: Применяется для анализа таблиц сопряженности и выявления взаимосвязей между строками и столбцами.
  • Методы машинного обучения: Такие как нейронные сети, решающие деревья, метод опорных векторов, могут использоваться для создания предиктивных моделей на основе объемных данных.
  • Визуализация данных: Различные техники визуализации, такие как 3D-графики, тепловые карты, сетевые графы, помогают наглядно представить многомерные данные и связи между ними.
  • Байесовские сети: Позволяют моделировать причинно-следственные связи между переменными и делать прогнозы с учетом неопределенности.
  • Геоинформационные системы (ГИС): Позволяют анализировать пространственные данные и связи между объектами в географическом контексте.

Как создаются векторы в рамках концепции MVT?  Так как векторы отличаются наличие направления и величины, которые отражают влияние фактора на проблему.

  1. Определение системы координат:
    • В MVT система координат строится на основе цели анализа. Каждая ось представляет собой направление, в котором может изменяться целевой показатель (например, увеличение прибыли, снижение рисков, улучшение качества).
    • Важно выбрать значимые и измеримые характеристики для каждой оси.
  2. Преобразование факторов в числовые значения:
    • Как и обсуждалось ранее, используются методы шкалирования, бинарного кодирования, извлечения признаков и т.д. для представления факторов в числовой форме.
  3. Определение величины и направления вектора для каждого фактора:
    • Величина: Определяется на основе силы влияния фактора на целевой показатель. Это может быть экспертная оценка, статистическая зависимость, коэффициент регрессии и др.
    • Направление: Определяется характером влияния фактора на целевой показатель:
      • Положительное направление: Увеличение значения фактора приводит к приближению к цели (например, рост продаж -> увеличение прибыли).
      • Отрицательное направление: Увеличение значения фактора отдаляет от цели (например, рост конкуренции -> снижение прибыли).
  4. Формирование вектора:
    • Получив числовое значение, величину и направление влияния, формируем вектор для каждого фактора в выбранной системе координат.

Преимущества MVT:

  • Комплексный подход: позволяет учесть все важные факторы и связи между ними.
  • Глубокое понимание: даёт возможность увидеть проблему с разных сторон и в разных измерениях.
  • Нестандартные решения: открывает путь к поиску новых, неочевидных решений.

Недостатки MVT:

  • Сложность: требует определённых знаний и навыков для работы с объёмными моделями.
  • Ресурсоемкость: построение объёмных моделей требует значительных вычислительных ресурсов и большого объёма данных.
  • Избыточность: для решения простых задач MVT может быть излишне сложным инструментом.

MVT – это перспективный подход, который уже нашёл применение в бизнесе, медицине, биотехнологиях и инфраструктурных проектах. С удешевлением IT-технологий и систем сбора данных можно ожидать его дальнейшего распространения в разных сферах жизни.

В качестве примера для использования в твердой НФ - применение MVT для движения небесных тел в звездой системе:

Пример:

Представим, что мы хотим исследовать устойчивость орбиты планеты в звездной системе, используя принципы MVT.

Цель: Оценить долгосрочную стабильность орбиты планеты.

Факторы (векторы):

  • Гравитация звезды: Направлен к звезде, величина пропорциональна массе звезды.
  • Гравитация других планет: Направление и величина зависят от массы и положения других планет в системе.
  • Собственная скорость планеты: Направлен по касательной к орбите, величина зависит от скорости движения.
  • Эксцентриситет орбиты: Направлен от центра эллипса орбиты к ее фокусу (где находится звезда), величина зависит от степени вытянутости эллипса.
  • Внешние воздействия: Например, гравитация пролетающих звезд или наличие темной материи (направление и величина зависят от конкретной ситуации).

Система координат:

  • Ось X: Среднее расстояние от планеты до звезды.
  • Ось Y: Эксцентриситет орбиты.
  • Ось Z: Наклон орбиты к плоскости системы.

Анализ:

  1. Моделирование: Создаем динамическую модель системы, где каждый фактор представлен вектором с определенным направлением и величиной.
  2. Визуализация: Наблюдаем за изменением орбиты планеты во времени, отображая векторы сил, действующих на нее.
  3. Анализ сценариев: Изменяем величину и направление векторов (например, увеличиваем массу соседней планеты, симулируем пролет звезды), чтобы оценить влияние на устойчивость орбиты.

Возможные результаты:

  • Стабильная орбита: Векторы сил уравновешивают друг друга, орбита планеты остается практически неизменной на протяжении длительного времени.
  • Неустойчивая орбита: Векторы сил вызывают сильные колебания орбиты, планета может быть выброшена из системы или столкнуться с другим объектом.
  • Резонансные явления: Векторы сил могут войти в резонанс, приводя к периодическим изменениям орбиты.

Преимущества MVT:

  • Наглядность: Позволяет увидеть, как гравитационные силы "тянут" планету в разные стороны, влияя на ее орбиту.
  • Комплексный подход: Учитывает влияние множества факторов, которые сложно учесть при анализе "в лоб".
  • Прогнозирование: Позволяет моделировать различные сценарии и оценивать долгосрочную стабильность орбит.

Важно отметить: Это упрощенный пример. Реальные модели движения небесных тел гораздо сложнее и требуют учета множества факторов, а также использования мощных вычислительных ресурсов.

Пример кода для суперкомпьютера 70х годов

PROGRAM ORBITALSTABILITY
IMPLICIT NONE
REAL G, MASS_STAR, MASS_PLANET, MASS_OTHER_PLANETS(10)
REAL POSITION_PLANET(3), POSITION_OTHER_PLANETS(3, 10)
REAL VELOCITY_PLANET(3)
REAL ECCENTRICITY, INCLINATION
REAL EXTERNAL_FORCES(3)
REAL TOTAL_FORCE(3)
REAL DT, T_MAX, T
INTEGER I, J, N_OTHER_PLANETS

! Инициализация параметров
G = 6.67430E-11  ! Гравитационная постоянная (м^3 кг^-1 с^-2)
MASS_STAR = 1.989E30  ! Масса звезды (кг)
MASS_PLANET = 5.972E24  ! Масса планеты (кг)
N_OTHER_PLANETS = 2  ! Количество других планет
MASS_OTHER_PLANETS(1) = 3.301E23  ! Массы других планет (кг)
MASS_OTHER_PLANETS(2) = 4.867E24  ! Массы других планет (кг)
POSITION_PLANET(1) = 1.496E11  ! Начальное положение планеты (м)
POSITION_PLANET(2) = 0.0
POSITION_PLANET(3) = 0.0
POSITION_OTHER_PLANETS(1, 1) = 5.791E10  ! Начальное положение первой другой планеты (м)
POSITION_OTHER_PLANETS(2, 1) = 0.0
POSITION_OTHER_PLANETS(3, 1) = 0.0
POSITION_OTHER_PLANETS(1, 2) = 1.082E11  ! Начальное положение второй другой планеты (м)
POSITION_OTHER_PLANETS(2, 2) = 0.0
POSITION_OTHER_PLANETS(3, 2) = 0.0
VELOCITY_PLANET(1) = 0.0  ! Начальная скорость планеты (м/с)
VELOCITY_PLANET(2) = 2.978E4
VELOCITY_PLANET(3) = 0.0
ECCENTRICITY = 0.0167  ! Эксцентриситет орбиты
INCLINATION = 0.0  ! Наклон орбиты (градусы)
EXTERNAL_FORCES(1) = 0.0  ! Внешние силы (Н)
EXTERNAL_FORCES(2) = 0.0
EXTERNAL_FORCES(3) = 0.0
DT = 3600.0  ! Шаг времени (с)
T_MAX = 3.154E7  ! Максимальное время моделирования (с)
T = 0.0

! Основной цикл моделирования
DO WHILE (T .LT. T_MAX)
TOTAL_FORCE(1) = 0.0
TOTAL_FORCE(2) = 0.0
TOTAL_FORCE(3) = 0.0

! Гравитация звезды
CALL GRAVITATIONAL_FORCE(MASS_STAR, MASS_PLANET, POSITION_PLANET, TOTAL_FORCE)

! Гравитация других планет
DO I = 1, N_OTHER_PLANETS
CALL GRAVITATIONAL_FORCE(MASS_OTHER_PLANETS(I), MASS_PLANET, POSITION_PLANET - POSITION_OTHER_PLANETS(:, I), TOTAL_FORCE)
END DO

! Внешние воздействия
TOTAL_FORCE = TOTAL_FORCE + EXTERNAL_FORCES

! Обновление положения и скорости планеты
POSITION_PLANET = POSITION_PLANET + VELOCITY_PLANET * DT
VELOCITY_PLANET = VELOCITY_PLANET + TOTAL_FORCE / MASS_PLANET * DT

! Обновление времени
T = T + DT
END DO

STOP
END

SUBROUTINE GRAVITATIONAL_FORCE(MASS1, MASS2, DISTANCE_VECTOR, FORCE)
IMPLICIT NONE
REAL MASS1, MASS2, DISTANCE_VECTOR(3), FORCE(3)
REAL DISTANCE, FORCE_MAGNITUDE, G

G = 6.67430E-11  ! Гравитационная постоянная (м^3 кг^-1 с^-2)
DISTANCE = SQRT(DISTANCE_VECTOR(1)**2 + DISTANCE_VECTOR(2)**2 + DISTANCE_VECTOR(3)**2)
FORCE_MAGNITUDE = G * MASS1 * MASS2 / DISTANCE**2
FORCE(1) = FORCE_MAGNITUDE * DISTANCE_VECTOR(1) / DISTANCE
FORCE(2) = FORCE_MAGNITUDE * DISTANCE_VECTOR(2) / DISTANCE
FORCE(3) = FORCE_MAGNITUDE * DISTANCE_VECTOR(3) / DISTANCE
RETURN
END

Пример кода для современных суперкомпьютеров


use Math;

// Константы
const G = 6.67430e-11;  // Гравитационная постоянная (м^3 кг^-1 с^-2)

// Параметры системы
const mass_star = 1.989e30;  // Масса звезды (кг)
const mass_planet = 5.972e24;  // Масса планеты (кг)
const n_other_planets = 2;  // Количество других планет
const mass_other_planets: [1..n_other_planets] real = [3.301e23, 4.867e24];  // Массы других планет (кг)

var position_planet: 3*real = (1.496e11, 0.0, 0.0);  // Начальное положение планеты (м)
var position_other_planets: [1..n_other_planets] 3*real = [(5.791e10, 0.0, 0.0), (1.082e11, 0.0, 0.0)];  // Начальное положение других планет (м)
var velocity_planet: 3*real = (0.0, 2.978e4, 0.0);  // Начальная скорость планеты (м/с)

const eccentricity = 0.0167;  // Эксцентриситет орбиты
const inclination = 0.0;  // Наклон орбиты (градусы)
var external_forces: 3*real = (0.0, 0.0, 0.0);  // Внешние силы (Н)

const dt = 3600.0;  // Шаг времени (с)
const t_max = 3.154e7;  // Максимальное время моделирования (с)

var t = 0.0;

// Основной цикл моделирования
while t < t_max {
var total_force: 3*real = (0.0, 0.0, 0.0);

// Гравитация звезды
total_force += gravitational_force(mass_star, mass_planet, position_planet);

// Гравитация других планет
for i in 1..n_other_planets {
total_force += gravitational_force(mass_other_planets[i], mass_planet, position_planet - position_other_planets[i]);
}

// Внешние воздействия
total_force += external_forces;

// Обновление положения и скорости планеты
position_planet += velocity_planet * dt;
velocity_planet += total_force / mass_planet * dt;

// Обновление времени
t += dt;
}

// Функция для расчета гравитационной силы
proc gravitational_force(mass1: real, mass2: real, distance_vector: 3*real): 3*real {
const distance = sqrt(dot(distance_vector, distance_vector));
const force_magnitude = G * mass1 * mass2 / distance**2;
return force_magnitude * distance_vector / distance;
}

// Вспомогательная функция для скалярного произведения
proc dot(a: 3*real, b: 3*real): real {
return a(1) * b(1) + a(2) * b(2) + a(3) * b(3);
}

P.S. Если коротко говорить, то факторы влияющие на объект исследования конвертируется в векторы и полученный комплекс рассматривается в определённых осях (направлениях, 3D-проекциях и т.п.).

+69
135

0 комментариев, по

14K 115 895
Наверх Вниз