Shared posts
Whenever I’m sad I look at this

Whenever I’m sad I look at this
Hollywood convida Anderson Silva para interpretar Homem Borracha nos cinemas
A perna quebrada de Anderson Silva foi uma grande jogada de marketing para tirá-lo de vez das lutas e levá-lo ao mundo do cinema. Após enfrentar Leandro Hassum em “Até que a sorte nos separe”, Anderson agora enfrentará o crime em O Homem Borracha.
O filme será dirigido pelo também brasileiro José Padilha que promete dar bastante realismo ao herói: “Contamos com as habilidades de Anderson Silva. Não usaremos muitos efeitos especiais, por isto contamos com toda a flexibilidade de suas pernas.”
por @cacofonias
Schumacher cai, mas Fluminense continua na Primeira Divisão
Novamente ameaçado de cair, o advogado do Fluminense entrou com recurso e derrubou o piloto alemão Schumacher. Agora, Vasco, Portuguesa, Ponte Preta, Náutico e Schumacher caem, mas o Fluminense não.
A ONU emitiu um alerta, pois para que o Fluminense não caia, o mundo pode vir abaixo. Especialistas dizem que o Fluminense será capaz até de derrubar Fidel Castro antes mesmo de cair.
Por @cacofonias
Às vésperas do Ano Novo, adolescente morre de fome após acabarem sobras do natal
O adolescente A.J., de 15 anos, morreu de inanição nesta manhã no Rio de Janeiro, após sua mãe se recusar a lhe fazer um prato de comida. Segundo ela, a família ainda estavam se alimentando dos restos do natal, até que ela viesse a fazer novos alimentos no dia 31 de dezembro para o Ano Novo, porém a comida acabou ontem (dia 29/12) às onze e vinte e três noite.
O advogado de Maria afirma que ela não cometeu nenhum crime, pois é comum em todas as casas que as mães, nesta época do ano, só cozinhem no Natal e no Ano Novo. Além disto, ele alegou que o menino se recusou a fazer um miojo no micro-ondas.
Por @cacofonias
Como agem os controles de estabilidade e de tração
Albener PessoaConsidero temeridade comprar carro sem ESP. Mas a maioria das pessoas prefere central multimidia ou rodas de liga leve aa seguranca.
Este fim de ano está sendo agitado no mercado nacional por causa da obrigatoriedade de airbag duplo e freios com ABS nos carros nacionais. Mas se engana quem pensa que apenas estes itens são suficientes para prover segurança em um automóvel nos dias atuais.
Entre outros itens que já estão disponíveis para ampliação da proteção de passageiros e mesmo de terceiros, existem dois itens que estão intimamente relacionados com os freios ABS: Controles de estabilidade e tração. É verdade que alguns modelos fabricados e vendidos no Brasil já oferecem estas tecnologias, mas infelizmente ainda vai demorar para que estejam de fato disponíveis em todos os carros brasileiros.
Controle de estabilidade
Como funcionam estes sistemas? O controle de estabilidade, popularmente conhecido por ESP (Electronic Stability Program ou Programa Eletrônico de Estabilidade), é um sistema eletrônico que atua diretamente nos freios e evita que o condutor perca o controle direcional em curvas ou desvios de trajetória, garantindo maior segurança.
O dispositivo analisa a rotação de cada uma das rodas em relação à velocidade do veículo e rapidamente identifica aquela que está perdendo aderência, acionando o freio daquela unidade, a fim de corrigir a trajetória do veículo, evitando que o mesmo rode na pista ou saía excessivamente no tangenciamento da curva. Alguns automóveis utilizam o ESP junto com outros sistemas, ampliando assim a atuação desta tecnologia.
Assim, há controle de estabilidade com influência sobre o sistema de direção ou mesmo agregado ao controle de condução dinâmica, que geralmente oferece modos de dirigir com vários níveis de atuação do ESP, oferecendo maior ou menor (ou até mesmo a ausência total de assistência) ação sobre os freios. O ESP é uma tecnologia que já está se tornando obrigatória na Europa e equipa carros, comerciais leves, caminhões e ônibus, bem como até motocicletas.
Controle de tração
O controle de tração ou TCS (traction control system) é um sistema eletrônico que evita o giro em falso de uma ou mais rodas de tração de um veículo através dos freios ABS. Ele reduz o torque na roda que está perdendo tração, garantindo maior segurança durante a condução.
Em pisos molhados, neve ou trechos de lama, o TCS é um dispositivo que ajuda o condutor a não perder o controle do veículo ou sair de situações difíceis. A tecnologia geralmente é associada com o ESP, mas em alguns casos, o torque pode ser gerenciado também pelo diferencial eletrônico ou pelo próprio conjunto propulsor. Alguns veículos nacionais (incluindo ônibus e caminhões) utilizam o TCS de série ou em forma de opcional.
O TCS pode ser desativado em alguns veículos, sendo também utilizado em conjunto com o ESP em modos de condução pré-programados ou personalizados. Há casos em que o controle de tração também atua diretamente em curvas, portanto, chamado de “controle de torque vetorial”, já que aumenta o torque em uma das rodas a fim de fazer com que o carro mantenha uma trajetória mais dentro da curva.
Várias tecnologias adicionais permitem também melhor distribuição de torque entre os eixos ou entre as rodas, garantindo maior controle do veículo, embora com custo muito maior que os sistemas mais comuns. Estes dispositivos podem incluir motores elétricos e até barras estabilizadoras com rigidez controlável, por exemplo.
Outros agregam suspensão adaptativa com amortecedores eletrônicos ou magnéticos ou mesmo câmaras (eletro) pneumáticas para compensar inclinação de carroceria, arrancada, descida, curvas em maior velocidade e transposição de obstáculos e terrenos difíceis no off-road, entre outros. Enfim, depois de airbags e ABS, agora o próximo passo é a popularização de ESP e TCS. No Brasil, o carro mais barato com essas duas tecnologias é o Fiat 500 a partir de R$ 43.050.
A noticia Como agem os controles de estabilidade e de tração foi publicada no site Notícias Automotivas - Carros.
NSA Lawsuit Ruling
Albener PessoaGostei do tapete
The judge, Richard J. Leon of Federal District Court for the District of Columbia, ordered the government to stop collecting data on the personal calls of the two plaintiffs in the case and to destroy the records of their calling history. But Judge Leon, appointed to the bench in 2002 by President George W. Bush, stayed his injunction “in light of the significant national security interests at stake in this case and the novelty of the constitutional issues,” allowing the government time to appeal it, which he said could take at least six months.
“I cannot imagine a more ‘indiscriminate’ and ‘arbitrary’ invasion than this systematic and high-tech collection and retention of personal data on virtually every single citizen for purposes of querying and analyzing it without prior judicial approval,” Judge Leon wrote in a 68-page ruling. “Surely, such a program infringes on ‘that degree of privacy’ that the founders enshrined in the Fourth Amendment,” which prohibits unreasonable searches and seizures. (more)
Google Glass: my early impressions
I have one now and I wish to thank whoever it is that offered me the invitation to buy. It is a privilege to have an early chance to preview and try out what may well prove to be a major technological advance.
That said, I still don’t find this to be a useful device. Here are my difficulties, many of which are specific to me:
1. Right now it’s only for people who see well. I kept on wanting to put on my (non-Google) glasses to view things through Google Glass. That doesn’t work. I also find it involves eyestrain and discomfort to look up into that upper right corner. That’s probably my defect rather than Google’s, but in contrast I know I am high quality enough to use their search engine and probably their driverless car as well. (Gmail remains a toss-up but I fear I am failing at it, even though I use it only for storage.)
2. I would do better if the small screen were above the left eye rather than the right.
3. It works through wireless, which means either a) I can use it at home which is exactly where I don’t need it, or b) I can carry around a WiFi device, which indeed I do have, but at some point it all stops being so easy, and furthermore there are then two battery lives to worry about (4-5 hours for Glass, I am told by various sources), two things I need to turn on and off, and higher carrying costs. There is by the way a Bluetooth method for running them through (some) smart phones, I am not sure at what difficulty or expense.
4. I tried to prime its connection to two wireless systems (home, and the mobile WiFi device) and each time I required the services of the help desk. I wouldn’t call it buggy, but it doesn’t have the seamless, intuitive ease of use that we are growing to expect from new devices.
5. Glass is comfortable enough to wear, but when you take it off there is no easy and safe way to fold it up and put it away safely. It’s non-wear carrying costs appear to exceed its liquidity premium.
6. The timeline seems to get crowded — but with what? — and getting out of the timeline and into other functions is not intuitive. In general the shifting around across functions involves awkwardness. There is the tap, the multiple tap, the forward and backward finger slides, and movements of your head, all of which need to be somewhat learned and coordinated.
7. Perhaps my biggest worry is that my iPad does most of what Glass is supposed to do, at least as far as I can tell. I find that my carrying costs for the iPad are quite low, especially since I am usually carrying around a bag of books anyway. When using Glass, I feel I first have had to grab an iPad, shrink it a good amount so I can no longer easily view it, tape it to my upper right forehead, and start tapping on it and sliding it instead of using the keyboard.
8. I do understand the “hands-free” point, but it does not benefit me much. I wouldn’t use Glass when driving, don’t need it when cooking, and don’t wish to take photos when doing that other thing.
The pluses are that the voice recognition seems to work pretty well and the photos and video are decent quality, on top of the remarkable fact that the device is possible at all. Wearing the Glass is extremely light and relatively comfortable. The help line is open on Christmas day and involves no wait time at all. It’s remarkable, when you first open the device, how little there is to the whole thing. You keep on thinking “so where’s the rest of it?” and there is no more, a small band encased in light plastic performs all of these remarkable functions and Glass brings us yet one step closer to a future world of pure seamless magic, albeit a magic for acrobatic eyes only.
I still feel Google Glass has remarkable potential, but for me it is not yet something I wish to use rather than analyze.
Here is one useful review, more positive than my account, and here is another review.
John Cochrane on portable health insurance
The entire Op-Ed is interesting and noteworthy, but the part on health insurance is perhaps the cutting edge of the piece analytically:
Health insurance should be individual, portable across jobs, states and providers; lifelong and guaranteed-renewable, meaning you have the right to continue with no unexpected increase in premiums if you get sick. Insurance should protect wealth against large, unforeseen, necessary expenses, rather than be a wildly inefficient payment plan for routine expenses.
People want to buy this insurance, and companies want to sell it. It would be far cheaper, and would solve the pre-existing conditions problem. We do not have such health insurance only because it was regulated out of existence. Businesses cannot establish or contribute to portable individual policies, or employees would have to pay taxes. So businesses only offer group plans. Knowing they will abandon individual insurance when they get a job, and without cross-state portability, there is little reason for young people to invest in lifelong, portable health insurance. Mandated coverage, pressure against full risk rating, and a dysfunctional cash market did the rest.
Rather than a mandate for employer-based groups, we should transition to fully individual-based health insurance. Allow national individual insurance offered and sold to anyone, anywhere, without the tangled mess of state mandates and regulations. Allow employers to contribute to individual insurance at least on an even basis with group plans. Current group plans can convert to individual plans, at once or as people leave. Since all members in a group convert, there is no adverse selection of sicker people.
I suppose my worry is this. As individuals age, they will become greater health risks and that will hold even if Cochrane keeps Medicare going. That means a higher price for their individual portable insurance. It is not clear to me under what conditions premia can be raised legally (what does “unexpected increase” mean?), but it seems the result is much higher premia for sick people, or legally-mandated low premia, but then providers will restrict access and lower the quality of care, as another means of raising the price of course. Contractually speaking, price is verifiable but quality of care is not. The overall problem is not one of “adverse selection” but rather simply that the good information of the suppliers means that insurance is hard to sell at all for many conditions.
I do understand the option of letting the premia rise, and selling insurance against that event too, and maybe that could work. Still, it is surprising how many insurance markets don’t really blossom even if it seems they would make economic sense. Just ask Robert Shiller or look at the earlier history of failed CPI futures. I’d like to experiment with Cochrane’s idea, which I think has real promise, but on a trial basis first. The question is what such a trial might actually mean, and who would be willing to give up their current arrangements to make such an experiment possible. If the recent Obamacare reactions show anything, it is that status quo bias is getting stronger all the time in matters of health care.
Os melhores filmes (que eu assisti) em 2013
1. Iron Sky – óbvio!
2. Machete – óbvio!!
3. Os Vingadores – óbvio!!!
4. Planeta Terror – óbvio!!!!
5. Fuga de Los Angeles – fazia tempo que não revia! Mais que óbvio!!!!
6. Meu Malvado Favorito 2 – preciso dizer mais?
7. _________________________ (preencha com algum filme iraniano com legenda em belga só para seus amiguinhos “cult” não ficarem falando mal de você, Claudio).
Arquivo em:Uncategorized
1232 – Loucos animais da Austrália

A fauna da Austrália agrupa uma enorme variedade de animais únicos: 83% dos mamíferos, 89% dos répteis, 90% dos peixes e insectos e 93% dos anfíbios são exclusivos deste continente . Este alto nível de animais únicos pode ser atribuído ao isolamento do continente.
E assim eu inauguro a série…

Começando pelos loucos animais que encontramos neste exótico continente. A austrália:
Peixe-Serra

- Ele é parente das arraias, tem a aparência de tubarão e uma cabeça com uma serra. Só mais um típico animal australiano.
- Essa serra na boca do peixe é usada para detectar movimentos e até ritmos cardíacos de suas presas que se enterram no fundo do oceano.
Demônio da Tasmânia

- Ele é o maior marsupial carnívoro existente hoje em dia, e é extremamente forte pro seu porte. E para quem não sabe, a Ilha da Tasmânia é um estado da Austrália.
- Ele é o animal que tem a mordida mais forte do mundo quando comparada ao tamanho do seu corpo. Destrói ossos com facilidade.
É possível achar o Demônio da Tasmânia cuti-cuti até que ele abra a boca. Isso porque ele se comunica com outros demônios a gritos. Sim, quando ele tá com fome, ele grita. Quando ele quer uma parceira, ele grita. Quando ele tá nervoso, ele grita. Sim, e não é qualquer grito não. O grito que o Demônio da Tasmânia solta é horrendo, parece uma criança-zumbi sofrendo por falta de cérebros para comer. Esse grito, há muito tempo atrás, assustava os moradores da Ilha porque eles pensavam que era o próprio demônio na porta da sua casa. Daí o nome.
Peixe-Pedra

- É o peixe mais venenoso do mundo, outra maravilha do turismo na Austrália.
- Ele é parecido com uma pedra, e muito dificil de se distinguir no meio dos corais, exceto pela nadadeira dorsal que carrega 13 espinhos com veneno mortal.
Dragão Espinhoso

- O Dragão espinhoso tem o corpo coberto com espinhos afiados para dissuadir os predadores, tornando difícil de engoli-lo. Ele também tem uma cabeça falsa sobre as suas costas: quando se sente ameaçado ele abaixa a cabeça entre as patas da frente, e só a cabeça falsa fica visível.
- Possui um sistema de defesa curioso, ao se sentir ameaçado ele esguicha um sangue falso em seu predador, que pensando estar ferido, desiste da presa.
Ornitorrinco

- O ornitorrinco é um mamífero. Também é ovíparo, põe ovos, pequenos e moles como os dos répteis. Tem bico como os patos, e membranas entre os dedos dos pés da frente, como as aves aquáticas. Não tem mamas, mas tem leite, que sai pelos poros da pele da barriga da fêmea e escorre por uns sulcos onde as crias vão lambendo-o. E tem o corpo coberto de pêlo.
- E se já era esquisito, há pouco tempo acabaram de sequenciar o seu DNA, e os resultados foram também, como cabia esperar, surpreendentes: O seu genoma é uma mistura inusitada de réptil, ave e mamífero.
- Mais outra característica especial é que fecha os olhos e os ouvidos quando está na água, e serve-se de receptores electro-sensoriais no bico para detectar os fracos campos eléctricos das presas debaixo da água, um sexto sentido específico dele.
- Os machos apresentam um sexto dedo nas patas traseiras, no qual existem exporões venenosos, que o animal usa para sua defesa.
- Somente enquanto está dentro do ovo, o ornitorrinco possui um único dente na ponta do bico, o chamado dente do ovo, que lhe serve apenas para furar a casca do ovo, perdendo-o logo em seguida.
E falando em ornitorrinco, clique aqui para ver o motivos de Deus em ter criado ele.
Fonte de pesquisa: http://www.oversodoinverso.com
1336 – Psicografando…

Para onde vão os trolls?
Ipad Chair For Newborns
Just in case you weren’t disgusted enough by the iPad potty for toddlers, Fisher-Price has come out with the “Ipad Apptivity Seat”, which it explicitly says is for newborns. Slap your day-old human into this thing and start feeding him apps and videos before he even gets a chance to experience unmediated human interaction. I’m sure there’s absolutely no downside to that.
If you think I’m exaggerating, check out the gallery of images that the manufacturer has provided to show that, yes, it’s really for tiny babies to be strapped into and Ludovico’ed.
Are your eBooks reading you?
“What writer would pass up the opportunity to peer into the reader’s mind?” she asked.
Scribd is just beginning to analyze the data from its subscribers. Some general insights: The longer a mystery novel is, the more likely readers are to jump to the end to see who done it. People are more likely to finish biographies than business titles, but a chapter of a yoga book is all they need. They speed through romances faster than religious titles, and erotica fastest of all.
At Oyster, a top book is “What Women Want,” promoted as a work that “brings you inside a woman’s head so you can learn how to blow her mind.” Everyone who starts it finishes it. On the other hand, Arthur M. Schlesinger Jr.’s “The Cycles of American History” blows no minds: fewer than 1 percent of the readers who start it get to the end.
Oyster data shows that readers are 25 percent more likely to finish books that are broken up into shorter chapters. That is an inevitable consequence of people reading in short sessions during the day on an iPhone.
…He contrasted two romance novels. One had few Amazon reviews and little promotion, but Scribd’s data showed 6 out of 10 readers were finishing it — above average for the genre. Another romance had hundreds of reviews on Amazon, but only about 4 out of 10 readers bothered to finish it. They began closing the book, the data showed, when the writer plunged deeper into fantasy. Maybe this was not a good idea.
Some writers, of course, might not be receptive to hearing this.
“If you aren’t careful, you could narrow your creativity. You won’t take risks,” said Ms. Loftis, the young adult novelist. “But the bigger risk is not giving the reader what she wants. I’ll take all the data I can get.”
There is more here.
Mande Mais Dinheiro usando MIP
Albener PessoaPresente surpresa de natal: um post do Ricbit
O filho então precisava mandar uma mensagem para o pai, pedindo mais dinheiro. Naquela época, o meio de comunicação mais rápido era o telégrafo, mas você pagava por cada letra enviada. Por isso, a mensagem tinha que ser bastante sucinta. Depois de pensar um pouco, mandou para o pai a mensagem "SEND+MORE=MONEY".
Ao receber a mensagem, primeiro o pai ficou perplexo. Quanto dinheiro ele precisava mandar? Depois de pensar um pouco, ele logo concluiu: "Ah, eu preciso mandar $10652 para ele!".
Como o matemático pai chegou a essa conclusão?
Esse problema é um exemplo de Criptoaritmética. A solução é trocar as letras por números, de tal maneira que a cada letra corresponda um único número, e de modo que a adição resultante seja verdadeira. No caso descrito acima, só existe uma solução válida, que é M=1, Y=2, E=5, N=6, D=7, R=8, S=9 e O=0.
Você pode achar essa solução usando apenas deduções lógicas. Por exemplo, M precisa ser 1 porque o carry (vai-um) da primeira coluna nunca pode ser maior que um. Com raciocínios similares você descobre os números restantes.
Resolver problemas assim é bastante divertido! Meu primeiro contato com Criptoaritmética foi na revista Micro Sistemas #46, de julho de 85, onde eles apresentam um gerador de criptogramas, para que você possa resolvê-los na mão. Na época eu era viciado, gostava tanto que até cheguei a portar esse gerador para Pascal já na época dos PCs.
Já na revista MSX Micro #15, de maio de 88, um desafio mais difícil foi proposto pelo Nabor Rosenthal: escrever um programa de computador que resolva sozinho os criptogramas!
Como fazer um programa assim? Existem três abordagens imediatas. A primeira é usar força bruta para enumerar todas as combinações entre letras e números. Cada uma das 8 letras pode assumir 10 valores distintos, então o tamanho do espaço de estados é 8**10 = 1073741824 combinações.
A segunda abordagem é notar que duas letras não podem ter o mesmo número, então você não precisa visitar todos os estados, só aqueles que contém permutações dos oito dígitos escolhidos. Assim, o espaço fica apenas com binomial(10, 8)*fatorial(8) = 1814400 combinações, quase mil vezes menor que o anterior.
A terceira é usar backtracking para eliminar da árvore de busca as combinações inválidas. Por exemplo, se você já determinou que D=7 e E=5, então Y precisa necessariamente ser 2 porque é a única possibilidade que faz a última coluna ficar correta. Essa opção é mais complicada de implementar, mas é ainda mais rápida que a anterior.
Nesse ano eu fiz um curso de Discrete Optimization no Coursera, e aprendi um método novo para resolver criptogramas. Porém, antes de explicar esse método novo, vale a pena fazer uma pausa para estudar um problema mais simples.
O problema da dieta
Enquanto o dinheiro do pai não chegava, o estudante estava dormindo de hóspede numa fazenda da região. Embora ele não pagasse nada para dormir no celeiro, ele ainda tinha que comprar comida. E só tinham três comidas disponíveis para comprar: espigas de milho, pães e copos de leite. Dado que ele precisa de pelo menos 2000 calorias por dia, e 5000 unidades de vitamina A, qual é o menor custo diário que ele pode ter para conseguir todos os nutrientes que precisa?
| Porção | Calorias (kcal) | Vitamina A (IU) | Preço |
| Espiga de milho | 72 | 107 | $ 0.08 |
| Copo de leite | 121 | 500 | $ 0.23 |
| Pão | 65 | 0 | $ 0.05 |
Esse problema pode ser expresso através de uma série de inequações:
Na literatura, problemas com esse formato são estudados em Programação Linear, e existem vários algoritmos eficientes para resolvê-los, como os métodos de Ponto Interior, que podem ser implementados de forma a garantir uma solução em tempo polinomial. Na prática, usa-se mais o Simplex, que tem um pior caso ruim, mas também é polinomial no caso médio.
Usando essas técnicas para resolver o problema, temos que a melhor solução é comprar 17.13 espigas e 6.33 copos de leite, gastando um total de $2.82.
Mas agora tem um problema: eles não vendem 17.13 espigas, a quantidade precisa ser um inteiro. Ou você compra 17 espigas, ou compra 18. Fácil de resolver, é só arredondar para cima né? Leva-se 18 espigas e 7 copos de leite, gastando $3.05, e garantindo todos os nutrientes que você precisa.
Porém, se você fizer isso, você vai perder dinheiro! Pode conferir: se você comprar 10 espigas, 8 copos de leite, e 5 pães, vai gastar só $2.89, e continuar garantindo o mínimo de nutrientes diários. Os métodos de programação linear não funcionam quando os valores precisam ser inteiros!
Uma maneira de chegar a esse resultado é quebrando o problema em dois. Se a sua solução tem um valor fracionário, como 17.13, então você roda o Simplex mais duas vezes: na primeira adicionando a inequação M≤17, e na segunda, M≥18. Se o resultado tiver só variáveis inteiras, beleza, está resolvido. Senão, você pega a variável fracionária e quebra em dois de novo. Esse método na literatura é a Programaçao Inteira Mista (ou apenas MIP).
Opa! Peraí! Os métodos de programação linear eram polinomiais, e abrindo uma árvore em cada variável nós transformamos o método em exponencial. É uma perda de performance inaceitável!
Pois é, mas não tem jeito. Embora a programação linear seja polinomial, a programação inteira é NP-hard. Se você achar um método polinomial para resolver esse problema, então você também provou que P=NP.
Nem tudo está perdido, entretanto. Existem vários métodos para otimizar a busca, de modo que você não precise visitar todos os nós da árvore. Por exemplo, você pode usar branch and bound, branch and cut, Gomory cuts, e mais inúmeros truques que deixam o número de nós baixos o suficiente para o método ser viável na prática.
Implementar esses métodos pode ser bem difícil. A boa notícia é que você não precisa fazê-lo! Existem inúmeras bibliotecas prontas que implementam tudo isso para você, em quase todas as linguagens do mercado. A minha preferida é a SCIP, que é open source e bastante competitiva com as soluções comerciais. O único problema dela é que o público-alvo são os pesquisadores da área, então a API é bem complexa e intimidadora para quem está começando agora. Se você quer começar agora a brincar com MIP, eu tenho uma alternativa melhor.
Usando EasySCIP
Já que a SCIP é boa, mas é difícil de usar, meu primeiro instinto foi escrever uma abstração sobre ela que torne a programação mais simples. E assim surgiu o EasySCIP, um binding em C++ que é fácil de usar. Para mostrar como é simples, vamos implementar o problema da dieta em EasySCIP.
Primeiro você cria uma instância do EasySCIP:
MIPSolver solver;
Depois, cria as variáveis, uma para cada tipo de alimento. Na criação da variável, você especifica os limites onde ela pode variar (digamos, de 0 a 1000). Além disso, você passa o coeficiente dessa variável na função que vai ser minimizada (no nosso caso, é o preço de cada item):
Variable corn = solver.integer_variable(0, 1000, 0.08); Variable milk = solver.integer_variable(0, 1000, 0.23); Variable bread = solver.integer_variable(0, 1000, 0.05);
Agora você adiciona as inequações (constraints). Para cada inequação, você passa o coeficiente da variável, e os limites inferiores e superiores. No nosso caso, só nos importam os limites inferiores, então eu chutei um valor alto para o superior. A primeira inequação fica assim:
Constraint calories = solver.constraint(); calories.add_variable(corn, 72); calories.add_variable(milk, 121); calories.add_variable(bread, 65); calories.commit(2000, 200000);
Na segunda inequação você nem precisa adicionar a variável do pão, porque ele não tem nenhuma vitamina A.
Constraint vitamin_a = solver.constraint(); vitamin_a.add_variable(corn, 107); vitamin_a.add_variable(milk, 500); vitamin_a.commit(5000, 500000);
Agora é só resolver e ler os valores finais:
Solution sol = solver.solve(); cout << "Corn: " << sol.value(corn) << "\n"; cout << "Milk: " << sol.value(milk) << "\n"; cout << "Bread: " << sol.value(bread) << "\n";
O programa completo você pode ver no github. Rodando o programa, ele retorna a solução que esperávamos:
Corn: 10 Milk: 8 Bread: 5
Criptoaritmética com MIP
O problema então deixa de ser programação e passa a ser modelagem. Qual o melhor modelo que representa seu puzzle? Um truque que funciona na maioria das vezes é introduzir variáveis binárias que codificam as informações do seu puzzle.
Por exemplo, a letra S vai ser associada a um dos dígitos de 0 a 9, mas ainda não sabemos qual. Vamos então introduzir dez variáveis binárias: bS0, bS1, .., bS9. Cada uma deles pode assumir o valor 0 ou 1. Por exemplo, se na solução final descobrirmos que S=9, então teremos bS9=1, e as outras nove variáveis são zero.
Mas sabemos que a letra S precisa estar associada a um dígito, e não mais que um. Isso pode ser expresso como a nossa primeira equação:
Repetindo uma equação dessas para cada letra, nós garantimos que a cada letra corresponde um dígito. Mas isso não é suficiente, você também precisa garantir o oposto: a cada dígito precisa corresponder uma letra. Sem essa condição adicional, você poderia ter uma solução do tipo S=9 e E=9 (mas não podemos ter o mesmo dígito em duas letras distintas).
A solução é parecida com a anterior. Para o dígito 9, por exemplo, teremos:
Note que temos apenas oito letras distintas para dez dígitos, então pelo menos dois dígitos vão sobrar. Como não temos como garantir qual dígito será utilizado, usamos uma inequação ao invés de uma equação.
Outra regra que precisa ser modelada é que nenhum número pode começar com zero. Isso é o mesmo que dizer que as letras S e M não podem ser zero. Mais duas equações resolvem isso:
Agora falta só modelar a soma em si. Antes de começar, vale notar que o problema tem quatro variáveis binárias escondidas que você precisa levar em conta: os carrys de cada coluna.
Agora basta escrever uma equação por coluna. Para a coluna mais à direita, por exemplo, teríamos algo do tipo D+E=Y+10c0 em decimal. Usando as nossas variáveis binárias, a equação completa fica:
Parece assustador, mas é só uma equação linear simples. Fazendo mais uma dessas para cada coluna do nosso puzzle, o modelo está quase completo: falta só uma função objetivo. Se vamos usar MIP, precisamos minimizar alguma coisa. Mas o que minimizar? Nosso modelo já está completo sem a necessidade de minimizar nada, então podemos fornecer uma função constante para ele minimizar. Na linguagem da área, nós estamos buscando feasibility, e não optimality.
Com todas as inequações prontas, podemos rodar o modelo no EasySCIP. O código completo está no github, e, após rodá-lo em meu computador, tive a resposta em 0.116s, o que é bastante respeitável! Mas ainda dá para melhorar :)
Criptoaritmética com MIP, segundo modelo
Eu sei que gostar de resolver criptoaritmética parece coisa da maluco, mas eu não sou o único maluco nesse mundo, tem o Knuth também! No volume 4A do Art of Computer Programming, ele dá uma dica muito boa para resolver criptogramas: a análise das assinaturas. Vamos isolar a letra E no puzzle original, trocando os lugares onde ela aparece por 1, e onde não aparece por 0:
Após a substituição, nós obtemos a assinatura da letra E, que vale 100+1-10, ou seja, 91. A sacada do Knuth é que, na solução final, a soma das assinaturas precisa necessariamente valer zero:
Usando variáveis inteiras ao invés de variáveis binárias, poderíamos colocar essa equação diretamente no modelo, e aí não precisaríamos das equações de cada coluna! Mas podemos fazer ainda melhor: o MIP sempre quer uma função para minimizar, então podemos mandar ele minimizar a soma das assinaturas. Assim, os métodos de branch and bound implementados pelo SCIP podem jogar fora mais nós da árvore durante o processamento, o que acelera a busca.
O único problema é ele resolver minimizar tanto a soma das assinaturas, que ela acabe ficando negativa. Para evitar isso, é só adicionar essa restrição manualmente. Por exemplo, ele pode minimizar a variável X, onde X satisfaz:
Ainda precisamos adicionar as regras de que a cada letra corresponde um único dígito e vice-versa. Vamos manter as variáveis binárias do modelo anterior, e ensinar o modelo a converter entre variáveis binárias e variáveis inteiras. Por exemplo, a letra D ficaria:
Com isso o modelo está completo. O código está no github, e rodando no EasySCIP, ele chega no mesmo resultado que o modelo anterior, porém usando apenas 0.052s, quase metade do tempo!
Conclusão
Quando eu devo usar MIP ao invés de outros métodos, como backtracking? O backtracking vai criar uma divisão na árvore de busca cada vez que definir o valor de uma variável, mas o MIP roda uma iteração de programação linear em cada nó, o que potencialmente pode definir várias variáveis ao mesmo tempo. A minha experiência é que o MIP ganha sempre que você conseguir criar um modelo que permita essa otimização global.
Como comparação, lembre que a força bruta examinava 1073741824 nós, e a análise de permutações visitava 1814400 nós. Olhando no log do EasySCIP, eu vejo que o primeiro modelo com variáveis binárias visitou apenas 9 nós, e o segundo modelo com assinaturas resolveu tudo em um único nó! A programação linear achou a solução inteira sem nenhum branch! Pelos números, é bem claro que vale a pena aprender a escrever modelos MIP :)
m1ssred: chemical reaction
Albener Pessoa(via Rosalind)
Mentirinhas #542
Albener PessoaEu nao gosto eh do calor. Frio eh tudo de bom.
A Mouse You Can’t Touch
Celluon, the geniuses behind the laser keyboard for the iPad have stepped up their game with the evoMouse, which is a mouse you can’t touch. It uses a laser to tell where your finger is and it costs $119.99.
Morgellons Clearing
This album, entitled “Morgellons Clearing,” bearing a cover art (above) of a sky full of chemtrails, is purportedly an album which will remove your Morgellons, should you listen to the whole thing. Each track is fifteen solid minutes of a single tone. If you can make it past five seconds the first one (warning, it’s loud) I don’t blame the Morgellons for leaving your body. (The entire “album” is over two and a half hours long.)
Lest you think that Morgellons Clearing is Jayme Hunt’s only masterpiece, Sinusitis Sinus Pain is 57 minutes of hell, a piercing tone somewhere above 10,000 Hz which set off my very real tinnitus after a few seconds of playing through my computer speakers. Thankfully, Restless Leg Syndrome Relief is pitched lower, and somewhat forgiving, at only twenty minutes long.
And if you’re worried about those chemtrails up there in the picture, J-Hunt has just the salve for your chemtrail-induced fatigue. A hundred and five minutes of “Chemtrails Clearing”, tracks one through seven.
"The problem with political correctness is it teaches you to not say racist shit rather than not be..."
Albener Pessoa(via firehose)
- Jocelyn (theuppitynegras.tumblr.com)
This: just this.
Filtros pornôs ingleses estão bloqueando sites educativos, nos dois sentidos

Lembra quando noticiamos que a Inglaterra estava obrigando os provedores a filtrar por default o conteúdo “questionável” dos novos usuários? Que o consenso era que quem quisesse mesmo acessar pr0n o faria, independente de filtros, e que havia uma aura de autoritarismo orwelliano em volta de tudo isso?
Pois é, piorou. Esqueci de considerar um componente fundamental dessas iniciativas mal-pensadas, bem-intencionadas e que nunca dão certo: a incompetência humana.
Agora, com os filtros no ar, a BBC descobriu que os tais filtro bloquearam um site de educação sexual para crianças que já educou 81 mil jovens americanos, em mais de 20 anos de existência. Marcou como pornográfico e bloqueou o site do Centro Feminino de Estupro e Abuso Sexual de Edimburgo, e a helpline para Denúncia e Auxílio em casos de violência doméstica de Doncaster, também rodou. Pornô.
Do outro lado, a BBC testou (for science!) 6 sites pornográficos. 7% não foram bloqueados. Os resultados variam de provedor para provedor. A SKY bloqueou 99% dos sites adultos, mas levou junto 6 sites voltados para auxílio de pessoas com vício em pornografia.
Ou seja: rodaram os sites legítimos, úteis e com propósito de ajudar, mas ficaram 1% dos sites pornô, que na Internet significa algo entre 123,4 x 10googolplexo sites.
Parabéns aos envolvidos, mal posso esperar a campanha de publicidade de 25 milhões de libras esterlinas que soltarão em 2014, explicando como esses filtros são uma excelente idéia.
The post Filtros pornôs ingleses estão bloqueando sites educativos, nos dois sentidos appeared first on Meio Bit.
'Evasi0n' iOS 7 Jailbreak Controversy Surrounding Piracy and Chinese Partnership
Following Freeman's comments, two tweets by developer i0n1c claims that the Chinese company Taig paid the Evad3rs development team "a big pile of money" to release the jailbreak in order to bundle its app store onto devices.

Now, the Evad3rs development team behind the jailbreak has posted an open letter to the jailbreak community on its website, trying to address the various concerns surrounding the method and emphasizing the safety and security of its users.
The team admitted that it was indeed approached by a company with an offer to include Taig with the jailbreak in China, feeling that it was "well-suited to meet the needs of users for the Chinese market." The team also notes that users are not locked into Taig, with the program giving users given the ability to uninstall the Chinese app store and install Cydia.
Also addressed was the speculation concerning the possible disclosure of exploits and methods to Taig:
Taig has never asked us to disclose our exploits to them, let alone sell them. We were simply asked to bundle their third-party app store in China in a similar way we bundle and distribute Cydia around the world as an additional App Store, and in a similar way to how previous jailbreaks like blackra1n have bundled non-Cydia stores.Furthermore, the developers also claim that they were unaware that Taig contained pirated apps upon access, and say they are removing instances of piracy and that Taig had contractually agreed not to serve pirated apps. They say they "will continue to monitor this issue and work to resolve it completely" and that Taig will be removed if it can't be resolved.
Currently, Evasi0n is available for OS X and Windows as an untethered jailbreak.
















.jpg)





























