Essas são basicamente duas perspectivas diferentes ou duas maneiras diferentes de visualizar o tempo de execução. Ambos são válidos (nenhum dos dois está incorreto), mas é sem dúvida mais útil nas configurações que normalmente surgem na IA.O (bd)
Na comunidade de algoritmos e na teoria da CS, as pessoas tendem a gostar de contar o tempo de execução em função do número de vértices e arestas no gráfico. Por quê? Nesse contexto, o pior caso de tempo de execução é o que faz mais sentido; Além disso, nos problemas normalmente considerados nessa comunidade, na pior das hipóteses, precisamos examinar o gráfico inteiro; portanto, você normalmente não pode esperar fazer melhor que .O ( | V| + | E| )
Na comunidade da IA, as pessoas tendem a contar o tempo de execução de maneira diferente. Eles costumam considerar um tipo específico de gráfico: uma árvore com fator de ramificação . Além disso, nas situações que surgem lá, o gráfico geralmente é infinito ou muito grande. Normalmente, nos esforçamos para evitar examinar todo o gráfico - esse geralmente é um dos principais objetivos dos algoritmos. Assim, contando a complexidade em termos deenão faz sentido:pode ser infinito e, de qualquer forma, não planejamos examinar todo o gráfico; portanto, tudo o que importa é o número de vértices que realmente visitamos, não o número que pode existir em outro lugar, mas com o qual não nos importamos.b| V|| E|| V|
Portanto, para as situações que frequentemente surgem na comunidade de IA, é mais significativo medir o tempo de execução em termos do fator de ramificação da árvore ( ) e da profundidade do nó da meta ( ). Normalmente, uma vez que encontramos o nó da meta, o algoritmo para. Em uma árvore, se examinarmos todos os vértices em profundidade antes de encontrarmos o nó de objetivo, acabaremos visitando os vértices antes de parar. Assim, se você preferir, poderia pensar nisso como visitar um subconjunto do gráfico com (onde agora inclui apenas os vértices que visitamos) e ( inclui apenas as arestas que examinamos) e você pode pensar em umbd≤ dO (bd)| V| =O(bd)V| E| =O(bd)EO (bd)Algoritmo -time como aquele cujo tempo de execução é ... embora isso seja um pouco abusivo donotação. De qualquer forma, espero que você possa ver por que é mais informativo que nesse contexto.O ( | V| + | E| )| V| , | E|O (bd)O ( | V| + | E| )