def update_conteudo_csv (cartoletas, conteudo_csv, dict_probabilidades_vitoria_elenco, dict_aproveitamento_clubes): alg = "Selecao da Rodada" formacoes = ["4-4-2", "4-3-3", "4-5-1", "3-5-2", "3-4-3", "5-3-2", "5-4-1"] time_convocado_selecao = algoritmo.get_melhor_formacao_algoritmo(alg, cartoletas, conteudo_csv, formacoes, info, None) custo_selecao = mat_cartola.get_valor_indice_acumulado_time(time_convocado_selecao, info, "preco") print "Custo da Selecao da Rodada usando Medias do Cartola FC: {0}".format(custo_selecao) for i in range(1, len(conteudo_csv)): jogador = conteudo_csv[i] id_time = jogador[info["clube_id"]] media_jogador = jogador[info["media"]] jogadores_time = util.obtem_jogadores_por_time (conteudo_csv, id_time, info) time_atual = [] time_atual.append(jogadores_time) import pdb probabilidade_vitoria_elenco = dict_probabilidades_vitoria_elenco[id_time] aproveitamento_time = mat_cartola.get_porcentual_aproveitamento(dict_aproveitamento_clubes, id_time) variacao_preco = jogador[info["variacao_preco"]] preco = jogador[info["preco"]] percentual_participacao = info["percentual_participacao"] # rodada 14: 00.00 C$: 113.74 importancia_cartoleta = ((cartoletas - custo_selecao) / custo_selecao) * (variacao_preco / preco) jogador[info["media"]] = media_jogador * percentual_participacao * probabilidade_vitoria_elenco * aproveitamento_time jogador[info["media"]] = jogador[info["media"]] + importancia_cartoleta * jogador[info["media"]] # rodada 13: 45.85 C$: ~110 # importancia_cartoleta = ((cartoletas - custo_selecao) / custo_selecao) * (variacao_preco / preco) # jogador[info["media"]] = media_jogador * percentual_participacao * probabilidade_vitoria_elenco * aproveitamento_time # jogador[info["media"]] = jogador[info["media"]] + importancia_cartoleta * jogador[info["media"]] # recorde do programa - rodada 12: 53.79 C$: ~102. #jogador[info["media"]] = media_jogador * probabilidade_vitoria_elenco - variacao_preco conteudo_csv[i] = jogador return conteudo_csv
logging.debug (dict_aproveitamento_clubes) dict_probabilidades_vitoria_elenco = mat_cartola.get_probabilidade_vitoria_elencos(json_clubes, conteudo_csv, info) conteudo_csv = update_conteudo_csv(cartoletas, conteudo_csv, dict_probabilidades_vitoria_elenco, dict_aproveitamento_clubes) algoritmos = ["Balanceado", "Balanceado V2", "Aleatorio", "Estrela Solitaria", "Genetico"] # algoritmos = ["Balanceado"] # algoritmos = ["Balanceado V2"] # algoritmos = ["Aleatorio"] # algoritmos = ["Estrela Solitaria"] # algoritmos = ["Genetico"] times_campeoes = {} medias_campeoes = {} for alg in algoritmos: if alg != "Genetico": times_campeoes[alg] = algoritmo.get_melhor_formacao_algoritmo(alg, cartoletas, conteudo_csv, formacoes, info, None) else: if len(medias_campeoes) != 0: limiar_algoritmo_genetico = max(medias_campeoes) else: limiar_algoritmo_genetico = 200.00 print ("Limiar para algoritmo genetico: {0}".format(limiar_algoritmo_genetico)) times_campeoes[alg] = algoritmo.get_melhor_formacao_algoritmo(alg, cartoletas, conteudo_csv, formacoes, info, limiar_algoritmo_genetico) media_time_campeao_alg = mat_cartola.get_valor_indice_acumulado_time(times_campeoes[alg], info, "media") medias_campeoes[media_time_campeao_alg] = alg idx_vencedor_geral = max(medias_campeoes) algoritmo_vencedor_geral = medias_campeoes[idx_vencedor_geral] print "Vencedor Geral: {0}".format(algoritmo_vencedor_geral)