Minha esposa é uma fotógrafa de casamentos. Pedimos aos nossos casais que listem as fotografias que eles querem que tiremos. Estou tentando criar um procedimento que minimize o tempo necessário.
Por exemplo, Bob e Alice têm pais, um ou dois irmãos e outros parentes. Eles querem todo tipo de combinação de pessoas nas fotos. Cada um de Bob com sua mãe, pai, irmão, irmã, irmão e irmã, pai e mãe, pais de Alice, irmãs de Alice, primos, sobrinhos, sobrinhas, etc. Geralmente entre 20 e 40 grupos diferentes, talvez de 10 a 20 pessoas.
O que eu gostaria de escrever ou encontrar é um pacote de software que atraia todas as pessoas e todos os grupos, e me dê uma ordem que minimizaria as diferentes pessoas indo e vindo. Alguém conhece esse programa? Qual seria o melhor método algorítmico para criar um? Gráficos direcionados ou árvores?
Agradeço antecipadamente por sua ajuda!
Respostas:
Você está tentando escrever um software para tornar as pessoas bêbadas, filmando pessoas de idades muito diferentes e pessoas que têm um forte desejo ou nenhum desejo de fazer parte das fotos; mais fácil de fazer? Eu quero parar você aqui.
Suas melhores opções não estão relacionadas ao software. Eles começam com o estabelecimento de expectativas com o casal na consulta inicial, reforçando isso a cada contato, tendo um tempo mínimo definido em seu contrato para capturar as fotos formais necessárias e, finalmente, sendo responsável no dia e sabendo como gerenciar efetivamente grupos de pessoas. Além disso, você pode trazer um segundo atirador / assistente para ajudar em casamentos maiores.
Por fim, encorajo você a interromper a prática de pedir uma lista de tiros ao casal. Essas imagens raramente vendem quando se trata disso, elas levam uma tonelada de tempo e, na minha opinião, são simplesmente chatas de capturar. Em vez disso, peça ao casal todas as doses que eles considerem necessárias , por exemplo, a noiva e a tia que ela não vê há muitos anos. Isso define a expectativa de que esses são os tiros obrigatórios e não 60 bailes familiares diferentes.
Se você descobrir que um casal deseja todas as combinações formais, a melhor prática que encontrei é tirar a maior foto de grupo primeiro e começar a tirar o menor número possível de pessoas para cada foto sucessiva. Não tome formalidades em pequenos grupos primeiro. Considere também as idades, não faça a junção mais velha para uma tentativa, seja puxado e retorne várias vezes.
Eu poderia entrar em mais detalhes, mas isso já foi muito além do escopo de "software para conseguir isso". Apenas entenda que a técnica, a preparação e a experiência podem aliviar a maioria dos problemas desse tópico.
fonte
Responderei da perspectiva de um escritor de software e de alguém que foi casado recentemente.
Primeiro, como dpollitt menciona, você não terá nenhum software que faça as pessoas ilógicas agirem de uma maneira ordenada e lógica. Você está em uma festa. As pessoas serão felizes, tristes, irritadas, bêbadas, esnobes, malcheirosas, barulhentas, tímidas e praticamente tudo o que estiver no meio. A obtenção de um software que executa qualquer tipo de processo requer o consentimento do grupo. E você não vai nem chegar perto de consentir. É provável que você nem consiga que o grupo chegue a um acordo sobre o que significa consentimento.
Agora, do nosso lado (como cliente, e as pessoas terão opiniões diferentes como clientes), dissemos ao nosso fotógrafo que queremos tal e tal foto (como caminhar pelo corredor ou sair da limusine). Então dissemos que queríamos fotos familiares estruturadas.
O que nosso fotógrafo fez foi trabalhar conosco e com o local. Ele se certificou de que, assim que a cerimônia terminasse, antes que alguém tivesse a chance de se mover o suficiente para sair de seus lugares, a equipe trouxesse bebidas e aperitivos, e basicamente criava uma espécie de muro de bloqueio que mantinha todos no mesmo área. Então ele conseguiu as fotos formais. Todo o processo foi realizado em cerca de meia hora. Por nossa parte, instruímos as damas de honra e os padrinhos a dizerem silenciosamente a todos para esperarem fotos. Em seguida, proibimos totalmente câmeras de qualquer tipo. A única maneira de tirar uma foto é se você trabalhou com o nosso fotógrafo. Também instruímos a dama de honra e o padrinho a trabalhar com o fotógrafo e a "buscar previamente" qualquer pessoa que se afastou.
Por fim, instruímos as "pessoas-chave" (pais e líderes da família etc.) a espalhar a notícia de que esse fotógrafo precisa passar por algumas cenas "roteirizadas";
Em suma, nosso processo foi tranqüilo, nosso fotógrafo foi incrível e foi uma ótima experiência.
As principais coisas que nosso fotógrafo fez para que isso acontecesse foi trabalhar conosco. Ele sugeriu fortemente que movêssemos as coisas e fizéssemos os aperitivos e bebidas agirem como uma parede. Ele nos disse o que precisava ser feito e depois descobrimos como. Mais importante ainda, quando chegou a hora, ele assumiu o comando da situação. Ele era bastante, educado e firme. Nós sabíamos que ele ia fazer isso, ele nos disse, então o apoiamos. "Mas eu não quero tirar uma foto assim." foi respondido por mim ou por minha esposa: "Esse cara é profissional, você fará o que ele diz, é por isso que o contratamos". Esse tipo de trabalho em equipe manteve a festa em movimento e as fotos foram tiradas, e foi uma experiência maravilhosa.
Então, meu conselho para você é:
fonte
Aqui está uma abordagem diferente que raramente funciona porque as pessoas são pessoas, e o noivo e a noiva são pessoas, mas funciona muito bem quando as pessoas fazem o que dizem que farão.
Há muito tempo, o nosso MD importado dos EUA (Telecom Auckland) estabeleceu um princípio de "cão de ferro velho", no qual um cliente em um fluxo de trabalho tinha o direito de abordar os gerentes no caminho do trabalho, em busca de soluções para problemas de execução de tarefas. Isso foi resistido de todas as maneiras que se pode esperar e vai contra as abordagens tradicionais - mas eu gostei da terminologia, então a emprestei.
Digo à B&G que não conheço seus convidados, amigos, família. Meu trabalho é tirar fotos. Ter uma lista do que se quer é um começo, mas acho que nenhuma quantidade de gritos, insultos, palavras gentis ou rolagens no chão fazendo birras leva Aunty May e o tio Zach ao (lugar certo) na igreja a tempo quando é a vez de serem fotografados. Então ...
Eu os aconselho a nomear dois "cães de ferro velho" - um de cada lado da família. Cada um precisa conhecer ou ser capaz de identificar todas as pessoas envolvidas do lado da família. Eles precisam ser assertivos e não facilmente ignorados. Educado e com voz suave são bônus se puderem ser alcançados sem diluir seu objetivo.
O trabalho deles é pegar as listas de fotos de procurados, identificar as pessoas envolvidas e garantir que elas sejam entregues no local certo e ao fotógrafo.
Essencialmente, todos os que sugeri isso, com explicações sobre por que é desejável, acham que é uma ótima idéia e dizem que eles o farão.
Mesmo com lembretes em andamento, poucas pessoas conseguiram nomear pessoas para esse papel.
As pessoas raramente deixam tempo suficiente entre o casamento e a recepção para permitir tempo suficiente para as fotos. O tempo após o serviço é preenchido com saudações e parabéns e "podemos apenas tirar uma foto com ..." - daqueles que não vão à recepção E dos que estão.
Sugiro que o tempo de recepção da igreja precise ser maior do que a maioria das pessoas permite. Poucos ouvem.
Então - pergunto se fotos "noivos + xxx" podem ser tiradas na recepção para os presentes. Em muitos casos, isso funciona. Alguns precisam sair mais cedo, mas em muitos casos há tempo para selecionar uma área adequada e dar um ciclo às pessoas. Desde que a B&G perceba que é a única oportunidade de obter essas fotos importantes, geralmente funciona bem.
E, não é um software à vista :-).
fonte
Alerta de spoiler: nem todas as pessoas são criadas da mesma forma quando se trata de organizar a ordem em que elas aparecem nas fotos.
Se você tem filhos, provavelmente os quer nas primeiras fotos. As crianças pequenas são ... bem, vamos apenas dizer que não é tão bom em posar para fotos formais. Portanto, mesmo que você possa otimizar um pouco o pedido, é necessário incluir esses fatores assim.
Ou talvez os avós tenham problemas de mobilidade. Etc.
E nem comece a tentar analisar famílias com divórcios ou problemas familiares.
Em vez disso, peça ao casal que prepare uma lista de fotos de família que eles querem e a entregue com antecedência. Um formato de planilha pode funcionar para isso (facilmente acessível a outras famílias). Você pode preparar uma folha de modelos e enviá-la aos seus clientes também.
E por último, que ninguém mencionou - instrua a festa de casamento a ter alguém que:
Independentemente da otimização do seu pedido, sem um plano para executá-lo no dia real, você terá uma bagunça. Uma lista preparada e um facilitador para chamar nomes de pessoas atuais e "no convés" serão consideravelmente melhores para otimizar o fluxo de imagens do que qualquer algoritmo alguma vez será.
fonte
Eu pensei que poderia ser interessante para uma visão diferente sobre esta questão.
Na verdade, isso parece uma variação do problema do Vendedor ambulante, que tenho certeza que a maioria das pessoas aqui conhece, é um problema muito difícil (NP-Hard).
Tanto quanto posso dizer, você tem um conjunto de elementos distintos (pessoas) e uma lista de estados (grupos) em que eles precisam estar. Você precisa encontrar o caminho mais curto entre os estados que os visitam. (parecendo familiar?)
A principal diferença é a função de distância, que neste caso acho que a distância de Levenshtein funcionaria adequadamente. (Diferença entre duas cadeias, no entanto, isso também leva em conta a ordem dos elementos.) Você também pode usar alguma outra variação do caminho mais curto.
Se o pedido não for um problema, você poderá apenas o número de 'operações' entre cada estado. Portanto, este é apenas o número de pessoas que precisam se mudar.
Conforme sua pergunta, este é um gráfico não direcionado.
Eu realmente não consigo pensar em uma abstração ou redução que resolveria isso de outra maneira. Dependendo do número de grupos de pessoas, pode ser possível encontrar uma solução ideal, mas com mais de 20 ou mais e você está esperando muito tempo para que isso termine.
fonte