2020 American College Mathematical Contest in Modeling Documentos e procedimentos do processo de solução de problemas de estratégia de equipe de perguntas D

Concurso Matemático Colegiado Americano 2020 em Modelagem

Questão D estratégia da equipe

Reprodução do título original:

  À medida que as sociedades se tornam mais interconectadas, o conjunto de desafios que enfrentam se torna mais complexo. Contamos com equipes interdisciplinares com diversos conhecimentos e perspectivas para resolver muitos dos problemas mais desafiadores. Nos últimos 50 anos, nossa compreensão conceitual do sucesso da equipe avançou dramaticamente, permitindo que equipes científicas, inovadoras ou físicas enfrentassem esses problemas complexos. Os pesquisadores relataram as melhores estratégias para formar equipes, as melhores interações entre os membros da equipe e o estilo de liderança ideal. Equipes fortes em departamentos e domínios são capazes de realizar tarefas complexas que não poderiam ser realizadas por meio de esforços individuais ou por meio de uma série de contribuições adicionais dos membros da equipe.
  Uma das configurações mais informativas para explorar os processos de equipe é em esportes competitivos de equipe. Os esportes coletivos estão sujeitos a regras estritas que podem incluir, mas não estão limitadas a, número de jogadores, suas funções, contato permitido entre os jogadores, sua posição e movimento, pontos ganhos e consequências das violações. O sucesso da equipe é mais do que a soma das habilidades individuais. Em vez disso, é baseado em muitos outros fatores relacionados a como os companheiros de equipe jogam juntos. Esses fatores podem incluir se a equipe possui múltiplas habilidades (uma pessoa pode ser rápida enquanto outra é precisa), quão bem a equipe é equilibrada entre o desempenho individual e coletivo (um jogador estrela pode ajudar a utilizar as habilidades de todos os companheiros de equipe) e o capacidade da equipe de se coordenar efetivamente durante um período de tempo (quando um jogador rouba a bola do adversário, outro jogador se prepara para atacar).
  Com base em suas habilidades de modelagem, o Team Huskies, o técnico do time de futebol de sua cidade natal (como é conhecido na Europa e em outros lugares), pediu à sua empresa, Intrepid Champion Modeling (ICM), para ajudar a entender a dinâmica do time. Em particular, o Coach permite que você explore como as interações complexas entre os jogadores em campo afetam seu sucesso. Nosso objetivo não é apenas estudar as interações que levam diretamente à pontuação, mas explorar a dinâmica da equipe ao longo dos jogos e temporadas, ajudando a identificar estratégias específicas que podem melhorar o trabalho em equipe na próxima temporada. O treinador pede ao ICM para quantificar e formalizar as características estruturais e dinâmicas do sucesso (e fracasso) da equipe. Os Huskies forneceram detalhes sobre a última temporada, incluindo seus 38 jogos contra 19 adversários (dois cada). No total, os dados abrangem 23.429 passes entre 366 jogadores (30 jogadores Huskies, 336 jogadores adversários) e 59.271 eventos de jogo.
  Atendendo ao pedido do treinador Huskie, a equipa do ICM deverá utilizar os dados fornecidos para resolver o seguinte problema:
  criar uma rede de passes entre jogadores, cada jogador é um nó, e cada passe constitui uma ligação entre jogadores. Use sua rede de transferência para identificar padrões de rede, como estruturas binárias e ternárias e formações de equipe. Considere também outros indicadores estruturais e as propriedades de rede de todos os Jogos Olímpicos. Você deve explorar várias escalas, como, mas não limitado a, interações micro (pares) a macro (todos os jogadores) e tempo, como curto (minuto a minuto) a longo (jogo inteiro ou temporada).
  Identifique métricas de desempenho (além de pontos ou vitórias) que reflitam o trabalho em equipe bem-sucedido, como diversidade nos tipos de jogos, coordenação entre jogadores ou distribuição de contribuições. Você também pode considerar outros processos em nível de equipe, como adaptabilidade, flexibilidade, cadência ou fluxo. Pode ser importante esclarecer se uma estratégia é universalmente eficaz ou depende da contra-estratégia do oponente. Use suas métricas de desempenho identificadas e processos em nível de equipe para criar um modelo que capture os aspectos estruturais, de configuração e dinâmicos do trabalho em equipe
.
  Use os insights obtidos com os modelos de trabalho em equipe para informar os treinadores sobre quais estratégias estruturais funcionam bem para os Huskies. Diga aos treinadores que a análise de rede mostra quais mudanças eles devem fazer na próxima temporada para melhorar o sucesso de sua equipe
.
  Sua análise dos Huskies permite que você considere a dinâmica de grupo no ambiente controlado dos esportes coletivos. Compreender o complexo conjunto de fatores que fazem com que alguns grupos tenham um desempenho melhor do que outros é fundamental para a forma como as sociedades se desenvolvem e inovam. À medida que nossa sociedade resolve cada vez mais problemas envolvendo equipes, você pode generalizar suas descobertas para ilustrar como projetar equipes mais eficazes? Que outros aspectos do trabalho em equipe preciso entender para desenvolver um modelo geral de desempenho de equipe?

Visão geral do processo geral da solução (resumo)

  Criamos redes de passes ponderados não direcionados para descrever o comportamento do time em jogos de futebol. Em uma rede de passagem, os nós são os jogadores que participam do jogo, e o peso de uma aresta é igual ao número de passes entre esses dois jogadores. Com base na rede construída, identificamos com sucesso alguns padrões de rede. Além disso, consideramos algumas métricas quantitativas para caracterizar a rede. Para capturar propriedades de curto prazo, modificamos o modelo base para uma rede l-pass e estudamos a evolução dos indicadores estruturais. Para capturar as características de longo prazo de toda a temporada, propomos um modelo de cadeia de Markov, que pode ser visto como um modelo de rede ponderada direcionada.
  Para avaliar o sucesso do trabalho em equipe, elaboramos uma métrica de desempenho. O indicador é composto por três indicadores: indicadores estruturais, indicadores de configuração e indicadores espaço-temporais. Testes estatísticos de χ2 confirmaram que os indicadores eram informativos. Em seguida, calculamos as métricas de cada jogo e analisamos por que os Huskies ganharam ou perderam. Além disso, realizamos uma análise de sensibilidade para demonstrar que as medidas de desempenho são robustas.
  Com base nessas métricas, fornecemos aos Huskies recomendações sobre como melhorar o trabalho em equipe no futuro. Para três treinadores diferentes, demos conselhos diferentes. Também descobrimos que os Huskies tiveram um desempenho diferente em seus jogos em casa e fora. Assim, damos algumas sugestões de jogos em casa e fora de casa.
  Por fim, discutimos como generalizar esses métodos para outras atividades da equipe. Acreditamos que esses métodos podem ser estendidos para esportes como basquete e vôlei, mas não para outros esportes, como curling e ginástica. Usando o beisebol como exemplo, mostre como adaptar o modelo às características de um jogo de basquete. Exploramos ainda mais a possibilidade de aplicar esses métodos a atividades sociais em geral.

Suposições do modelo:

  Nosso modelo se baseia na suposição de que
  todos os dados registrados são precisos, incluindo horários de eventos, todas as atividades das quais um jogador participa, coordenação entre jogadores, etc. Embora essa suposição possa ser muito restritiva na prática devido ao erro de medição, podemos relaxar assumindo que os registros são imparciais.
  Todos os eventos importantes que aconteceram durante o jogo foram registrados, nada foi perdido. Além disso, todos os eventos registrados realmente aconteceram.
  A influência de fatores externos, como clima, condições do campo de futebol, etc., é insignificante.
  O jogo é justo, o que significa que os árbitros não fazem julgamentos pessoais sobre as equipes participantes.
  A função física, a saúde e o estado emocional dos jogadores não mudaram significativamente durante o jogo.
  Os Huskies mantiveram o mesmo nível de coesão da equipe ao longo da temporada.

Reformulação da pergunta:

  Crie uma rede para passagem entre os jogadores e use a rede de passagem para identificar padrões de rede. Considere outros indicadores estruturais e propriedades de rede. Discuta a dinâmica de curto e longo prazo.
  Identifique as métricas de desempenho que refletem o trabalho em equipe bem-sucedido. Identifique se essas estratégias são geralmente eficazes ou dependem da contra-estratégia do oponente. Use métricas de desempenho para criar um modelo que capture os aspectos estruturais, de configuração e dinâmicos do trabalho em equipe.
  Com base na análise de rede, sugira quais mudanças os treinadores devem fazer na próxima temporada para melhorar o sucesso de sua equipe.
  Discuta como as descobertas e os modelos podem ser generalizados para outras atividades da equipe.

Estabelecimento e solução do modelo Miniatura geral do artigo

insira a descrição da imagem aqui
insira a descrição da imagem aqui

Para todos os papéis, veja abaixo "Apenas modelagem de cartões de visita QQ" Clique no cartão de visita QQ

Parte do código do programa: (código e documentação não gratuitos)

import networkx as nx
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import matplotlib.patches as mpathes
def InitG(data):
 G = nx.DiGraph()
 ET = np.array(data['EventTime'])
 i=0
 while(ET[i] < 900):
 i+=1
 length = i #未来的 front
 
 Weight = np.ones(length, dtype=int)
 Ori = np.array(data['OriginPlayerID'])
 Des = np.array(data['DestinationPlayerID'])
 for j in range(0,length):
 if(G.has_node(Ori[j])&(G.has_node(Des[j]))):
 if(G.has_edge(Ori[j],Des[j])):
 G[Ori[j]][Des[j]]['weight']+=1
 else:
 G.add_edge(Ori[j],Des[j],weight=Weight[j])
 else:
 G.add_edge(Ori[j],Des[j],weight=Weight[j]) #边的起点,终点,权重
# #pos = nx.circular_layout(G)
# #print(G.edges(data=True))
# 
#nx.draw_networkx_edges(G,pos,with_labels=True,edge_color='black',alpha=1,font_size=10,width=
[float(v['weight']*0.5) for (r,c,v) in G.edges(data=True)])
# #nx.draw_networkx_nodes(G,pos,with_labels=True)
# nx.draw(G,pos,alpha = 0.8,with_labels=True,font_size=10,width=[float(v['weight']*1) for 
(r,c,v) in G.edges(data=True)])
# plt.show()
 data = data[(data['MatchPeriod']=='1H')]
return G,length,np.array(data['EventTime'])[len(data['EventTime'])-1]
def Calc1(String1,String2,MatchID):
 data = pd.read_excel('gogofootball.xlsx',sheet_name='Sheet1')
 data = data[(data['TeamID']==String1)&(data['MatchID']==MatchID)]
 G,edgeNum,last1H = InitG(data)
 # 时间数据处理
 data['EventTime'][(data['MatchPeriod']=='2H')]+=last1H
 front = edgeNum # 前指针
 rear =0 # 后指针
 zongchang = len(data['TeamID'])
 #Degree = [] # 图的密度
 #Clustering = [] # 图或网络中节点的聚类系数
 Transitivity = [] # 图或网络的传递性
 T1 = [] # 时间轴
 Triangles = []
 Triads = []
 Anc = []
 
 ET = np.array(data['EventTime'])
 Ori = np.array(data['OriginPlayerID'])
 Des = np.array(data['DestinationPlayerID'])
 while(front<zongchang):
 t = ET[front]
 T1.append(t)
 # 删东西
 while(ET[front] - ET[rear] > 900):
 if(ET[front] - ET[rear] < 900):
 break
 if(G[Ori[rear]][Des[rear]]['weight']>1):
 G[Ori[rear]][Des[rear]]['weight']-=1
 else:
 G.remove_edge(Ori[rear],Des[rear])
 if(G.degree(Ori[rear])==0): G.remove_node(Ori[rear])
 if(G.degree(Des[rear])==0): G.remove_node(Des[rear])
 rear+=1
 # 加东西
 if(G.has_node(Ori[front])&(G.has_node(Des[front]))):
 if(G.has_edge(Ori[front],Des[front])):
 G[Ori[front]][Des[front]]['weight']+=1
 else:
 G.add_edge(Ori[front],Des[front],weight=1)
 else:
 G.add_edge(Ori[front],Des[front],weight=1)
# 计算并附加
 #Degree.append(nx.degree(G))
 #Clustering.append(nx.clustering(G))
 
 
# tri = np.sum(list(nx.triangles(G).values()))/3
# triads = (tri*3)/nx.transitivity(G)
# Transitivity.append(tri + triads)
 
 Anc.append(nx.average_node_connectivity(G))
 # 步长
 front+=1
# return T1,Transitivity
return T1,Anc
def Calc2(String1,String2,MatchID):
 data = pd.read_excel('gogofootball.xlsx',sheet_name='Sheet1')
 data = data[(data['TeamID']==String2)&(data['MatchID']==MatchID)]
 G,edgeNum,last1H = InitG(data)
 # 时间数据处理
 data['EventTime'][(data['MatchPeriod']=='2H')]+=last1H
 front = edgeNum # 前指针
 rear =0 # 后指针
 zongchang = len(data['TeamID'])
# Degree = [] # 图的密度
# Clustering = [] # 图或网络中节点的聚类系数
 Transitivity2 = [] # 图或网络的传递性
 T2 = [] # 时间轴
 Triangles = []
 Triads = []
 Anc = []
 ET = np.array(data['EventTime'])
 Ori = np.array(data['OriginPlayerID'])
 Des = np.array(data['DestinationPlayerID'])
 while(front<zongchang):
 t = ET[front]
 T2.append(t)
 # 删东西
 while(ET[front] - ET[rear] > 900):
 if(ET[front] - ET[rear] < 900):
 break
 if(G[Ori[rear]][Des[rear]]['weight']>1):
 G[Ori[rear]][Des[rear]]['weight']-=1
 else:
 G.remove_edge(Ori[rear],Des[rear])
 if(G.degree(Ori[rear])==0): G.remove_node(Ori[rear])
 if(G.degree(Des[rear])==0): G.remove_node(Des[rear])
 rear+=1
 # 加东西
 if(G.has_node(Ori[front])&(G.has_node(Des[front]))):
 if(G.has_edge(Ori[front],Des[front])):
 G[Ori[front]][Des[front]]['weight']+=1
 else:
 G.add_edge(Ori[front],Des[front],weight=1)
 else:
 G.add_edge(Ori[front],Des[front],weight=1)
 # 计算并附加
 #Degree.append(nx.degree(G))
 #Clustering.append(nx.clustering(G))
 
 
# tri = np.sum(list(nx.triangles(G).values()))/3
# triads = (tri*3)/nx.transitivity(G)
# Transitivity2.append(tri + triads)
 
 
 Anc.append(nx.average_node_connectivity(G))
 # 步长
 front+=1
# return T2,Transitivity2
return T2,Anc
def Calc(String1,String2,MatchID):
# T1,Transitivity = Calc1(String1,String2,MatchID)
# T2,Transitivity2 = Calc2(String1,String2,MatchID)
 T1,Anc1 = Calc1(String1,String2,MatchID)
 T2,Anc2 = Calc2(String1,String2,MatchID)
# return T1,T2,Transitivity,Transitivity2
return T1,T2,Anc1,Anc2
# Main Program
String1 = 'Huskies'
String2 = 'Opponent18'
MatchID = 18
#T1,T2,Transitivity,Transitivity2 = Calc(String1,String2,MatchID)
T1,T2,Anc1,Anc2 = Calc(String1,String2,MatchID)
plt.figure(figsize=(15, 6))
# 线条颜色 black, 线宽 2, 标记大小 13, 标记填充颜色从网上找 16 进制好看的颜色
plt.plot(T1, Anc1, '-o', color='black', markersize=13, markerfacecolor='#44cef6', linewidth=2, 
label=String1)
# plt.plot(T2, Anc2, '-o', color='black', markersize=13, markerfacecolor='#e29c45', linewidth=2, 
label=String2)
plt.plot(T2, Anc2, '-o', color='black', markersize=13, markerfacecolor='#9cef43', linewidth=2, 
label=String2)
font = {
    
    'family': 'Times New Roman', 'weight': 'normal', 'size': 15}
plt.legend(prop=font)
# 字体设置: 字体名称 Times New Roman, 字体大小 34
font_format = {
    
    'family':'Times New Roman', 'size':25}
plt.xlabel('Time (s)', font_format)
#plt.ylabel('Transitivity', font_format)
plt.ylabel('Average Node Connectivity', font_format)
# 设置坐标轴 x 范围 0~3*pi, y 范围-1.2~1.2
#plt.axis([0, 3*np.pi, -1.2, 1.2])
# 横纵坐标上的字体大小与类型(不是 xlabel, 是 xticks)
plt.xticks(fontproperties='Times New Roman', size=25)
plt.yticks(fontproperties='Times New Roman', size=25)
# 整个图像与展示框的相对位置
plt.subplots_adjust(left=0.19,right=0.94, bottom=0.13)
# 调整上下左右四个边框的线宽为 2
ax=plt.gca()
ax.spines['bottom'].set_linewidth(2)
ax.spines['left'].set_linewidth(2)
ax.spines['right'].set_linewidth(2)
ax.spines['top'].set_linewidth(2)
# rect1 = mpathes.Rectangle((1550,0),700,400,color='wheat')
# ax.add_patch(rect1)
# # plt.text(1800,350,'Opponent4’s highlight 
performance',fontsize=15,verticalalignment="center",horizontalalignment="center")
# rect2 = mpathes.Rectangle((4000,0),1300,400,color='wheat')
# ax.add_patch(rect2)
# rect1 = mpathes.Rectangle((1750,0),300,3.1,color='lightgreen')
# ax.add_patch(rect1)
# rect2 = mpathes.Rectangle((2900,0),500,3.1,color='lightblue')
# ax.add_patch(rect2)
# rect3 = mpathes.Rectangle((3400,0),400,3.1,color='lightgreen')
# ax.add_patch(rect3)
# rect4 = mpathes.Rectangle((3800,0),200,3.1,color='lightblue')
# ax.add_patch(rect4)
# rect5 = mpathes.Rectangle((5200,0),550,3.1,color='lightblue')
# ax.add_patch(rect5)
plt.show()
Para todos os papéis, veja abaixo "Apenas modelagem de cartões de visita QQ" Clique no cartão de visita QQ

Acho que você gosta

Origin blog.csdn.net/weixin_43292788/article/details/131823495
Recomendado
Clasificación