onsdag 29 november 2017

Är hembryggd öl bättre än kommersiell?




Det finns ett narrativ inom hembryggningssfären där hembryggt framställs som någonting fint och äkta i kontrast till det som bryggs i kommersiella bryggerier. Framförallt anses hembryggt vara godare. Efter att de senaste tio åren ha provat runt 7000 olika kommersiella öl samt säkert tusentalet hembryggda dito kan jag absolut inte skriva under på detta.

Som alltid när det gäller tycke och smak så får man acceptera att det inte finns något rätt eller fel. En del gillar homebrewish, själv gör jag det inte. Kanske är det en vanesak. Jag minns när jag provade hembryggt för första gången 2007 och hur gott jag tyckte det var. Det smakade helt enkelt mer av allt än vad jag var van vid, och snart därefter började jag brygga själv. Jag är inte säker på att jag hade tyckt likadant idag. För några år sedan bryggde jag något slags ESB-aktigt med Fuller's-jästen till en större julfest. Tyvärr blev det rätt mycket acetaldehyd, förmodligen på grund av jästens extrema flockulering. Många av gästerna var dock överväldigade över smakrikedomen, ungefär som jag själv hade blivit för tio år sedan.

Just acetaldehyd stöter jag relativt ofta på bland hembryggda öl. Om man går runt på någon hembryggningstävling (som här eller här) har ofta en betydande andel av ölen dessa toner av just acetaldehyd. I vissa fall kan även fler defekter skönjas. Sedan finns förstås ett antal bra öl också.

Om man tittar på hembryggare som är de skickligaste inom något område så är det ändå tydligt att de inte når upp till de bästa kommersiella bryggerierna inom samma område. Jag känner exempelvis till ett par hembryggare som är imponerande bra på att göra öl i brittisk stil, inklusive på cask. Deras alster är normalt sett i paritet med en välgjord kommersiell variant, men når inte riktigt hela vägen fram till de bästa. Samma sak kan sägas om belgiska öl, tysk lager eller amerikanska ipor. Om man jämför Belgoträffen och Zythos-festivalen så har den sistnämnda helt enkelt bättre öl, såväl på bredden som på höjden.

Något som är viktigt att nämna i sammanhanget är Ikea-effekten som märks väldigt tydligt på hemmabryggare. Denna kan manifestera sig som allt från normal till rejält uppblåst självöverskattning och olidligt skryt. Exempelvis har jag sett hembryggare som hävdar att deras Hoegaarden-klon är mycket bättre än originalet, något jag inte för ett ögonblick tror på*. Själv tror jag mig ha en mer typiskt svensk lagom dos självöverskattning, trots allt ligger jag ju i underläge i min inofficiella tävlingsserie mot omvärlden.

Allt det ovanstående till trots, så finns det ingen anledning att misströsta. Det är ju ändå en hobby det handlar om. Även om man har sämre förutsättningar rent kvalitetsmässigt så ger upplägget en helt annan frihet då vi inte behöver bekymra oss om kostnader och nyckfulla kunder. Man kan därför designa sina recept helt efter eget behag utan tanke på vad andra tycker. Och med lite noggrannhet kan man uppnå fullt acceptabel kvalitet. Något som faktiskt talar för hembryggaren är färskheten, att man har möjlighet att dricka ölen i sin ungdoms kraft. Tyvärr slösas denna fördel ofta bort på grund av hembryggningsdogmen att all hembryggd öl vinner på att lagras flera månader och töntiga klyschor om att "den bästa flaskan är den sist uppdruckna".

* Jag misstänker att den helt enkelt hade mer kryddor, ett vanligt fenomen/problem för hembryggd witbier.

torsdag 23 november 2017

Om grundläggande bryggböcker


Foto: Fabrikörn.

Under årens lopp har jag samlat på mig en ansenlig mängd bryggböcker i bokhyllan. Jag är således en smula gammeldags person som tycker att böcker är det bästa sättet att lära sig saker, inte poddar eller internetforum även om de sistnämnda kan vara nyttiga komplement. I några kommande blogginlägg ämnar jag kortrecensera dessa böcker. För att få det hela hanterbart tänker jag dela upp böckerna i tre kategorier: grundläggande böcker, fortsättningsböcker och avancerade böcker. Jag börjar således med grundläggande böcker. Dessa diskuteras ganska ofta på hembryggarfora så det passar bra att få göra min sammanfattning av dessa först.

En grundläggande bok om ölbryggning bör enligt min mening ha ett par egenskaper. Det viktigaste är att den innehåller en komplett beskrivning av bryggprocessen som inte kräver några mer förkunskaper än vanlig grundskola. Helst ska den beskriva de olika alternativ som finns för en nybörjare: extraktbryggning, BIAB och hink-i-hink (eller liknande). Den ska inte enbart vara metodbeskrivande, utan en viss teoretisk förståelse bör förmedlas. Annars kan man lika gärna läsa någon av de många bloggar som beskriver bryggprocessen på ett kortfattat sätt. Recept är ofta efterfrågat av nybörjare så det är en fördel om det finns en uppsättning sådana, gärna relativt enkla men samtidigt med viss bredd. Faktamässig korrekthet är förstås också viktigt även om en del faktafel är mer problematiska än andra.

Nedan kommer jag kortfattat recensera de grundläggande bryggböcker som jag är bekant med i någon slags stigande kvalitetsordning. De som är skrivna på eller översatta till svenska har till förvirring likartade namn. Ingen av nedanstående böcker behövde jag lägga mina surt förvärrade slantar på för att kunna läsa, och jag tackar Jan Gnoff Berglund för lånet av Brygg ditt eget öl och Brygg öl, Peter Eronsson för det signerade exemplaret av Brygg ditt öl hemma samt SHBF och Hembryggarens redaktion för recensionsexemplaret av How to brew.

Öl: brygg ditt eget (Dave Law & Beshley Grimes)

Denna bok som i det engelska originalet heter Homebrew Handbook kom redan 2013, men dök nyligen upp i svensk översättning. Författarna verkar vara pubägare, hembryggare, hemmaodlare och allmänt DIY:are. Jag har inte läst hela boken utan fått nöja mig med ett smakprov. Men baserat på dessa första 15 sidor, blogginlägg, samt diverse foruminlägg är min preliminära bedämning att det är den klart sämsta boken i denna lista. Den verkar försöka vara så där töntigt BrewDog-punkig med tillhörande layout, och språket ger nästan intrycket att författarna var fulla eller påtända när de skrev. Det verkar vimla av faktafel och besynnerligheter, i synnerhet olika mängdfel i själva receptdelen. Köp absolut inte denna bok är min uppmaning.

Brygg ditt eget öl (Greg Hughes)

Detta är ännu en översatt bok, denna gång från originaltiteln Home Brew Beer. Författaren verkar vara en ledande figur inom brittisk hembryggning och driver bland annat sajten BrewUK vilket innefattar en online-butik. Trots dessa meriter är boken bitvis riktigt dålig. Framförallt vimlar det av felaktigheter, förvirrade avsnitt och dåliga råd. Exempelvis torgförs den felaktiga uppfattningen att vattnets pH är viktigt vilket säkert kan förklara att denna missuppfattning har fått tydlig spridning bland svenska hembryggare. Boken verkar tyvärr ha blivit en riktig storsäljare inom denna grupp nämligen. Men visst, den är lättläst och man kan snabbt komma igång och brygga hyfsade öl efter att ha läst den.

Boken innehåller drygt 100 recept, vilket säkert tilltalar många nybörjare. Recepten är enkla även om jäsningsinformationen är otydlig. Många recept är vettiga men vissa är samtidigt ganska konstiga. En extremt konstig grej är att dubbel-ipan anses kräva totalt 11 veckor jäsning/lagring, medan en kriek klarar sig på 6 veckor. Jag tycker nog att man som nybörjare är mer betjänt av att ta del av någon av alla recept och komma igång-beskrivningar som finns gratis att tillgå på nätet än att punga ut cirka 200 kr på denna högst mediokra bok.

Brygg öl (Henok Fentie & Karl Grandin)

Här har radarparet bakom Omnipollo lämnat sitt bidrag till hembryggningslitteraturen. Boken är skriven med ett väldigt personligt tilltal i jagform. Ibland är det lite läge för skämskudde som exempelvis för formuleringen "Att koka vört är bland det roligaste som finns". Även om den inte är späckad med fel och tveksamheter som Greg Hughes bok så finns det ett gäng dylika, bland annat ett förvirrat resonemang kring mäsktemperatur och mäsktjocklek, samt det förvillande begreppet sekundärjäsning. Boken sprider även den irriterande hembryggardogmen om att man ska jäsa i minst 3 veckor (och lika länge i flaska).

Ett större problem är all information om bryggningen som inte finns med. Boken är helt enkelt väldigt tunn såväl fysiskt som faktamässigt. Därför ser jag inte heller någon anledning att köpa den för att lära sig brygga öl. Däremot kan receptdelen vara av intresse för Omnipollo-fantaster, så jag håller den högre än Greg Huhges bok.

Ölbryggarboken - Brygg ditt öl hemma (Peter Eronsson)

Här får jag börja med att lägga in en liten jävsförklaring. Jag känner Peter och vi bor bara ett hundratal meter från varandra i Bagaregården i Göteborg. Jag hjälpte även till med korrekturläsning inför andra utgåvan av hans hembryggningsbok. Jag har dock inga ekonomiska intressen i boken. Med det sagt så tycker jag detta är en trevlig nybörjarbok med en lämplig kunskapsnivå. Språket är ledigt men på en seriösare nivå än i Brygg öl. Framför allt är språket mer korrekt utan onödiga anglicismer och versaler.

Rent bryggtekniskt är den betydligt mer ambitiös och seriös än ovanstående böcker, och en klar fördel är att den har med den numera ganska vanliga biab-metoden. En del felaktigheter kvarstår, exempelvis missförståndet kring vattnets pH, samt det emellanåt dåliga rådet att förkultur kan ersättas med mer jäst. Receptdelen känns mer gedigen än hos Greg Hughes och mer varierad än Omnipollos bok. En randanmärkning är att recepten är en aning svårlästa rent layoutmässigt på grund av delvis orange text mot grå bakgrund.

Sammantaget är detta den enda av de svenskspråkiga böckerna som håller måttet fullt ut som en prisvärd och gedigen nybörjarbok som jag ser det.

How to brew (John Palmer)

Slutligen har vi kommit till den överlägset bästa och mest ambitiösa hembryggarboken. Den senaste och fjärde utgåvan klockar in på knappt 600 sidor och har flera nya kapitel, bland annat ett om surölsbryggning. Vattenbehandling behandlas såväl mer utförligt som begripligt och strukturerat. Kapitlet om jäsning är fantastiskt bra. I synnerhet har det en väldigt tydlig modern syn på underjäsning vs. överjäsning och kallagring vs. varmlagring, ett ämne som annars är fullt med missförstånd och mystifierande. Jag gillar även att författaren trycker hårt på att öl är en färskvara som endast i undantagsfall vinner på lagring.

Några tveksamheter och felaktigheter finns dock. Dels utelämnar författaren oxidering i sin lista på de viktigaste fem faktorerna till förmån för koket, en väldigt märklig felprioritering. Oxidering får följaktligen en högst undanskymd roll i boken vilket måste anses vara dess största brist. En del rena faktafel upptäckte jag också, och mest prominenta är att författaren vid ett tillfälle rör ihop skenbar och faktisk utjäsning och vid ett annat tillfälle snurrar till det om heterolaktiska mjölksyrabakterier. Han lyckas också hitta på ett nytt sätt att missförstå p-värden i samband med en diskussion av ett av Brulosophys experiment. Trots uppenbar bekantskap med dessa experiment finns det en genomgående tendens att överdriva vikten av enskilda faktorer som jästemperatur eller jästmängd.

Men på det hela taget är det en gedigen faktaspäckad och pedagogisk presentation av den samlade hembryggningskunskapen. Även receptdelen på slutet har uppdaterats och moderniserats, och det är egentligen bara de onödigt krångliga belgiska recepten jag har lite invändningar emot.

Slutsats

För att sammanfatta denna genomgång att hembryggarböcker så tycker jag How to brew är det främsta alternativet för nybörjare om man behärskar engelska ordentligt. Man bör även ha en viss vana att inte läsa en dylik bok från pärm till pärm då helmaltsbryggning introduceras ganska sent i boken och man förväntas starta med extraktbryggning. Men kan man hantera detta har man såväl en bra introduktion för att komma igång samt rikligt med fördjupningar för att förkovra sig allteftersom. Om man i stället vill ha en mer lättsmält nybörjarbok på svenska är Brygg ditt öl hemma det klart bästa alternativet.

Tillägg 2018-04-08: Brygga öl (Gustav Lindh)

Ungefär samtidigt som det här inlägget författades annonserade bloggaren Gustav Lindh att han ämnade släppa en hembryggarbok som ansluter sig de övriga svenskspråkiga böckerna med till förvillning liknande namn. Även här har jag agerat korrekturläsare och kan därför inte betraktas som 100 % neutral i mitt omdöme nedan.

Kvalitetsmässigt så tillhör den definitivt den skara böcker som jag tycker är värda att köpa, och jag skulle vilja placera den någonstans mellan Eronssons och Palmers böcker. Bryggtekniskt har den mer tyngd än Brygg ditt öl hemma även om den sistnämnda har lite bredare grepp och utblick på öl i stort. Precis som How to brew kan Brygga öl fungera såväl som nybörjarbok som fortsättningsbok med en inledande beskrivning som hålls ganska enkel, medan senare delen av boken innehåller fördjupningar.

Faktamässigt håller den hög nivå, även om några tveksamheter kvarstår. Exempelvis sammanblandas sockerhalt och densitet vid definitionen av SG, och begreppen syresättning och oxidering rörs ihop  för att nämna ännu ett exempel. Inget av detta har dock någon större praktisk betydelse för att brygga bra öl, utan skapar i värsta fall en viss förvirring. Som övriga svenskspråkiga böcker håller den fast vid det förlegade och otydliga begreppet sekundärjäsning, till viss irritation för undertecknad givetvis.

Omvänt så finns det precis som How to brew ibland vissa överdrifter om enskilda parametrars betydelse, exempelvis mäsktemperaturen. Å andra sidan har den en lagom avslappnad inställning till jästmängd, och allmänt är råden och informationen kring jäsning gedigna.

Språkligt så ligger den snäppet efter Brygg ditt öl hemma, med ett något för personligt tilltal för min smak*. Där finns också några exempel på versalmissbruk, men på det stora hela är det välskrivet (och mycket bättre än Brygg öl förstås.) Layoutmässigt och estetiskt är det däremot den bästa boken bland de som diskuterats i detta inlägg.

Avslutningsvis så får man mycket och gedigen information för pengarna, och snyggt presenterat därtill.

* Tydligen ett krav/önskemål från förlaget enligt författaren.

söndag 19 november 2017

Om pubrundor och trädbeskärning


Figur 1: Lösningen (1, 2, 5, 4, 3, 6) för ett TSP med 6 noder.


För ett tag sedan dök en artikel upp i mitt flöde som fångade mitt intresse en smula. Det handlade om en grupp matematiker som hade löst ett problem med att hitta den kortaste pubrundan som besökte alla pubar i Storbrittanien. Detta ligger ganska nära de problem vad jag för närvarande pysslar med på jobbet. Annat pockade dock på uppmärksamheten så det är först nyligen som jag satte mig ner och läste originalartikeln, och jag insåg att det fanns fler beröringspunkter med mitt arbete än jag först trodde, och jag fick några intressanta uppslag. Artikeln är populärvetenskapligt hållen och kan rekommenderas, men jag ska ändå ge en egen beskrivning nedan med lite utvikningar.

Handelsresandeproblemet


Det hela är ett exempel på det klassiska så kallade handelsresandeproblemet, hädanefter refererat till dess engelska akronym TSP. TSP handlar kortfattat om att besöka ett antal (N) platser så att den totala kostnaden blir så låg som möjligt, där kostnaden att ta sig mellan varje par av platser är känd. Med kostnad kan avses många olika saker beroende på tillämpningen; sträcka, tid, pengar eller något annat. Och "platser" bör förstås metaforiskt; visserligen kan det handla om fysiska platser i logistiksammanhang, men det kan även handla om ett tillverkningssteg i en fabrik, och kostnaden att "ta sig mellan platser" kan då exempelvis vara tiden för att ställa om en maskin mellan två moment. Framgent kommer platser i stället kallas för noder, och vägen/kopplingen mellan två noder kallas kanter.

Figur 2: Beslutsträd för ett TSP med 6 noder som utgår från noden 1.
Rektanglarna anger vald dellösning hittills.
Siffrorna bredvid pilarna anger val av nästa nod.
Av utrymmesskäl är bara delar av trädet utritat.


Man kan visualisera lösningsprocessen med ett beslutsträd som i figur 2 ovan. Vi väljer en nod att starta i, vilken som helst. Vi kan kalla den nod 1. Därefter väljer man nästa nod att besöka, vilken som helst utan 1. Det innebär N-1 möjliga val som motsvaras av lika många grenar i beslutsträdet. För nästa nod att besöka finns det N-2 möjligheter o.s.v. Antalet möjliga sätt att besöka noderna på är (N-1)*(N-2)*...*2 vilket snabbt blir ett gigantiskt stort tal för stora N. Redan för ungefär N=20 går gränsen där det tar orimligt lång tid att testa alla lösningar, och TSP är ett så kallat NP-fullständigt problem, vilket gör att alla matematiker tror att det är omöjligt att lösa varje probleminstans inom rimlig tid. Lyckligtvis finns det tack vare stora forskningsinsatser effektiva algoritmer för att lösa realistiska problem med hundratals eller till och med tusentals noder med rimlig tidsåtgång. Dessa algoritmer kan delas upp i exakta eller approximativa.

Approximativa algoritmer


Denna klass av algoritmer nöjer sig med att hitta en lösning som inte nödvändigtvis är den bästa men som ändå är tillräckligt bra i utbyte mot att beräkningstiden hålls nere. Det kan vara värt att tillägga att approximativa algoritmer ibland avser en smalare kategori där man kan garantera att lösningens kostnad ligger inom ett visst avstånd från den optimala kostnaden. Jag använder dock den bredare betydelsen här.

Giriga algoritmer

Den kanske enklaste metoden - som nog de flesta skulle tänka ut om man funderade på det ett slag - är följande: Börja i någon nod, gå därefter till den nod till vilken kostnaden är lägst, därefter till den kvaravarande nod till vilken kostnaden är lägst, etc. Detta är ett typiskt exempel på så kallade giriga algoritmer; man gör hela tiden det som verkar vara bäst för stunden utan någon framförhållning. Giriga algortimer är allmänt beräkningssnabba men ger ofta ett mediokert resultat. De går dock att förbättra på många sätt genom diverse mer eller mindre smarta sätt att förse valet om vart man ska gå härnäst med olika typer av information. Sådana varianter används ofta som startlösning för lokalsökningsmetoder vilket vi ger oss på nu.

Lokalsökning

Denna breda klass av metoder innebär att man utgår ifrån någon lösning och försöker förbättra den genom små (lokala) förändringar. Ett exempel på en sådan förändring ges i figur 3 nedan. Den nya, förbättrade lösningen försöker man sedan ytterligare förbättra med samma metod. När det inte går att göra några fler lokala förbättringar har man nått ett lokalt optimum. En probleminstans har ofta många lokala optimum, och risken är att just det man hamnat i är avsevärt sämre än det globala optimum man söker. Samtidigt är lokalsökningsmetoder relativt beräkningssnabba, och man kan införa olika åtgärder för att ta sig ur lokala optimum och fortsätta sökningen. Ett exempel ges av simulerad glödgning där man slumpmässigt tillåter försämrande förändringar för att undvika att sökningen fastnar. Sannolikheten för att välja en sämre lösning avtar allteftersom sökningen fortgår och till slut hamnar man i vanlig lokalsökning.

Figur 3: Förbättring av turen i figur 1 till turen (1, 2, 3, 4, 5, 6) medelst kantbyte.

Metaheuristiker

Den sistnämnda metoden är ett exempel på så kallade metaheuristiker, en något diffus klass av metoder med syfte att effektivt och brett söka efter bra lösningar. Ofta är de inspirerade av naturen. Det mest kända exemplet är kanske genetiska algoritmer, där en population av lösningar utvecklas i generationer efter evolutionära principer såsom att de bästa lösningarna får "para sig" och kombinera ihop sig till nya lösningar. Andra metaheuristiker har inspirerats av vargflockar, myrsamhällen* och fågelsvärmar.

Hybridmetoder

De approximativa algoritmer som har levererat bäst resultat hittills kombinerar en metaheuristik med lokalsökning. I vissa fall är detta inbyggt i metaheuristiken från början, som för simulerad glödgning eller tabusökning. I andra fall kan det infogas på något systematiskt sätt, exempelvis genom att alltid köra lokalsökning varje gång en ny lösning skapas. Men nog om detta, vi är ju faktiskt ute efter den absolut bästa pubrundan, och då behöver vi exakta metoder.

Exakta metoder


Denna klass av metoder har egenskapen att de levererar en optimal lösning förr eller senare. I det sistnämnda fallet kan man avbryta efter en i förväg given bortre tidsgräns och förhoppningsvis åtminstone erhålla en lösning tillsammans med en tolerans som anger minst hur nära optimum man är procentuellt. De absolut vanligaste exakta metoderna är branch-and-bound, cutting planes och branch-and-cut som är en kombination av de två förstnämnda.

Branch-and-bound

Idén bakom branch-and-bound (B&B) är att på något sätt kunna sätta en undre gräns på den bästa lösningen givet olika positioner i beslutsträdet. Säg att vi till exempelvis vill utforska alla lösningar där vi besöker BrewDog-baren i Edinburgh direkt efter motsvarande i Camden**. Ponera att vi på något sätt visste att sådana lösningar aldrig kan vara kortare än 46 000 km. Detta kallar vi en undre gräns för denna del av sökträdet. Tänk om vi dessutom redan kände till en lösning som är kortare än 46 000 km - exempelvis genom några av de approximativa metoderna beskrivna ovan. Detta kallar vi en övre gräns för hela problemet. Då vet vi att den optimala lösningen inte finns i denna del av beslutsträdet, och vi kan strunta att leta vidare just här. Vi kan beskära denna del av trädet. Denna idé genomför vi sedan generellt genom att för varje position i beslutsträdet beräkna en undre gräns och jämföra denna med den nuvarande övre gränsen. Varje gång vi stöter på en ny lösning (genom att tränga hela vägen ner i trädet genom någon väg) som är den bästa hittills får vi en ny övre gräns som är bättre än den förra. Genom effektiv beskärning av trädet blir det en hanterbar mängd lösningar som behöver analyseras.

Kärnfrågan är hur vi beräknar dessa undre gränser, och framgången hos B&B är helt avhängigt hur tajt vi lyckas med detta. Vi kan ju alltid säga att 0 är en undre gräns, men det hjäper oss föga. Ett sätt är via så kallade relaxeringar. En relaxering innebär att vi släpper på vissa krav i problemformuleringen och får ett generellare problem som samtidigt är lättare att lösa. Varje lösning till ursprungsproblemet är också en lösning till det relaxerade problemet, men inte tvärtom. Därmed blir den optimala lösningen för det relaxerade problemet en undre gräns. För TSP så är ett exempel på relaxering att tillåta flera turer/slingor/cykler, något som brukas kallas "minimum cycle cover problem", och illustreras i figur 4. Detta problem är betydligt enklare än TSP och en optimal lösning kan beräknas med en tidsåtgång som är proportionell mot N^2.

Figur 4: En "cycle cover" för ett TSP med 6 noder.


Cutting planes

Det här är en teknik som kräver lite mer matematisk kunskap för att förstås, men vi gör ett försök. Grundtanken är att man inför binära kantvariabler x1, x2, x3 etc. enligt någon numrering på kanterna, där värdet på variabeln är 1 om kanten är med i lösningen och 0 annars. Om vi samtidigt betecknar kanternas kostnader med c1, c2, ... så ges den totala kostnaden av

z = x1*c1 + ... + xN*cN

Vi vill alltså minimera z, men för att få en koppling till TSP så måste vi lägga på lite ytterligare krav på kantvariablerna så att vi inte kan välja kanter hur som helst. För att vi ska passera varje nod exakt en gång så krävs att varje nod är ändpunkt för exakt två kanter. För en nod som är ändnod i kanterna 2, 3, 5 och 6 kan vi uttrycka detta som

x2 + x3 + x5 + x6 = 2

Ett liknande bivillkor kan ges per nod för att säkerställa att varje nod besöks exakt en gång. Däremot garanterar dessa bivillor inte att vi får en riktig tur, utan det kan se ut som i figur 4. För att garantera en riktig tur måste vi ställa ytterligare bivillkor, så kallade sub-tour elimination constraints. Det ena sättet går via att införa fler variabler, och fördelen med detta sätt är att det krävs en måttlig mängd extra bivillkor. Ett alternativ är i stället att uttrycka bivillkoren enbart med kantvariablerna, men då får vi en enorm mängd bivillkor. Detta går dock att hantera via det som kallas för cutting planes.

Grundtanken är att vi släpper på kravet att kantvariablerna bara kan anta värdena 0 eller 1, och i stället tillåter att de kan vara allt mellan 0 och 1. Då blir problemet att försöka minimera z med bivillkoren ett mycket enklare problem som kan lösas effektivt med simplexmetoden. Om denna optimala lösning faktiskt är en TSP-lösning (alla kantvariabler är 0 eller 1, och de kanter som är med bildar en tur) är vi klara och har hittat den optimala TSP-lösningen. Om inte lägger vi till några väl valda bivillkor och upprepar proceduren. Notera att vi i varje upprepning får en undre gräns till det optimala värdet. Detta går förstås att kombinera med branch-and-bound, och då får man något som kallas branch-and-cut vilket får ses som kronan på verket bland algoritmer för TSP. I branch-and-cut väljer man att förgrena problemet på någon kantvariabel som varken är 0 eller 1, och skapar ett delträd för 0 och ett för 1.

Knyta ihop säcken


Nu återstår en sista aspekt som för egen del kanske är den intressantaste och som var det som på allvar gjorde att jag intresserade mig för detta projekt. När antalet noder är N = 24 727 så är det potentiellt ungefär 306 miljoner avstånd mellan pubar som behöver beräknas. Eftersom vi vill veta det faktiska gångavståndet så får vi vända oss exemeplvis till Google Maps för varje sådan avståndsberäkning. Detta är helt ogörbart, och man får hitta någon bra strategi för att hantera detta.

För de tillämpningar jag sysslar med så har vi liknande svårigheter. Vi försöker minimera den totala tid en industrirobot behöver för att utföra ett antal uppgifter (exempelvis punktsvetsar på en kaross) samt att förflytta sig mellan de olika uppgifterna. Tiden det tar för alla dessa parvisa förflyttningar kan beräknas med en sofistikerad banplaneringsalgoritm som tyvärr är ganska tidskrävande, och att beräkna alla potentiella förflyttningar är ej aktuellt.

Lösningen är att hitta en approximation av avstånden/tiderna/kostnaderna som är snabb att beräkna och samtidigt alltid är lägre än det faktiska värdet. För gångavstånden mellan pubarna kan man använda "fågelavståndet", och för robotarna finns ett liknande kortaste avstånd där man bortser från diverse geometriska hinder. Dessa approximationer är vad som används initialt för alla kanter. Kanter som verkar lovande och som man av någon anledning tror kan ingå i den optimala lösningen analyseras fullt ut. Exakt vilka kriterier som används för detta går jag inte in på här, men det är ändå värt att påpeka att lösningar som används för en övre gräns måste ha alla ingående kanter fullt analyserade. Och oavsett hur många kanter vi har beräknat den faktiska kostnaden för så kommer vi hela tiden få giltiga undre gränser för den optimala lösningen. Görs detta på ett smart sätt kommer förhoppningsvis bara en liten bråkdel av alla faktiska kantkostnader beräknas. För detaljer angående pubrundeproblemet hänvisas till originalartikeln.


* Jag håller just på med en artikel där vi använder en sådan algoritm
** Bara för att få dessa sunkhak snabbt överstökade

söndag 12 november 2017

Skärsbärs - bitter



Att blanda ("skära") mina p-lambikar med diverse vanlig öl har blivit ett favoritsätt att ska nya, intressanta produkter, något som jag klart föredrar framför att tillsätta frukter och bär exempelvis. Denna gång har turen kommit till bitter som ölstil att blanda med. Det tror jag kommer funka bra av många skäl. Såväl maltighet som humle- och jästaromer kan potentiellt gifta sig bra med surölet. Vidare har bitter lågt FG vilket gör att jag inte behöver oroa mig för särskilt mycket vidarejäsning efter blandning. Vis av tidigare blandningar där det har blivit en del pigga flaskor så drog jag dock ner på kolsyresockermängden ganska ordentligt.

Data:
  • Volym 10 l
  • OG 1050
  • FG 1009
  • Abv 5,5
  • IBU 25
  • SRM 6
  • pH 3,35
Blandning:
Bedömning:

Snygg gyllengul färg, kortvarigt vitt skum. Fruktig arom där lambiken dominerar med äpplen och grapefrukt, men Huresvärden bidrar på subtil nivå. Det finns även diskreta humliga toner.

Syran är distinkt men inte påträngande, och det finns en beska som passar väldigt bra in. Väldigt gott, men jag hade gärna sett att Hyresvärden hade kommit fram mer. Jag får överväga att ha en större andel icke-lambik i blandningen, eller att ha ett öl med mer stuns typ en ipa.

söndag 5 november 2017

All In Beer Fest 2017



I helgen var det dags för den femte upplagan av All In Beer Fest. Min vana trogen från de senaste åren nöjde jag mig med fredagspasset, och satte mig direkt efter jobbet på buss 16 som tog mig ut till festivalen. Jag anlände till Eriksbergshallen strax innan klockan 18 och kunde traska rätt in utan att fastna i köer. Jag passade på att äta något direkt och kunde samtidigt se på när köerna till polletterna krympte. En annan kö som tydligen också krympte eller snarare upplöstes under samma period var den till Omnipollos glassöl. Allt som var kvar var en skylt med texten "Slut" vilket för egen del var sak samma.

Inför festivalen hade det varit ett visst surr om att det inte var lika många heta bryggerier som tidigare år, i synnerhet när några bryggerier och öl från USA uteblev, bland annat på grund av fraktproblem. Man kan inte heller undgå tanken att konkurrensen med Brewskival gör det svårare att locka hit utländska bryggerier. Även om jag personligen inte är särskilt intresserad av hajpade bryggerier och öl, hade det ändå varit kul med lite fler nya bekantskaper.

Annars var det ett väloljat arrangemang som tidigare. Det var gott om plats, och nog hade man kunnat slängt dit några ståbord till på de stora golvytorna. Jag hörde i efterhand lite klagomål på långa köer till det enda matstället, men det var inget jag drabbades av själv. Varför man hade hoppat över mattruckarna i år vet jag inte, det har kännts som ett trevligt inslag.

Vad ölen beträffar så var det jämn kvalitet utan några tydliga bottennapp, men tyvärr också med få riktiga toppar bland de öl jag provade. Allmänt var utbudet en smula enahanda med ipor, surisar, saisoner och imperial stout i olika variationer. Jag hade gärna sett någonting likt Nynäshamns lagermonter på Brewskival för att bryta av.

Men några av de bästa ölen bjöd faktiskt på just detta avbrott. Good guys go to helles var en riktigt bra ljus tysk lager. Bryggeributiken hade gjort en riktigt bra witbier som inte alls smakade witbier utan bara en schysst ljus belgare i största allmänhet. Dessutom fanns det en riktigt bra klassisk icke-grumlig ipa från New York-bryggeriet LIC.

Bland grumlighumliga öl var föga överraskande Stigberget överlägset bäst med sin Sublimo. Bland alla fruktsurisar utmärkte sig Psychopipes Ombrophobia som förenade tropisk frukt med jordiga, färska hallon på ett mycket förtjänstfullt sätt. Det var ett öl man hade velat ha obegränsad tillgång till under varma sommardagar.

Vid niosnåret började jag känna att jag var nöjd med promillehalten och begav mig hemåt. När vi hade kommit till Frihamnen släppte plötsligt busschauffören av samtliga passagerare på grund av att bussen krånglade och behövde köras raka vägen till garaget. Där fick vi sedan stå mitt ute i ingemansland och vänta en kvart på nästa buss. Jag skulle nog stannat på festivalen en timma till. Men det kommer förhoppningsvis en chans till nästa år.