{"id":167,"date":"2006-09-27T09:51:10","date_gmt":"2006-09-27T09:51:10","guid":{"rendered":"http:\/\/scientopia.org\/blogs\/goodmath\/2006\/09\/27\/de-debunking-evolutionary-algorithms\/"},"modified":"2006-09-27T09:51:10","modified_gmt":"2006-09-27T09:51:10","slug":"de-debunking-evolutionary-algorithms","status":"publish","type":"post","link":"http:\/\/www.goodmath.org\/blog\/2006\/09\/27\/de-debunking-evolutionary-algorithms\/","title":{"rendered":"De-Debunking Evolutionary Algorithms"},"content":{"rendered":"<p>Just for fun, I&#8217;ve been doing a bit of poking around lately in evolutionary algorithms. It&#8217;s really fascinating to experiment, and see what pops out &#8211; the results can be really surprising.<br \/>\nThere is one fascinating example for which, alas, I&#8217;ve lost the reference, but here&#8217;s the summary. Several groups have been looking at using evolutionary algorithm techniques for hardware design. (A good example of this is [Alexander Nicholson&#8217;s work](http:\/\/citeseer.ist.psu.edu\/nicholson00evolution.html) .) A year or so ago, I saw a talk given by a group  which was doing some experiments with EA for hardware design. One of the most interesting outcomes of their work was that for one of the solutions that their system generated, they were *completely* unable to comprehend how it worked. There was just no logical way for it to work. It included two *disconnected*  sets of components &#8211; one of which wasn&#8217;t wired in *at all*. When they tried getting rid of the disconnected set, the circuit stopped working. It turned out that the evolutionary process had discovered and exploited a previously unknown bug\/behavior in the FPGA they were using. You can read about this work [here](http:\/\/www.cogs.susx.ac.uk\/users\/adrianth\/ices96\/paper.html); thanks to commenters for helping me find the link!<br \/>\nAnyway, the point here isn&#8217;t to talk in detail about evolutionary algorithms; that&#8217;s a fascinating topic for another time. My goal for this evening is to show you yet another example of how creationists like to distort math in order to make bad arguments.  The specific target this time around is an article by Eric Anderson called [&#8220;Bits, Bytes and Biology: What Evolutionary Algorithms (Don&#8217;t) Teach Us About Biology&#8221;](http:\/\/www.iscid.org\/pcid\/2005\/4\/2\/anderson_bits_bytes_biology.php). This article looks at some of the work on evolutionary algorithms that came out of [the Avida project](http:\/\/dllab.caltech.edu\/avida\/) , and tries to make an argument for why the demonstration of how Avida created &#8220;irreducibly complex&#8221; results are invalid.<\/p>\n<p><!--more--><br \/>\nLet&#8217;s take a look at the abstract to see how Mr. Anderson describes his paper:<br \/>\n&gt;Far from constituting a devastating critique of irreducible complexity, the<br \/>\n&gt;evolutionary algorithm, Avida, is a flawed effort that bears little relevance<br \/>\n&gt;to the biological world. In their haste to affirm the Darwinian creation story,<br \/>\n&gt;the Avida authors seem oblivious to, or conveniently ignore, the fact that they<br \/>\n&gt;have incorporated as premises the very conclusions they are trying to reach.<br \/>\n&gt;Such efforts are at best misleading, at worst deceptive. Ironically, the main<br \/>\n&gt;piece of data obtained by the Avida researchers that is not based on circular<br \/>\n&gt;evolutionary assumptions, upon closer inspection supports, rather than refutes,<br \/>\n&gt;Behe&#8217;s notion of irreducible complexity.<br \/>\nPretty nice beginning, neh?<br \/>\nSo the authors Avida are *at best* oblivious to the properties of the work they&#8217;re doing; at worst, they&#8217;re liars. And their work is based on on circular assumptions, which *support* Behe&#8217;s notion of irreducible complexity.  He&#8217;s making an incredibly strong accusation against the Avida team: that either they&#8217;re stupid and don&#8217;t understand their own work; or they&#8217;re liars.<br \/>\nBefore getting to the meat of his argument, Mr. Anderson throws in rather a lot of sneers and insults. Now, you might say that given what I write on this blog, I&#8217;m hardly one to criticize another writer for sneering. But there&#8217;s a rather important difference between a blog and a supposed scientific journal; what&#8217;s appropriate or acceptable is specific to the medium.  In an informal setting like a blog, where I&#8217;m writing not just to inform, but also to entertain, I&#8217;m often an obnoxious asshole when I&#8217;m writing about the people who try to misuse math and science. But in a scientific journal? Different styles for different circumstances: I would *never* stoop to insulting another author in a real scientific paper. Scientific papers are a major professional forum, and decorum and respect for your fellow scientists are the rule. What&#8217;s more,  I don&#8217;t know of any *real* scientific journal that would publish a paper that was written in such an unprofessional and insulting style; but this was published in the DI house journal, which represents itself as a serious scientific journal.<br \/>\nTo make matters worse, most of the circularity that he&#8217;s complaining about is nonexistent. To use Mr. Anderson&#8217;s only rhetoric: he either doesn&#8217;t understand how science works, or he is deliberately misrepresenting the Avida work.<br \/>\nA typical example of Mr. Anderson&#8217;s tone is the following quote:<br \/>\n&gt;The authors begin by declaring their allegiance to Darwinian evolution in the<br \/>\n&gt;following terms: &#8220;Charles Darwin&#8217;s theory of evolution, including its<br \/>\n&gt;intertwined hypotheses of descent with modification and adaptation by natural<br \/>\n&gt;selection, is widely regarded as one of the greatest scientific achievements of<br \/>\n&gt;all time.&#8221; While such sentiments might cause the careful observer to question<br \/>\n&gt;the authors&#8217; impartiality in evaluating the merits of Darwin&#8217;s theory, such<br \/>\n&gt;statements no doubt help to move papers through the review process at Nature.<br \/>\nOk. Seriously now. Anyone out there think that the theory of evolution *isn&#8217;t* a stunning scientific achievement? To call the theory that is the foundation of the entire science of modern biology &#8220;one of the greatest scientific achievements of all time&#8221; is, I think, entirely appropriate. Even if, for some reason, you believe that evolution is not responsible for life on earth: the simple fact remains that the *theory* is quite clearly one of the most revolutionary and influential theories in the history of science.<br \/>\nAnother example:<br \/>\n&gt;In creating Avida, the researchers set up a system of functional<br \/>\n&gt;operators which serve as fitness characteristics. By executing certain<br \/>\n&gt;functional operators, &#8220;organisms&#8221; are rewarded with additional energy, which<br \/>\n&gt;allows them &#8211; under traditional Neo-Darwinian doctrine &#8211; to<br \/>\n&gt;reproduce faster, which, notwithstanding contrary evidence, is for the<br \/>\n&gt;Neo-Darwinist the great and ultimate goal of all creatures biological.<br \/>\nNote the sneering tone, and the assertion &#8211; without citation &#8211; of what &#8220;New-Darwinian doctrine&#8221; says;  and the assertion &#8211; again without citation or support &#8211; of contrary evidence. I find this particularly galling given that merely two paragraphs before, he sneeringly suggested that praising the theory of evolution should call the authors&#8217; impartiality (and, by implication, *honesty*) into question &#8211; followed by his own far more egregious demonstration of extreme bias.<br \/>\nAnyway, we&#8217;re finally heading into the part where he claims that he&#8217;s going to show how the Avida team screwed up. Since the goal here isn&#8217;t really to examine what the Avida team did, but to *discredit* what they did, he leads in by throwing a few more insults at them:<br \/>\n&gt;The authors make liberal use of biological terminology in describing their<br \/>\n&gt;computer program, referring to the set of virtual CPU stacks and registers as<br \/>\n&gt;&#8221;organisms,&#8221; the instruction sets as &#8220;genomes,&#8221; the resultant organisms as<br \/>\n&gt;&#8221;phenotypes,&#8221; and the various sets of reward parameters as different selective<br \/>\n&gt;&#8221;environments.&#8221; While such terminology may be justified due to the authors&#8217;<br \/>\n&gt;goal of analogizing to biological systems, one cannot help but wonder if the<br \/>\n&gt;Avida results might seem somewhat less applicable to biology without all the<br \/>\n&gt;biological terminology.<br \/>\nYou see, if you&#8217;re doing work in a field which is based on simulating biological evolution, then it&#8217;s completely inappropriate to use biological terms for the elements that you&#8217;re simulating. That&#8217;s misleading and dishonest. And if those terms have been adopted *as the standard terminology of the field*, well then, everyone working in that field must be dishonest. Because it&#8217;s clearly *not* the case that people are naming things after what they&#8217;re simulating; those egghead  scientists are just trying to use biological terminology *to confuse you*.<br \/>\nNow, here&#8217;s where it gets *really* interesting. He says that he&#8217;s going to examine the &#8220;key assumptions&#8221; built into Avida. But that&#8217;s not *really* what he&#8217;s going to do.  What you&#8217;ll see as I go through his paper is that he repeatedly tries to make it look like Avida is using circular reasoning. In fact, what they&#8217;re doing is *describing an experiment*.<br \/>\nHow do you do an experiment in real science? You start by developing a hypothesis. Using your hypothesis, you make a prediction. Then you perform the test, and see if the results match the prediction. If they *do*, then the experiment confirms the hypothesis (note, *confirms* not *proves*); if they don&#8217;t, then the experiment disproves the hypothesis.<br \/>\nWhat the Avida team did was develop a hypothesis that an evolutionary system, working *within* the constraints of Behe&#8217;s model of evolution could produce an irreducibly complex system. They proceed to describe their model, and the predictions it makes. Then they show their results, which confirm their hypothesis. Mr. Anderson tries to argue that because they stated their hypothesis up front, and then the test confirmed it, that they were cheating and being circular. He&#8217;s pretending that the *hypothesis* is actually a set of assumptions; and that therefore, the experiment confirming the hypothesis is invalid.<br \/>\n&gt;(1) There is a cumulative pathway to complexity.<br \/>\n&gt;<br \/>\n&gt;Avida was programmed so that a slight, successive cumulative pathway to the<br \/>\n&gt;ultimate complex function existed. In other words, the researchers assumed that<br \/>\n&gt;the ultimate complex feature was not irreducibly complex, and wrote their<br \/>\n&gt;program in such a way as to guarantee that it would not be irreducibly complex,<br \/>\n&gt;before they even ran the very first simulation. Thus, it is deeply troubling to<br \/>\n&gt;find the authors suggesting that Avida demonstrates that complex systems are<br \/>\n&gt;not irreducibly complex.<br \/>\n&gt;<br \/>\n&gt;What is more astonishing, is that the authors are aware of their circular<br \/>\n&gt;reasoning, but blithely dismiss it.9 In the final discussion section, they<br \/>\n&gt;state, &#8220;Some readers might suggest that we &#8216;stacked the deck&#8217; by studying the<br \/>\n&gt;evolution of a complex feature that could be build on simpler functions that<br \/>\n&gt;were also useful. However, that is precisely what evolutionary theory<br \/>\n&gt;requires&#8230;&#8221; Say what?? In other words, we have adopted as our premise the very<br \/>\n&gt;conclusion we are trying to reach. In a particularly Darwinian display of<br \/>\n&gt;twisted logic, the researchers seem oblivious to the fact that this circular<br \/>\n&gt;reasoning invalidates their entire conclusion, and cheerfully waive it aside as<br \/>\n&gt;an inconsequential technicality. At best such an approach manifests<br \/>\n&gt;questionable  judgment, at worst, self-deception.<br \/>\nThis is remarkably sleazy in a subtle sort of way.<br \/>\nAvida is using a very solid mathematical model of evolution. What they&#8217;ve done for this experiment is constrained that model to match *Behe&#8217;s* assumptions in his arguments for IC. What Anderson just did is criticize *exactly* those properties of the Avida model of evolution *that make it match Behe&#8217;s assumptions*.<br \/>\nFirst &#8211; he asserts that it&#8217;s *Avida* that assumes that there is a &#8220;cumulative pathway to complexity&#8221;. That&#8217;s *Behe&#8217;s* assumption. Avida is supposedly demonstrating the problem with Behe&#8217;s concept of irreducible complexity: the IR concept is based fundamentally on the idea that the *only* possible evolutionary path is *constructive* &#8211; that is, cumulatively adding things to get to a result. So if the Avida team *hadn&#8217;t* made the assumption that they had to build their systems via a cumulative pathway, they would have been criticized for *not* adopting the constraints of Behe&#8217;s theory.<br \/>\nSecond &#8211; the cumulative pathway isn&#8217;t an *assumption*; it&#8217;s a *restriction*. Adding a restriction like that to a system like this only *reduces* the potential results.  Systems that produce evolutionary algorithms try to provide *as many* mutation regimes as they can manage. They don&#8217;t just *add* to programs; they cut things, rearrange things, shift things, copy things, break things, split things, reverse things&#8230; Limiting the system to a constructive approach is a major *restriction* that only *reduces* the set of possible results. This is *not* building a favorable assumption into the system: this is (appropriately) *constraining* the system to match the assumptions of the theory that they are trying to disprove.<br \/>\nThird, he criticizes them for the assumption that a complex feature could be built on simpler useful features. Well gosh, don&#8217;t creationists (including Behe) constantly argue that you *can&#8217;t* have any precursors to a system that don&#8217;t provide evolutionary advantage? Isn&#8217;t Behe&#8217;s argument that the reason that IC systems are a problem is because the system can&#8217;t evolve if the precursors aren&#8217;t valuable? So if Avida showed that you could evolve an IC system from *useless* components &#8211; that is, components that *didn&#8217;t* have any function &#8211; wouldn&#8217;t Mr. Anderson criticize Avida for using precursors that didn&#8217;t have any value?<br \/>\nIn other words &#8211; this comes down to an accusation that the very things that make Avida an appropriate mathematical for discussing Behe&#8217;s theory *on Behe&#8217;s terms* is giving *Avida* a dishonest, unfair advantage.<br \/>\nHis next point:<br \/>\n&gt; (2) Relatively few changes are required to get from the initial organism to the<br \/>\n&gt;complex feature.<br \/>\n&gt;<br \/>\n&gt;This is more a question of fact than a logical problem, but it does strain<br \/>\n&gt;credulity. Are we expected to believe that the distance, say, between Miller&#8217;s<br \/>\n&gt;type III secretory system10 and the bacterial flagellum is slight, or that the<br \/>\n&gt;formation of the mammalian eye is only as complex as the author&#8217;s EQU<br \/>\n&gt;instruction?11 In fairness, the authors make no direct statement to this<br \/>\n&gt;effect, but they do throughout their paper refer to &#8220;complex&#8221; features, which<br \/>\n&gt;most people in the current evolution debate understand to mean<br \/>\n&gt;&#8221;really complex&#8221; &#8211; along the lines of the mammalian eye or the bacterial<br \/>\n&gt;flagellum complex. Indeed, no-one is interested in whether an EQU function can<br \/>\n&gt;evolve, but rather whether complex biological features can. By claiming to show<br \/>\n&gt;that complex features can evolve in a Darwinian fashion, the authors are at<br \/>\n&gt;least implying, if not explicitly stating, that their results might be<br \/>\n&gt;applicable to truly complex biological systems, like the bacterial flagellum or<br \/>\n&gt;the mammalian eye. Yet in my  estimation the authors&#8217; EQU instruction looks<br \/>\n&gt;more like a minor adaptation than a significant evolutionary change.<br \/>\nThis is remarkably silly. What it comes down to is moving the goalposts, mixed with a very fancy phrasing of the argument from incredulity, combined with moving the goalposts. It&#8217;s just disguised as a critique of Avida. Avida *does* produce results that are *irreducibly complex* by Behe&#8217;s definition, under the constraints imposed *by Behe&#8217;s definition*.<br \/>\nThe point of the work is to present  a mathematical model that demonstrates how an additive evolutionary process can produce a system that conforms to *Behe&#8217;s* definition of irreducibly complexity. The point isn&#8217;t to run a system that evolves a mammalian eye. It&#8217;s to show that the argument that it&#8217;s impossible to evolve IC systems is false.<br \/>\nBut he can&#8217;t actually criticize the Avida model &#8211; because it&#8217;s really Behe&#8217;s  model. So he needs to wiggle around and try to criticize without going into depth &#8211; because the moment he goes into depth criticizing Avida&#8217;s model, it&#8217;ll become obvious that he&#8217;s actually criticizing *Behe&#8217;s* model. The problem is, Behe&#8217;s model is thoroughly bogus. It&#8217;s an unreasonably and unrealistically constrained model.<br \/>\nMoving on&#8230;<br \/>\n&gt; (3) There are regular and closely spaced fitness plateaus in proceeding from one<br \/>\n&gt;function to the next.<br \/>\n&gt;<br \/>\n&gt;This assumption is based on a rather simplistic view of the fitness<br \/>\n&gt;landscape.  For Darwin, the fitness landscape was essentially level,<br \/>\n&gt;with &#8220;slight successive variations&#8221; leading slowly, almost<br \/>\n&gt;imperceptibly, to new organisms over a flat plain. More recent research<br \/>\n&gt;suggests that the fitness landscape is more like an expansive valley,<br \/>\n&gt;interspersed with occasional plateaus that constitute functional organisms. The<br \/>\n&gt;distance between these plateaus is rarely insignificant and depends on a number<br \/>\n&gt;of factors, not the least of which is the fact that many biological systems in<br \/>\n&gt;an organism are closely interconnected and highly interdependent.<br \/>\nThis isn&#8217;t really a criticism of Avida at all; this is just a standard, bogus anti-evolution argument: one of the classics in fact. The idea is that if you view evolution as a search over a fitness landscape, the shape of that landscape is very important. If most of the landscape is hostile, and the areas representing a stable and successful ecosystem (the &#8220;fitness plateaus&#8221;) are far apart, and separated by a very rough landscape, then the small steps taken by evolution can&#8217;t move between the plateaus. Essentially, the idea is that the &#8220;fitness plateaus&#8221; are a kind of trap: once you&#8217;re in one, it&#8217;s almost impossible to get out.<br \/>\nMr. Anderson is asserting that the fitness landscape is very rough, consisting of a relatively small number of widely scattered fitness plateaus separated by untraversably rough terrain. His beef with Avida is that Avida doesn&#8217;t accept his model of the fitness landscape. And in fact, the idea of a fitness landscape with &#8220;plateaus&#8221; like this is *very* bad math. As I and various commenters mentioned in other posts, if you want to model evolution as search over a fitness landscape, then that fitness landscape is *not*  like a three dimensional landscape. It&#8217;s a landscape with a *huge* number of variables, meaning a huge number of dimensions in the landscape. All of those variables are varying in different ways. In a landscape like that, the idea of widely scattered plateaus with no easy way out is *very* unlikely. The kind of plateaus that he&#8217;s demanding are locations in the landscape where *all* variables are at a local minimum *at the same place*.<br \/>\nAs systems like Avida and Breve can easily demonstrate, if you&#8217;ve got even four or five variables, you very rarely find points that a minima in *all* dimensions; and if there&#8217;s any dimension in which a &#8220;plateau&#8221; is not a minimum, then there&#8217;s an easy path out.<br \/>\n*If* the fitness landscape has plateaus like Anderson asserts, then evolution would have a problem. But if wants to argue that, he needs to actually show that the evolutionary fitness landscape  looks like that. He doesn&#8217;t do that &#8211; he just blindly *asserts* that &#8220;more recent research&#8221; shows that the landscape looks like that. He doesn&#8217;t actually *cite* any of that research, or say anything about why the landscape should be that way. He just says that it&#8217;s that way, and expects us to accept that *his* assertion about the fitness landscape is more correct that Avida&#8217;s.<br \/>\n&gt; (4) Intermediate steps provide a functional advantage.<br \/>\n&gt;<br \/>\n&gt;The Avida researchers initially approach the intermediate functions as though<br \/>\n&gt;there were a beneficial continuum from one function to the next, although it is<br \/>\n&gt;far from clear that this would be the case in the real world. A large part of<br \/>\n&gt;evolutionary critics&#8217; argument from irreducible complexity is that there is<br \/>\n&gt;unlikely to be a functional advantage for intermediate steps. What good is a<br \/>\n&gt;cornea without a lens? What good are a cornea and a lens without the retina?<br \/>\n&gt;And what good are all of these without an exceedingly complex and<br \/>\n&gt;interconnected nervous system to carry the information to the brain? This is in<br \/>\n&gt;fact one of the key areas in question in the debate over irreducible &gt;complexity, but the Avida authors simply assume it away.<br \/>\nDid the Avida authors *assume* that intermediate steps provide a functional advantage? No. They *hypothesized* that they could evolve an IC system where all of the intermediate steps provided a functional advantage. And they were able to show that you *can* evolve an IC system in which every intermediate step provides a functional advantage.<br \/>\nNote well: if they had done an experiment where steps in the evolutionary pathway *didn&#8217;t* provide functional advantages, people like Mr. Anderson would be criticizing them, because they would argue that evolution via mutation and natural selection requires that intermediate steps have functional advantages. Damned if you do, damned if you don&#8217;t.<br \/>\n&gt; (5) Each functional advantage is promptly rewarded.<br \/>\nSame  as the last one: if you dared to show a system where functionally advantageous intermediates *weren&#8217;t* rewarded, then Mr. Anderson would be saying that the experiment was invalid because evolution requires the immediate reward.<br \/>\nIn fact, just a little bit later in the paper, Mr. Anderson makes *exactly* this argument:<br \/>\n&gt;However, what this piece of data in fact demonstrates, is that even if there is<br \/>\n&gt;a guaranteed step-by-step pathway to complex function, unless each step, or at<br \/>\n&gt;least the vast majority of the steps, along the way are handsomely rewarded in<br \/>\n&gt;a fashion that drives the organisms toward the ultimate goal, the complex<br \/>\n&gt;feature cannot be expected to arise in the population. In other words, in<br \/>\n&gt;addition to a guaranteed step-by-step pathway, it is necessary to have a<br \/>\n&gt;regular reward system at regular intervals that anticipates the final goal.<br \/>\n&gt;This foresight is not something that Darwinian evolution can provide even in<br \/>\n&gt;principle.<br \/>\nSee, if you make your experiment require that every step produce an advantage which is rewarded, then you&#8217;re cheating. But if you *don&#8217;t* make your experimnet require that every step produce an advantage, then you&#8217;re cheating.<br \/>\nCircularity indeed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Just for fun, I&#8217;ve been doing a bit of poking around lately in evolutionary algorithms. It&#8217;s really fascinating to experiment, and see what pops out &#8211; the results can be really surprising. There is one fascinating example for which, alas, I&#8217;ve lost the reference, but here&#8217;s the summary. Several groups have been looking at using [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[16],"tags":[],"class_list":["post-167","post","type-post","status-publish","format-standard","hentry","category-debunking-creationism"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4lzZS-2H","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/posts\/167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/comments?post=167"}],"version-history":[{"count":0,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/media?parent=167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/categories?post=167"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/tags?post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}