Algoritmia - ALGORITMO DE PARENTIZACIÓN

 
Vista:

ALGORITMO DE PARENTIZACIÓN

Publicado por Leo (1 intervención) el 26/05/2001 08:51:51
Saludos a todos.
Necesito urgente ALGORITMO DE PARENTIZACIÓN, para calcular el menor costo de las matrices y debo hacerlo en lenguaje C o C++.
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Parentización de matrices en C++

Publicado por Alejandro (307 intervenciones) el 27/02/2024 21:07:05
Leo, para resolver el problema de la parentización de matrices y calcular el menor costo, puedes utilizar el algoritmo de multiplicación de matrices con programación dinámica. Aquí te dejo un ejemplo simple en C++:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <climits>
using namespace std;
 
// Función para calcular el costo mínimo de parentización de matrices
int costoMinimoParentizacion(int dimensiones[], int n) {
    int dp[n][n];
 
    // Inicializar la tabla de memoización
    for (int i = 1; i < n; i++) {
        dp[i][i] = 0;
    }
 
    // Llenar la tabla de memoización de abajo hacia arriba
    for (int longitud = 2; longitud < n; longitud++) {
        for (int i = 1; i < n - longitud + 1; i++) {
            int j = i + longitud - 1;
            dp[i][j] = INT_MAX;
 
            for (int k = i; k <= j - 1; k++) {
                int costo = dp[i][k] + dp[k + 1][j] + dimensiones[i - 1] * dimensiones[k] * dimensiones[j];
                if (costo < dp[i][j]) {
                    dp[i][j] = costo;
                }
            }
        }
    }
 
    return dp[1][n - 1];
}
 
int main() {
    // Ejemplo de uso
    int dimensiones[] = {30, 35, 15, 5, 10, 20, 25};
    int n = sizeof(dimensiones) / sizeof(dimensiones[0]);
 
    int costoMinimo = costoMinimoParentizacion(dimensiones, n);
 
    cout << "El costo mínimo de parentización de matrices es: " << costoMinimo << endl;
 
    return 0;
}

Este programa utiliza programación dinámica para calcular el costo mínimo de parentización de matrices. Asegúrate de ajustar las dimensiones de las matrices según tus necesidades. Este código puede ser una base para adaptarlo a tu implementación específica.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar