[quote=juliocbq]Os algoritmos, sem sombra de dúvida, são o que há de mais importante na computação. A linguagem de programação é insignificante.
Esses problemas de performance e otimização podem ser resolvidos com Inteligência artificial, sendo mais específico, AGs (Algotitmos genéticos).
Eles são usados, para buscar a melhor resposta, por meio da seleção natural. Com certeza pode otimizar esse tipo de problema que citou logo acima.[/quote]
Pois então… É um tanto complicado falar nisso… Existem técnicas avançadas de Programação Dinâmica (muita matemática) que resolvem alguns problemas bem básicos, que os AGs também resolvem, mas demoram. O negócio é que surgem tantos problemas com um espaço de busca tão gigantesco que as soluções mais matemáticas ficam estagnadas. Só que existe, ainda, MUITA coisa que a matemática resolve, principalmente com Programação Linear e Não-Linear (e com Dinâmica, Inteira e por aí vai). Para problemas mais complexos (i.e., com um vasto campo de busca, ou seja, infinitas (ou quase infinitas) combinações possíveis), é interessante utiliza técnicas de IA e Computação Natural.
Agora, sobre AGs… Tá defasado. Eu estive em um projeto de pesquisa que envolvia Genéticos e Fuzzy. Além de AGs serem lentos demais, não estão mais encontrando muitos resultados satisfatórios (é até raro encontrar trabalhos que envolvem AG em publicações, mas ainda encontra). O que acontecia foi que não foram encontrados resultados bons com AGs, então inventaram os Algoritmo Meméticos (ou Miméticos, ou ainda Algoritmos Genéticos Híbridos), que nada mais são que um AG com uma busca local (ou seja, aplica novamente um operador, de maneira diferente, visando melhorar o resultado final). Depois disso, surgiram algumas técnicas baseadas na natureza mesmo, como PSO (Otimização por Enxame de Partículas), Evolução Diferencial (esse acho que nem entra na lista), ACO (Otimização por Colônia de Formigas), BSO (Otimização por Enxames de Abelhas) e por aí vai. Outra técnica MUITO importante e que, na minha opinião, é a mais inteligente são os Algoritmos Culturais.
Mas pra resolver os problemas no TC, GCJ e SPOJ não precisa disso não. Só precisa de muito algoritmo e muita matemática. Só.
Essa área é mais interessante que a de IA, na minha opinião.
Abraço.
Bob,
O TAOCP é trash mesmo. O Concrete Mathematics também (pra você ter uma ideia não tem nem sub-tópicos, pra marcar onde ficou uheheh). Mas ainda assim, acho que vale a pena. O do Cormen já é nota 10.