Gostaria primeiro de agradecer todos aqueles que contribuíram diretamente para este trabalho: Renato Vicente, por todos os bons conselhos durante todos estes anos; Florent Krzakala, por gentilmente me acolher em seu grupo de pesquisa em Paris durante um período curto mas bastante agradável e produtivo; e também Eric Tramel e Lenka Zdeborová, com quem tive o prazer de trabalhar neste período. Agradeço ainda a Nestor Caticha, com quem aprendi que todos os modelos estão errados, mas que os modelos bayesianos estão menos errados. Agradeço a minha família e especialmente à meus pais por todo o apoio, sem o qual esta tese não teria sido possível, e à todos os amigos e colegas de faculdade com quem mantive contato durante todos estes anos-João e Paulo, com quem compartilhei as alegrias e tristezas de fazer um doutorado; Leonardo e Lucas, que tornaram minha estadia em Paris ainda mais aprazível; e Bruno, Gabriel, Henrique, Michel e Petre, por todos os momentos de diversão. Finalmente, agradeço à todos o estudantes, professores e funcionários de meu grupo-em particular Andre, Carol, Cinthia, Diogo, Felippe, Jonatas e Rafael-e de meu departamento, e à todos que me ajudaram de um jeito ou de outro nestes anos, as vezes até mesmo sem perceber. O auxílio financeiro para este trabalho foi fornecido pela Fundação de Amparo e Pesquisa do Estado de São Paulo (FAPESP) sob os processos no. 2012/12363-8 e no. 2013/01213-8. Auxílio material foi fornecido também pelo Centro para Sistemas Naturais e Artificiais de Processamento de Informações (CNAIPS-USP). i Resumo Esta tese está dividida em duas partes. Na primeira delas, mostramos como problemas de inferência estatística e de otimização combinatória podem ser abordados sob um framework unificado que usa ferramentas de áreas tão diversas quanto o aprendizado de máquina, a física estatística e a teoria de informação, permitindo que i) projetemos algoritmos para resolver os problemas, ii) analisemos a performance destes algoritmos tanto empiricamente como analiticamente, e iii) comparemos os resultados obtidos com os limites teóricos. Na segunda parte, este framework é usado no estudo de dois problemas específicos, um de inferência (compressed sensing) e outro de otimização (ocultação de dados). Em ambos os casos, revisamos abordagens recentes, identificamos suas falhas, e propomos novos esquemas que visam corrigir estas falhas, baseando-nos sobretudo em algoritmos de troca de mensagens, técnicas de inferência variacional, e modelos de vidro de spin da física estatística.