Suponha que exista uma sessão de tutorial em uma universidade. Temos um conjunto de perguntas e um conjunto de alunos . Cada aluno tem uma dúvida em um determinado subconjunto de perguntas, ou seja, para cada aluno , seja o conjunto de perguntas que um aluno duvida. Assume-se que e .
Todos os alunos entram na sessão do tutorial no início (em ). Agora, um aluno sai da sessão do tutorial assim que todas as perguntas em que ele tiver dúvidas tiverem sido discutidas. Suponha que o tempo necessário para discutir cada questão seja igual, digamos 1 unidade . Seja o tempo gasto por na sessão do tutorial. Queremos encontrar uma permutação ideal na qual questões são discutidas como a quantidade é minimizado.∗ t j s j σ ( q σ ( 1 ) … q σ ( n ) ) T σ = Σ 1 ≤ j ≤ n t j
Não pude projetar um algoritmo de tempo polinomial ou provar a dureza .
Podemos definir uma versão de decisão do problema
onde é o conjunto de 's.
Podemos então descobrir o T_ \ sigma mínimo usando pesquisa binária em e descobrir o \ sigma ideal usando atribuições parciais a em tempo polinomial usando um oracle para . Além disso, porque o \ sigma ideal pode ser usado como um certificado que podemos verificar facilmente em tempo polinomial.
Minha pergunta: concluída ou podemos criar um algoritmo de tempo polinomial para ele?N P
Sidenote: A propósito, pensei nessa questão após uma sessão de tutorial real, na qual o AT discutiu as questões na ordem normal por causa da qual muitos estudantes tiveram que esperar até o final.
Exemplo
Let e . e . Podemos ver que ideal porque, nesse caso, sai depois de e sai depois de , então a soma é 4.
No entanto, se discutirmos as questões em a ordem , então e precisam esperar até o fim e , então a soma é 6.
Q i x i Você é livre para resolver o caso mais geral em que cada pergunta leva unidades para discutir!