火烈鸟为什么是红色的| 雅典娜是什么神| 负面情绪是什么意思| 二十七岁属什么生肖| 柔五行属什么| 涉嫌是什么意思| 塑料是什么材料| 1020是什么星座| 长疖子是什么原因| 霸王硬上弓是什么意思| 阳历7月份是什么星座| 口干口苦是什么原因引起的| 乾是什么生肖| 孔雀开屏什么意思| 看守所和拘留所有什么区别| 荷花的别称是什么| 换药挂什么科| 什么东西最刮油减肥| 生气对身体有什么危害| 脾胃虚寒吃什么食物| 什么食物含镁| 类风湿因子高是什么原因| 基点是什么意思| 乳房胀痛吃什么药| 嘴唇紫黑是什么原因| 91是什么意思| 日可以加什么偏旁| 三严三实是什么| 急性子是什么意思| 元武道是什么| 仿佛是什么意思| 1997年7月1日属什么生肖| 室早三联律是什么意思| 女人梦见棺材代表什么| 北豆腐是什么| 黄历破屋是什么意思| b什么意思| 转氨酶偏高是什么原因引起的| 肚子响是什么原因| 宋朝之前是什么朝代| mw是什么单位| 专一是什么意思| 脸无缘无故的肿是什么原因| 5月5是什么星座| 梨的功效与作用是什么| 4岁属什么生肖| 米氮平是什么药| 袖珍是什么意思| 长史相当于现在什么官| 世界第一长河是什么河| 口蘑是什么| 贼眉鼠眼是什么生肖| 去韩国需要办理什么手续| 老舍的原名是什么| 派出所长是什么级别| 例假不能吃什么水果| 卸磨杀驴是什么意思| 失联是什么意思| 4月10号是什么星座| 肾外肾盂是什么意思| 赤子之心什么意思| 为什么姨妈迟迟不来| 小三阳吃什么药能转阴| 腿上有白点是什么原因| 人头什么动| 婆婆妈妈什么意思| 河豚有毒为什么还吃| 核磁共振什么时候出结果| 痔疮是什么样子| 偏科是什么意思| 烟头属于什么垃圾| 客套是什么意思| 血液净化是什么意思| 8月10号什么星座| skp是什么品牌| 柔然人是现在的什么人| 落魄是什么意思| 什么动物倒着走| 什么是红颜知己| 咳嗽有血是什么原因| 松花粉对肝有什么好处| 6月是什么生肖| 血小板计数偏高是什么意思| 梦见梨是什么意思| 20分贝相当于什么声音| 什么情况下月经推迟| 学习机什么牌子好| 4月15号是什么星座| 什么的事| 豆奶不能和什么一起吃| 梦见厕所是什么预兆| 足底筋膜炎挂什么科| 楚门的世界是什么意思| 甲状腺结节吃什么中药| 花生什么时候收| 三角梅什么时候开花| 精液长什么样| 鼻子旁边长痘是什么原因| 满月送什么礼物好| 暗网里面有什么| 黑色的蜂是什么蜂| 已知晓是什么意思| 小孩子坐飞机需要什么证件| 明年什么生肖| 毛主席什么时候死的| 扁桃体2度是什么意思| 老睡不着觉是什么原因| 千山暮雪结局是什么| 花胶有什么功效| 软组织密度影什么意思| 胃肠道感冒吃什么药| 脚气是什么症状| 胃出血吃什么药好| 劫富济贫是什么意思| 美色是什么意思| 爽约是什么意思| 鼻涕倒流到咽喉老吐痰吃什么药能根治| 什么原因导致有幽门杆菌| 早上五点半是什么时辰| 眼什么手什么| 应激反应是什么意思| 梦见粽子是什么预兆| 甲功四项是什么检查项目| 鸡的祖先是什么动物| 就让我爱你把你捧在手心里是什么歌| 慢性肾炎是什么原因引起的| 什么人容易得心脏病| tdp是什么| 先敬罗衣后敬人是什么意思| 10.25是什么星座| 梦到扫地是什么意思| 95年属于什么生肖| 勤去掉力念什么| 1990年是什么年| 胃反流吃什么药| 以至于是什么意思| 肚子经常胀气什么原因| 献血后吃什么补血最快| 降头是什么意思| 事不过三是什么意思| 一什么车厢| 海螺吃什么| 口苦口干是什么原因引起的| 茶叶里面含有什么成分| 东北属于什么气候| 早晨起来口干口苦是什么原因| 尿的颜色有点红褐色是什么原因| 5月29日什么星座| 风湿有什么症状| 口酸吃什么药效果好| 有什么不能说| 胃出血是什么原因引起的| aimer是什么意思| 小孩肠胃感冒吃什么药比较好| 来月经吃什么| 尿糖2个加号是什么意思| 扁桃体发炎不能吃什么东西| 偏头痛什么症状| 化疗为什么要剃光头| 朝三暮四是什么生肖| 心功能三级是什么意思| cpr是什么| 肾衰透析病人吃什么好| 木耳和什么菜搭配好吃| 黑眼圈是什么原因造成的| fda是什么| 插入是什么感觉| 狗狗为什么喜欢舔人| 什么的季节| 梦见梳头发是什么意思| 扭伤挂什么科| 什么鱼清蒸最好吃| 腊肠和什么菜炒最佳| 螨虫是什么| 湖北属于什么地区| 吃什么东西涨奶最快| 取保候审需要什么条件| 白酒优级和一级有什么区别| 吃什么奶水多| 口琴买什么牌子好| ovs是什么品牌| 介入医学科是什么科室| 什么是穴位| 姝字五行属什么的| 男人吃秋葵有什么好处| 六月初九是什么星座| 孕妇喝什么水比较好| 胆红素高吃什么药| 蓝加黄是什么颜色| 尿失禁是什么症状| 什么的海藻| 耘字五行属什么| 大大是什么意思| 儿童便秘吃什么最快排便| 血红蛋白浓度偏高是什么原因| 总胆汁酸高是什么原因| 电测听是什么| 什么网名好| 为什么早上起来恶心想吐| 荨麻疹能吃什么水果| 热鸡蛋滚脸有什么作用| 小结是什么意思| 怀男孩和女孩有什么区别| 不全性骨折是什么意思| 晚上7点是什么时辰| 奶头痛是什么原因| 生灵涂炭是什么意思| 浪琴手表属于什么档次| 久之的之是什么意思| 什么是琥珀| 锁骨属于什么骨| 牛奶什么时候喝最好| 杏林春暖的杏林指什么| 女人平胸是什么原因| 木字旁与什么有关| 卜在姓氏里读什么| 葛根粉有什么功效| dunhill是什么品牌| n是什么牌子| 11月22是什么星座| 人体最大的排毒器官是什么| 氯喹是什么药| 痛风能吃什么水果| 吃什么祛湿| 瓜子脸剪什么发型好看| 少一个睾丸有什么影响| xswl什么意思| 知趣是什么意思| 处女男和什么星座最配| 什么情况下安装心脏起搏器| 96615是什么电话| 葫芦挂在家里什么位置好| 炖什么汤对肺部最好| 直肠癌是什么症状| 茉莉花茶适合什么人喝| 九牧王男装是什么档次| 乌鸡白凤丸男性吃治疗什么| 结巴是什么原因引起的| 梦见大老鼠是什么意思| 有何指教是什么意思| 舌苔发白是什么问题| 风水宝地是什么意思| 吃什么药减肥效果好| 从胃到小腹连着疼是什么原因| 虾不能和什么东西一起吃| 天然是什么意思| 双侧下鼻甲肥大是什么意思| 鸡蛋白过敏指的是什么| 办出国护照需要什么手续| 小腿疼痛挂什么科| 什么的什么好吃| 苦瓜不能和什么一起吃| 指甲容易断裂是什么原因| 青少年长白头发是什么原因| 姨妈安全期是什么时候| 漂白粉是什么| 二级护理是什么意思| 督邮相当于现在什么官| 看扁桃体挂什么科| 上午十点多是什么时辰| 怀孕是什么脉象| 二月开什么花| 什么的波涛| 阴部潮湿是什么原因| 百度
information theory

上呼吸道感染吃什么消炎药

Locally correctable codes need barely any information to fix errors, but they’re extremely long. Now we know that the simplest versions can’t get any shorter.

Myriam Wares for Quanta Magazine

Introduction

If you’ve ever sent a text message, played a CD, or stored a file in the cloud, you’ve benefited from error correction. This revolutionary idea dates back to the 1940s, when researchers first realized that it’s possible to rewrite any message in a form that allows later corruption to be easily reversed.

Over the years, researchers have developed many ingenious schemes, called error-correcting codes, that encode data in different ways and use different procedures to fix errors. But to theoretical computer scientists, few are as compelling as so-called locally correctable codes. These codes have two simultaneous properties that sound almost contradictory: Any error can be corrected by reading the encoded data in just a few places, yet no attacker can foil this correction procedure by selectively tampering with the code. It’s as if you could recover any page torn out of a book by just glancing at a few others.

“It’s quite a magical phenomenon,” said Tom Gur, a computer scientist at the University of Cambridge. “A priori, it’s not obvious that such a mathematical object could exist at all.”

But this magic comes at a steep cost. The only known examples of locally correctable codes are extremely inefficient — encoding any message also makes it exponentially longer. Entire books encoded this way would be far too unwieldy.

Computer scientists have long wondered whether better locally correctable codes are possible. They’ve focused especially on codes that use only three queries to correct any error, hoping that this severe restriction might make these codes easier to understand. But even this simple case has stumped researchers for over 20 years.

Now the computer scientist Pravesh Kothari of Carnegie Mellon University and his graduate student Peter Manohar have finally proved that it’s impossible to build a three-query locally correctable code that avoids that exponential cost. It may be a negative result, but anything that clarifies the limits of error correction is exciting to researchers, especially because the mathematics of locally correctable codes crops up in areas far removed from communication.

“This result is amazing,” said Shubhangi Saraf, a computer scientist at the University of Toronto. “It’s a huge breakthrough.”

Strength in Numbers

To understand error correction, imagine the data you’d like to protect as a sequence of bits, or 0s and 1s. An error, in this model, can be any unwanted flip of a 0 into a 1 or vice versa, whether it’s due to a random fluctuation or deliberate tampering.

Suppose you want to send a message to a friend, but you’re concerned that errors might change the meaning. One simple strategy is to replace each 0 in your message with 000 and each 1 with 111. If your friend sees a part of the message that doesn’t contain three identical bits in a row, they’ll know that an error has occurred. And if errors are random and relatively rare, then any string of 110 is much more likely to be a corrupted 111 than a corrupted 000. A simple majority vote within each triplet will suffice to correct most errors.

This scheme, called the repetition code, has the virtue of simplicity, but little else to recommend it. For one thing, it requires tripling the length of every message just to deal with relatively infrequent errors, and if there’s a decent chance of two adjacent errors, we’ll need even more redundancy. Worse still, it quickly becomes useless if errors aren’t random, such as when attackers actively try to sabotage the code. In the repetition code, all the information needed to correct a given bit is stored in just a few other bits, leaving it vulnerable to a targeted attack.

Fortunately, many error-correcting codes fare better. One famous example, called the Reed-Solomon code, works by transforming messages into polynomials — mathematical expressions like x2 + 3x + 2 that consist of different terms added together, each with a variable (such as x) raised to a different power. Encoding a message using a Reed-Solomon code involves building a polynomial with one term for each character in the message, then plotting the polynomial as a curve on a graph and storing the coordinates of points that lie on the curve (taking at least one more point than the number of characters). Errors might push a few of these points off the curve, but if there aren’t too many errors, only one polynomial curve will pass through most of the points. That curve almost certainly corresponds to the true message.

Reed-Solomon codes are hyperefficient — you only need to store a few extra points to correct errors, so any encoded message is only marginally longer than the original. They’re also less vulnerable to the sort of targeted disruption that would spell disaster for the repetition code, because the information used to correct an error anywhere is distributed across the entire encoded message.

Think Globally, Act Locally

The strength of the Reed-Solomon code stems from interconnectedness. But precisely because of that interconnectedness, there’s no way to fix a single error in an encoded message without reading the whole thing. That may not sound like a problem in the context of communication: If you’re sending a message, you probably want the recipient to read all of it. But it can be a liability in data storage — another major application of error correction.

Consider a company that stores users’ emails in the cloud — that is, on a vast array of servers. You can think of the whole collection of emails as one long message. Now suppose one server crashes. With a Reed-Solomon code, you’d need to perform a massive computation involving all the encoded data to recover your emails from that one lost server. “You would have to look at everything,” said Zeev Dvir, a computer scientist at Princeton University. “That could be billions and billions of emails — it could take a really long time.”

Researchers use the term “local” to describe codes that use only a fraction of the encoded message to spot errors or correct them. The simple repetition code has something of this local character, but that’s precisely what makes it so vulnerable to tampering. A locally correctable code, by contrast, gets the best of both worlds — it can correct an error in any bit with just a few queries, all without losing the interconnectedness that makes Reed-Solomon codes so resilient.

“This is a really stringent notion,” Kothari said.

In 1954, David E. Muller (left) and Irving S. Reed invented a way to encode data that makes it possible to fix errors with very little information — at the cost of making messages much longer.

Courtesy of the University of Illinois Archives (left); Courtesy of IEEE AESS

The most famous examples of locally correctable codes are versions of a venerable error-correcting code invented in 1954 by the mathematicians David Muller and Irving Reed (who also helped develop Reed-Solomon codes). Like Reed-Solomon codes, Reed-Muller codes use polynomials with many terms added together to encode long messages.

The polynomials used in Reed-Solomon codes involve a single variable, x, so the only way to add more terms is to use higher powers of x. This results in a curve with many wiggles that can only be pinned down by looking at many points. Reed-Muller codes instead use polynomials in which each term can contain multiple variables multiplied together. More variables mean more ways to combine them, which in turn offers a way to increase the number of polynomial terms without raising any individual variable to such high powers.

Reed-Muller codes are very flexible. You can encode longer messages by increasing the highest power that appears in the polynomial, increasing the number of variables, or both. To make a Reed-Muller code locally correctable, you simply cap the maximum power of each variable at a small constant value, and handle longer messages by increasing only the number of variables.

For a three-query locally correctable code specifically, that maximum power is set at 2. Then as far as each individual variable is concerned, the polynomial encoding the message traces out a simple parabola. To determine the exact shape of that parabola, you only need to examine the curve at three points. What’s more, with many variables there are many such parabolas, any of which can be used to correct errors. That’s what makes Reed-Muller codes so resilient.

Merrill Sherman/Quanta Magazine

Unfortunately, the Reed-Muller code has a serious drawback: The number of bits required to encode a message increases exponentially with the number of variables. If you want a highly local code that corrects errors with just a handful of queries, you’ll need a lot of variables for long messages, and the Reed-Muller code will quickly become useless in practice.

“Exponential in this case is very bad,” Dvir said. But is it inevitable?

Correctable or Decodable?

As computer scientists tried and failed to find more efficient locally correctable codes, they began to suspect that such codes weren’t possible at all. In 2003, two researchers proved that there’s no way to beat the Reed-Muller code using only two queries. But that’s as far as anybody got.

“Once you go to three, our knowledge becomes very sketchy,” Kothari said.

The next breakthrough just complicated matters further. In two papers published in 2008 and 2009, the computer scientists Sergey Yekhanin and Klim Efremenko showed how to construct three-query codes that were more efficient than Reed-Muller codes, but these codes were not quite locally correctable. Instead, they had a subtly different property called local decodability.

To understand the difference, let’s again imagine a cloud storage provider that combines users’ data into one long message and protects it using an error-correcting code. Both locally correctable codes and locally decodable codes can correct an error in any bit of the original message with just a few queries.

But every error-correcting code also requires extra bits that weren’t in the original message — that’s why encoding a message makes it longer. The two types of codes differ in how they treat these additional bits. Locally decodable codes make no promises about the number of queries needed to correct errors in these bits. But in a locally correctable code, an error in any of the extra bits can be fixed in precisely the same way as an error in any bit of the original message.

“Everything that you store, whether it’s the original data of users or the redundancy and the check information — all of this can be locally corrected,” said Madhu Sudan, a computer scientist at Harvard University.

Though different in principle, local correctability and local decodability always seemed interchangeable in practice before 2008 — every known locally decodable code was also locally correctable. Yekhanin and Efremenko’s discovery raised the possibility of a fundamental difference between the two conditions. Or perhaps it was possible to modify Yekhanin and Efremenko’s codes to make them locally correctable. That would put the two conditions on equal footing once more, but it would also mean that researchers had been mistaken about how efficient three-query locally correctable codes could get. Either way, conventional wisdom would have to change.

Borrowing Logic

Kothari and Manohar finally resolved that tension by adapting a technique from a different area of computer science: the study of so-called constraint satisfaction problems. Trying to coordinate dinner plans with a group of friends is a constraint satisfaction problem of a sort. Everyone has choices they’ll accept and choices they’ll veto. Your job is to either find a plan that satisfies everybody, or, if there is no such plan, figure that out as soon as possible.

Peter Manohar realized that the new technique he and Kothari had developed would be especially well suited to studying the limits of locally correctable codes.

Sean Means

There’s an inherent asymmetry between those two possible outcomes. An acceptable solution may not be easy to find, but once you have it, it’s easy to convince anyone else that it will work. But even if you know that the problem really is “unsatisfiable,” there may not be an example that provides proof.

In 2021, Kothari and Manohar, together with Venkatesan Guruswami of the University of California, Berkeley, made a major breakthrough in the study of constraint satisfaction problems using a new theoretical technique for identifying those tricky unsatisfiable cases. They suspected that the new method would be a powerful tool for solving other problems too, and Guruswami’s graduate student Omar Alrabiah suggested that they look at three-query locally decodable codes.

“This was a nail with a hammer in our hand, so to speak,” Kothari said.

Yekhanin and Efremenko’s surprising results had shown that three-query locally decodable codes could be more efficient than Reed-Muller codes. But were their codes the best ones possible, or could three-query locally decodable codes get even more efficient? Kothari, Manohar, Guruswami and Alrabiah thought their new technique might be able to prove limits on how efficient such codes could get. Their plan was to build a logical formula encompassing the structure of all possible three-query locally decodable codes of a given size, and prove it unsatisfiable, thereby showing that no such code could exist.

The four researchers took a first step in that direction in 2022, setting a new limit on the maximum efficiency of three-query locally decodable codes. The result went well beyond what researchers had been able to achieve with other techniques, but it didn’t rule out all codes more efficient than Yekhanin and Efremenko’s.

Kothari and Manohar suspected they could go further. But progress stalled until Manohar jotted down a quick back-of-the-envelope calculation indicating that the technique might work even better for locally correctable codes than it had for locally decodable ones.

A few months later, after many more false starts that made them fear they’d been too optimistic, the technique finally delivered on its promise. Kothari and Manohar proved that as researchers had suspected, it’s impossible for any three-query locally correctable code to work appreciably better than Reed-Muller codes. That exponential scaling is a fundamental limitation. Their result was also a dramatic demonstration that local correctability and local decodability, though superficially similar, really do differ at a fundamental level: The latter is unequivocally easier to realize than the former.

Kothari and Manohar now hope to extend their techniques to study codes that are allowed to make more than three queries, as very little is known about them now. And progress in the theory of error correction often has implications in other seemingly unrelated fields. In particular, locally correctable codes make surprise appearances everywhere from the problem of private database searches in cryptography to proofs of theorems in combinatorics. It’s too early to say how Kothari and Manohar’s technique will impact these different fields, but researchers are feeling optimistic.

“There’s a really beautiful new idea here,” Dvir said. “I think there’s a lot of potential.”

Comment on this article

白醋和陈醋有什么区别 手机暂停服务是什么意思 痛点是什么意思 dic是什么病的简称 庸医是什么意思
什么树枝 prn医学上是什么意思 义举是什么意思 例假推迟是什么原因引起的 甲功不正常有什么表现
处女座幸运颜色是什么 玄关是什么位置 支原体感染吃什么食物好 磨牙缺什么 1979年是什么年
取环后要注意什么事项 消炎药有什么 怀疑甲亢需要做什么检查 烧仙草是什么东西 月牙消失了是什么原因
生命的尽头是什么hcv9jop0ns5r.cn 高密度脂蛋白胆固醇高是什么意思hcv9jop4ns4r.cn 女人经常喝什么汤养颜hcv9jop4ns6r.cn 蛇头疮用什么治疗最快hcv8jop1ns1r.cn 火花是什么意思hcv8jop6ns1r.cn
孕妇缺营养吃什么补hcv8jop1ns4r.cn 空调自动关机什么原因hcv9jop1ns7r.cn 猪肝不能和什么一起吃helloaicloud.com 皮肤属于什么系统hcv8jop8ns9r.cn 面部痒是什么原因hcv7jop6ns1r.cn
delvaux是什么牌子hcv7jop5ns3r.cn 村书记是什么级别xianpinbao.com 肛门瘙痒用什么药最好hcv7jop7ns3r.cn 霍霍人什么意思0735v.com 空调有异味是什么原因hcv9jop3ns5r.cn
什么是省控线hcv9jop7ns2r.cn 射手什么象星座hanqikai.com 什么叫感统训练520myf.com 孕早期吃什么水果hcv8jop3ns0r.cn sg是什么意思hcv8jop8ns9r.cn
百度