File size: 1,880 Bytes
b02cacc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import pandas as pd

# Definir los flujos de efectivo de cada proyecto
data = {
    'Proyecto 1': [100, 110, 120, 130, 140],
    'Proyecto 2': [100, 100, 100, 100, 200],
    'Proyecto 3': [110, 120, 110, 120, 110],
    'Proyecto 4': [150, 140, 130, 120, 110]
}

# Crear DataFrame con los flujos de efectivo
df = pd.DataFrame(data)

# Calcular el flujo de efectivo neto (FEN) para cada proyecto
def calcular_fen(flujos, tasa_descuento):
    fen = 0
    for i, flujo in enumerate(flujos):
        fen += flujo / ((1 + tasa_descuento) ** (i + 1))
    return fen

tasas_descuento = [0.1, 0.1, 0.1, 0.1, 0.1]  # Suponiendo una tasa de descuento del 10% para todos los proyectos

df['FEN'] = df.apply(lambda row: calcular_fen(row.values, tasas_descuento), axis=1)

# Calcular la inversi贸n inicial para cada proyecto
inversiones_iniciales = {
    'Proyecto 1': 0,
    'Proyecto 2': 0,
    'Proyecto 3': 0,
    'Proyecto 4': 0
}

# Elegir los proyectos 贸ptimos para diferentes budgets
def elegir_proyectos_optimos(budget):
    proyectos_optimos = []
    df_temp = df.copy()
    df_temp['Ranking'] = df_temp['FEN'] / df_temp.sum(axis=1)
    df_temp = df_temp.sort_values(by='Ranking', ascending=False)
    acumulado = 0
    for index, row in df_temp.iterrows():
        if acumulado + row[index] <= budget:
            proyectos_optimos.append(index)
            acumulado += row[index]
    return proyectos_optimos

# a) Budget = 800
budget_a = 800
proyectos_a = elegir_proyectos_optimos(budget_a)
print(f"Proyectos 贸ptimos para un budget de {budget_a}: {proyectos_a}")

# b) Budget = 1200
budget_b = 1200
proyectos_b = elegir_proyectos_optimos(budget_b)
print(f"Proyectos 贸ptimos para un budget de {budget_b}: {proyectos_b}")

# c) Budget = 2400
budget_c = 2400
proyectos_c = elegir_proyectos_optimos(budget_c)
print(f"Proyectos 贸ptimos para un budget de {budget_c}: {proyectos_c}")