General Hamiltonians#
This notebook shows how to build and encode Fermionic Hamiltonians with ferrmion. You can easily define any Hamiltonian you like, and there are some functions to make it even easier to create common Hamiltonians. If you want to see that, skip to the next section.
The encodings used in this notebook are known as the naive versions of each encoding, because there is almost definitely a better version of it. ferrmion provides methods to get encodings optimised for your Hamiltonian. Check those out in the Optimized Encodings notebook.
If you need to go a step further and define your own encoding to optimise, you can do that too! Start with the Ternary Tree Mappings notebook.
Defining a Hamiltonian#
Fermionic hamiltonians are built up of a number of terms, each of which has:
a “signature” of fermionic ladder opertors “+” and “-”
a matrix of coefficients
You can build up arbitrary Hamiltonians by creating an empty one and adding terms.
Let’s create one with a “+-” or onsite term for a system with 5 fermionic modes (orbitals or sites!).
import ferrmion as fr
import numpy as np
fham = fr.FermionHamiltonian()
n_modes = 5
onsite_coefficients = np.random.random(tuple([n_modes]*2))
fham.add_constant(10.0)
fham.creation().annihilation().with_coefficients(onsite_coefficients)
FermionHamiltonian(+-, 5 modes, constant 10)
we could add an interaction term “+-+-” in the same way, making sure to keep the number of modes constant.
interaction_coefficients = np.random.random(tuple([n_modes]*4))
fham.creation().annihilation().creation().annihilation().with_coefficients(
interaction_coefficients
)
FermionHamiltonian(+-, +-+-, 5 modes, constant 10)
Encoding a Hamiltonian.#
To encode a FermionHamiltonian into a QubitHamiltonian, we can either build an encoding using the TernaryTree class, or use an inbuilt encoding. Building your gives you lots more flexability but if you just want to encode a Hamiltonian, you can still use the optimisation methods in ferrmion if you like.
By default, ferrmion optimises TernaryTree encodings for you, but you can also use the naive (unoptimised) versions of the encodings.
fr.JordanWigner(n_modes).encode(fham)
QubitHamiltonian({'IIIII': 18.179011420293776+0i, 'IIIIZ': -1.5105518700959728+0i, 'IIIXX': 1.881311117180741+0i, 'IIIXY': 0-0.1946176712042053i, 'IIIYX': 0+0.19461767120420534i, 'IIIYY': 1.8813111171807408+0i, 'IIIZI': -1.546796682732967+0i, 'IIIZZ': -0.054266340490850606+0i, 'IIXIX': -0.05361596892042668+0i, 'IIXIY': 0-0.013822745547563658i, 'IIXXI': 1.8842026253735091+0i, 'IIXXZ': -0.11174858395749908+0i, 'IIXYI': 0-0.13785635094456694i, 'IIXYZ': 0+0.1689694425941602i, 'IIXZX': 1.3772732461972579+0i, 'IIXZY': 0+0.05399726186296385i, 'IIYIX': 0+0.013822745547563658i, 'IIYIY': -0.05361596892042668+0i, 'IIYXI': 0+0.13785635094456694i, 'IIYXZ': 0-0.1689694425941602i, 'IIYYI': 1.8842026253735091+0i, 'IIYYZ': -0.11174858395749908+0i, 'IIYZX': 0-0.05399726186296385i, 'IIYZY': 1.3772732461972579+0i, 'IIZII': -2.449834126426738+0i, 'IIZIZ': 0.04163693372793387+0i, 'IIZXX': -0.2258793620810332+0i, 'IIZXY': 0-0.06235958523524113i, 'IIZYX': 0+0.06235958523524113i, 'IIZYY': -0.2258793620810332+0i, 'IIZZI': 0.08567676196556426+0i, 'IXIXI': -0.014614195732488622+0i, 'IXIYI': 0-0.31837205056588935i, 'IXIZX': -0.07325959468752803+0i, 'IXIZY': 0+0.1111059231609336i, 'IXXII': 1.3616331967323778+0i, 'IXXIZ': -0.01674430117623245+0i, 'IXXXX': -0.08436784632693212+0i, 'IXXXY': 0-0.09044200049276496i, 'IXXYX': 0+0.050363041997751434i, 'IXXYY': -0.035884324481126814+0i, 'IXXZI': 0.06869400142952278+0i, 'IXYII': 0+0.3785025012853412i, 'IXYIZ': 0+0.056068296078251326i, 'IXYXX': 0+0.04606886557466314i, 'IXYXY': 0.007152477972213828+0i, 'IXYYX': -0.05563599981801909+0i, 'IXYYY': 0+0.005989907079649616i, 'IXYZI': 0+0.027922232568671566i, 'IXZIX': 0.09007122424969864+0i, 'IXZIY': 0-0.0644124522379931i, 'IXZXI': 1.2339354147761665+0i, 'IXZXZ': 0.17073672929759276+0i, 'IXZYI': 0+0.20014610038108038i, 'IXZYZ': 0-0.11032045213943485i, 'IXZZX': 1.7547218191630358+0i, 'IXZZY': 0+0.045234739683490635i, 'IYIXI': 0+0.31837205056588935i, 'IYIYI': -0.014614195732488622+0i, 'IYIZX': 0-0.1111059231609336i, 'IYIZY': -0.07325959468752803+0i, 'IYXII': 0-0.3785025012853412i, 'IYXIZ': 0-0.056068296078251326i, 'IYXXX': 0-0.005989907079649616i, 'IYXXY': -0.05563599981801909+0i, 'IYXYX': 0.007152477972213828+0i, 'IYXYY': 0-0.04606886557466314i, 'IYXZI': 0-0.027922232568671566i, 'IYYII': 1.3616331967323778+0i, 'IYYIZ': -0.01674430117623245+0i, 'IYYXX': -0.035884324481126814+0i, 'IYYXY': 0-0.050363041997751434i, 'IYYYX': 0+0.09044200049276496i, 'IYYYY': -0.08436784632693212+0i, 'IYYZI': 0.06869400142952278+0i, 'IYZIX': 0+0.0644124522379931i, 'IYZIY': 0.09007122424969864+0i, 'IYZXI': 0-0.20014610038108038i, 'IYZXZ': 0+0.11032045213943485i, 'IYZYI': 1.2339354147761665+0i, 'IYZYZ': 0.17073672929759276+0i, 'IYZZX': 0-0.04523473968349062i, 'IYZZY': 1.7547218191630358+0i, 'IZIII': -1.7425746861351097+0i, 'IZIIZ': -0.1845692646556515+0i, 'IZIXX': -0.08900240749547213+0i, 'IZIXY': 0-0.03761964681690841i, 'IZIYX': 0+0.03761964681690841i, 'IZIYY': -0.08900240749547213+0i, 'IZIZI': 0.17795289804535422+0i, 'IZXXI': 0.020092118820637293+0i, 'IZXYI': 0+0.10350384183022873i, 'IZXZX': 0.06806307416080667+0i, 'IZXZY': 0+0.09600313971976102i, 'IZYXI': 0-0.10350384183022873i, 'IZYYI': 0.020092118820637293+0i, 'IZYZX': 0-0.09600313971976102i, 'IZYZY': 0.06806307416080667+0i, 'IZZII': 0.08391621522477598+0i, 'XIXII': -0.10037883779737643+0i, 'XIYII': 0-0.009528810788668657i, 'XIZXI': -0.13534948995520946+0i, 'XIZYI': 0-0.02076627025166903i, 'XIZZX': -0.02479766555661493+0i, 'XIZZY': 0-0.16970024029024366i, 'XXIII': 1.2384175889372895+0i, 'XXIIZ': -0.06261563944167857+0i, 'XXIXX': -0.055586423098913734+0i, 'XXIXY': 0-0.13750990311479852i, 'XXIYX': 0+0.09203856671145366i, 'XXIYY': 0.06385550632178724+0i, 'XXIZI': -0.12565038248880567+0i, 'XXXXI': -0.024613781766086286+0i, 'XXXYI': 0+0.008920962139867282i, 'XXXZX': 0.07036667261275437+0i, 'XXXZY': 0+0.04350523824013833i, 'XXYXI': 0+0.03948645208273986i, 'XXYYI': 0.08929861675505807+0i, 'XXYZX': 0-0.0004602714897613408i, 'XXYZY': 0.0805261095265577+0i, 'XXZII': 0.06104668391745971+0i, 'XYIII': 0-0.03548371816061592i, 'XYIIZ': 0+0.06687003533834247i, 'XYIXX': 0+0.08482755820875518i, 'XYIXY': -0.05333748695595309+0i, 'XYIYX': -0.06610444246474792+0i, 'XYIYY': 0+0.03935622180541037i, 'XYIZI': 0-0.11307389867449963i, 'XYXXI': 0-0.06422577954249976i, 'XYXYI': -0.07631616653159615+0i, 'XYXZX': 0-0.0048799524228498176i, 'XYXZY': 0.012840580692048215+0i, 'XYYXI': -0.0375962319895482+0i, 'XYYYI': 0-0.0158183653198926i, 'XYYZX': -0.02300001760585154+0i, 'XYYZY': 0+0.03816501432752714i, 'XYZII': 0+0.053313636492825514i, 'XZIXI': -0.05061733234777215+0i, 'XZIYI': 0+0.01777723518029317i, 'XZIZX': -0.14928218991675232+0i, 'XZIZY': 0+0.024227272119138332i, 'XZXII': 1.4984878331319542+0i, 'XZXIZ': 0.015715531080432152+0i, 'XZXXX': 0.022716311457508076+0i, 'XZXXY': 0+0.030317466240791964i, 'XZXYX': 0+0.09045587112193246i, 'XZXYY': 0.0728852172497566+0i, 'XZXZI': 0.0029326041415565635+0i, 'XZYII': 0-0.07778588525741689i, 'XZYIZ': 0-0.056927556134019244i, 'XZYXX': 0-0.015358162896264425i, 'XZYXY': -0.05455025925628674+0i, 'XZYYX': 0.004381353464038194+0i, 'XZYYY': 0+0.10541517446646001i, 'XZYZI': 0+0.1964422469585531i, 'XZZIX': -0.040799855870742835+0i, 'XZZIY': 0-0.06389881971989883i, 'XZZXI': 1.559397477636141+0i, 'XZZXZ': 0.21083898088719794+0i, 'XZZYI': 0+0.10676863538783096i, 'XZZYZ': 0-0.1335394229888685i, 'XZZZX': 1.3469030321910291+0i, 'XZZZY': 0+0.2900397177225451i, 'YIXII': 0+0.009528810788668657i, 'YIYII': -0.10037883779737643+0i, 'YIZXI': 0+0.02076627025166903i, 'YIZYI': -0.13534948995520946+0i, 'YIZZX': 0+0.16970024029024366i, 'YIZZY': -0.02479766555661493+0i, 'YXIII': 0+0.03548371816061592i, 'YXIIZ': 0-0.06687003533834247i, 'YXIXX': 0-0.03935622180541037i, 'YXIXY': -0.06610444246474792+0i, 'YXIYX': -0.05333748695595309+0i, 'YXIYY': 0-0.08482755820875518i, 'YXIZI': 0+0.11307389867449963i, 'YXXXI': 0+0.0158183653198926i, 'YXXYI': -0.0375962319895482+0i, 'YXXZX': 0-0.03816501432752714i, 'YXXZY': -0.02300001760585154+0i, 'YXYXI': -0.07631616653159615+0i, 'YXYYI': 0+0.06422577954249976i, 'YXYZX': 0.012840580692048215+0i, 'YXYZY': 0+0.0048799524228498176i, 'YXZII': 0-0.053313636492825514i, 'YYIII': 1.2384175889372895+0i, 'YYIIZ': -0.06261563944167857+0i, 'YYIXX': 0.06385550632178724+0i, 'YYIXY': 0-0.09203856671145366i, 'YYIYX': 0+0.13750990311479852i, 'YYIYY': -0.055586423098913734+0i, 'YYIZI': -0.12565038248880567+0i, 'YYXXI': 0.08929861675505807+0i, 'YYXYI': 0-0.03948645208273986i, 'YYXZX': 0.0805261095265577+0i, 'YYXZY': 0+0.0004602714897613408i, 'YYYXI': 0-0.008920962139867282i, 'YYYYI': -0.024613781766086286+0i, 'YYYZX': 0-0.04350523824013833i, 'YYYZY': 0.07036667261275437+0i, 'YYZII': 0.06104668391745971+0i, 'YZIXI': 0-0.01777723518029317i, 'YZIYI': -0.05061733234777215+0i, 'YZIZX': 0-0.024227272119138332i, 'YZIZY': -0.14928218991675232+0i, 'YZXII': 0+0.07778588525741689i, 'YZXIZ': 0+0.056927556134019244i, 'YZXXX': 0-0.10541517446646001i, 'YZXXY': 0.004381353464038194+0i, 'YZXYX': -0.05455025925628674+0i, 'YZXYY': 0+0.015358162896264425i, 'YZXZI': 0-0.1964422469585531i, 'YZYII': 1.4984878331319542+0i, 'YZYIZ': 0.015715531080432152+0i, 'YZYXX': 0.0728852172497566+0i, 'YZYXY': 0-0.09045587112193246i, 'YZYYX': 0-0.030317466240791964i, 'YZYYY': 0.022716311457508076+0i, 'YZYZI': 0.0029326041415565635+0i, 'YZZIX': 0+0.06389881971989883i, 'YZZIY': -0.040799855870742835+0i, 'YZZXI': 0-0.10676863538783096i, 'YZZXZ': 0+0.1335394229888685i, 'YZZYI': 1.559397477636141+0i, 'YZZYZ': 0.21083898088719794+0i, 'YZZZX': 0-0.29003971772254517i, 'YZZZY': 1.3469030321910291+0i, 'ZIIII': -0.9954669196286112+0i, 'ZIIIZ': -0.1721937462736985+0i, 'ZIIXX': -0.052897108929830336+0i, 'ZIIXY': 0+0.1509660721831559i, 'ZIIYX': 0-0.1509660721831559i, 'ZIIYY': -0.052897108929830336+0i, 'ZIIZI': -0.05671336468303201+0i, 'ZIXXI': 0.09128107859716465+0i, 'ZIXYI': 0+0.28592174788456304i, 'ZIXZX': -0.04915185128530421+0i, 'ZIXZY': 0-0.19370049711875836i, 'ZIYXI': 0-0.28592174788456304i, 'ZIYYI': 0.09128107859716465+0i, 'ZIYZX': 0+0.19370049711875836i, 'ZIYZY': -0.04915185128530421+0i, 'ZIZII': 0.14353767057516753+0i, 'ZXXII': -0.05359872175489028+0i, 'ZXYII': 0+0.05283627357399949i, 'ZXZXI': 0.04296867296539002+0i, 'ZXZYI': 0+0.046757035214565576i, 'ZXZZX': 0.004147787205166245+0i, 'ZXZZY': 0+0.04277389675447109i, 'ZYXII': 0-0.05283627357399949i, 'ZYYII': -0.05359872175489028+0i, 'ZYZXI': 0-0.046757035214565576i, 'ZYZYI': 0.04296867296539002+0i, 'ZYZZX': 0-0.04277389675447109i, 'ZYZZY': 0.004147787205166245+0i, 'ZZIII': 0.0012351012900679303+0i})
fr.JordanWigner(n_modes).encode_naive(fham)
QubitHamiltonian({'IIIII': 18.179011420293776+0i, 'IIIIZ': -1.5105518700959728+0i, 'IIIXX': 1.881311117180741+0i, 'IIIXY': 0-0.1946176712042053i, 'IIIYX': 0+0.19461767120420534i, 'IIIYY': 1.8813111171807408+0i, 'IIIZI': -1.546796682732967+0i, 'IIIZZ': -0.054266340490850606+0i, 'IIXIX': -0.05361596892042668+0i, 'IIXIY': 0-0.013822745547563658i, 'IIXXI': 1.8842026253735091+0i, 'IIXXZ': -0.11174858395749908+0i, 'IIXYI': 0-0.13785635094456694i, 'IIXYZ': 0+0.1689694425941602i, 'IIXZX': 1.3772732461972579+0i, 'IIXZY': 0+0.05399726186296385i, 'IIYIX': 0+0.013822745547563658i, 'IIYIY': -0.05361596892042668+0i, 'IIYXI': 0+0.13785635094456694i, 'IIYXZ': 0-0.1689694425941602i, 'IIYYI': 1.8842026253735091+0i, 'IIYYZ': -0.11174858395749908+0i, 'IIYZX': 0-0.05399726186296385i, 'IIYZY': 1.3772732461972579+0i, 'IIZII': -2.449834126426738+0i, 'IIZIZ': 0.04163693372793387+0i, 'IIZXX': -0.2258793620810332+0i, 'IIZXY': 0-0.06235958523524113i, 'IIZYX': 0+0.06235958523524113i, 'IIZYY': -0.2258793620810332+0i, 'IIZZI': 0.08567676196556426+0i, 'IXIXI': -0.014614195732488622+0i, 'IXIYI': 0-0.31837205056588935i, 'IXIZX': -0.07325959468752803+0i, 'IXIZY': 0+0.1111059231609336i, 'IXXII': 1.3616331967323778+0i, 'IXXIZ': -0.01674430117623245+0i, 'IXXXX': -0.08436784632693212+0i, 'IXXXY': 0-0.09044200049276496i, 'IXXYX': 0+0.050363041997751434i, 'IXXYY': -0.035884324481126814+0i, 'IXXZI': 0.06869400142952278+0i, 'IXYII': 0+0.3785025012853412i, 'IXYIZ': 0+0.056068296078251326i, 'IXYXX': 0+0.04606886557466314i, 'IXYXY': 0.007152477972213828+0i, 'IXYYX': -0.05563599981801909+0i, 'IXYYY': 0+0.005989907079649616i, 'IXYZI': 0+0.027922232568671566i, 'IXZIX': 0.09007122424969864+0i, 'IXZIY': 0-0.0644124522379931i, 'IXZXI': 1.2339354147761665+0i, 'IXZXZ': 0.17073672929759276+0i, 'IXZYI': 0+0.20014610038108038i, 'IXZYZ': 0-0.11032045213943485i, 'IXZZX': 1.7547218191630358+0i, 'IXZZY': 0+0.045234739683490635i, 'IYIXI': 0+0.31837205056588935i, 'IYIYI': -0.014614195732488622+0i, 'IYIZX': 0-0.1111059231609336i, 'IYIZY': -0.07325959468752803+0i, 'IYXII': 0-0.3785025012853412i, 'IYXIZ': 0-0.056068296078251326i, 'IYXXX': 0-0.005989907079649616i, 'IYXXY': -0.05563599981801909+0i, 'IYXYX': 0.007152477972213828+0i, 'IYXYY': 0-0.04606886557466314i, 'IYXZI': 0-0.027922232568671566i, 'IYYII': 1.3616331967323778+0i, 'IYYIZ': -0.01674430117623245+0i, 'IYYXX': -0.035884324481126814+0i, 'IYYXY': 0-0.050363041997751434i, 'IYYYX': 0+0.09044200049276496i, 'IYYYY': -0.08436784632693212+0i, 'IYYZI': 0.06869400142952278+0i, 'IYZIX': 0+0.0644124522379931i, 'IYZIY': 0.09007122424969864+0i, 'IYZXI': 0-0.20014610038108038i, 'IYZXZ': 0+0.11032045213943485i, 'IYZYI': 1.2339354147761665+0i, 'IYZYZ': 0.17073672929759276+0i, 'IYZZX': 0-0.04523473968349062i, 'IYZZY': 1.7547218191630358+0i, 'IZIII': -1.7425746861351097+0i, 'IZIIZ': -0.1845692646556515+0i, 'IZIXX': -0.08900240749547213+0i, 'IZIXY': 0-0.03761964681690841i, 'IZIYX': 0+0.03761964681690841i, 'IZIYY': -0.08900240749547213+0i, 'IZIZI': 0.17795289804535422+0i, 'IZXXI': 0.020092118820637293+0i, 'IZXYI': 0+0.10350384183022873i, 'IZXZX': 0.06806307416080667+0i, 'IZXZY': 0+0.09600313971976102i, 'IZYXI': 0-0.10350384183022873i, 'IZYYI': 0.020092118820637293+0i, 'IZYZX': 0-0.09600313971976102i, 'IZYZY': 0.06806307416080667+0i, 'IZZII': 0.08391621522477598+0i, 'XIXII': -0.10037883779737643+0i, 'XIYII': 0-0.009528810788668657i, 'XIZXI': -0.13534948995520946+0i, 'XIZYI': 0-0.02076627025166903i, 'XIZZX': -0.02479766555661493+0i, 'XIZZY': 0-0.16970024029024366i, 'XXIII': 1.2384175889372895+0i, 'XXIIZ': -0.06261563944167857+0i, 'XXIXX': -0.055586423098913734+0i, 'XXIXY': 0-0.13750990311479852i, 'XXIYX': 0+0.09203856671145366i, 'XXIYY': 0.06385550632178724+0i, 'XXIZI': -0.12565038248880567+0i, 'XXXXI': -0.024613781766086286+0i, 'XXXYI': 0+0.008920962139867282i, 'XXXZX': 0.07036667261275437+0i, 'XXXZY': 0+0.04350523824013833i, 'XXYXI': 0+0.03948645208273986i, 'XXYYI': 0.08929861675505807+0i, 'XXYZX': 0-0.0004602714897613408i, 'XXYZY': 0.0805261095265577+0i, 'XXZII': 0.06104668391745971+0i, 'XYIII': 0-0.03548371816061592i, 'XYIIZ': 0+0.06687003533834247i, 'XYIXX': 0+0.08482755820875518i, 'XYIXY': -0.05333748695595309+0i, 'XYIYX': -0.06610444246474792+0i, 'XYIYY': 0+0.03935622180541037i, 'XYIZI': 0-0.11307389867449963i, 'XYXXI': 0-0.06422577954249976i, 'XYXYI': -0.07631616653159615+0i, 'XYXZX': 0-0.0048799524228498176i, 'XYXZY': 0.012840580692048215+0i, 'XYYXI': -0.0375962319895482+0i, 'XYYYI': 0-0.0158183653198926i, 'XYYZX': -0.02300001760585154+0i, 'XYYZY': 0+0.03816501432752714i, 'XYZII': 0+0.053313636492825514i, 'XZIXI': -0.05061733234777215+0i, 'XZIYI': 0+0.01777723518029317i, 'XZIZX': -0.14928218991675232+0i, 'XZIZY': 0+0.024227272119138332i, 'XZXII': 1.4984878331319542+0i, 'XZXIZ': 0.015715531080432152+0i, 'XZXXX': 0.022716311457508076+0i, 'XZXXY': 0+0.030317466240791964i, 'XZXYX': 0+0.09045587112193246i, 'XZXYY': 0.0728852172497566+0i, 'XZXZI': 0.0029326041415565635+0i, 'XZYII': 0-0.07778588525741689i, 'XZYIZ': 0-0.056927556134019244i, 'XZYXX': 0-0.015358162896264425i, 'XZYXY': -0.05455025925628674+0i, 'XZYYX': 0.004381353464038194+0i, 'XZYYY': 0+0.10541517446646001i, 'XZYZI': 0+0.1964422469585531i, 'XZZIX': -0.040799855870742835+0i, 'XZZIY': 0-0.06389881971989883i, 'XZZXI': 1.559397477636141+0i, 'XZZXZ': 0.21083898088719794+0i, 'XZZYI': 0+0.10676863538783096i, 'XZZYZ': 0-0.1335394229888685i, 'XZZZX': 1.3469030321910291+0i, 'XZZZY': 0+0.2900397177225451i, 'YIXII': 0+0.009528810788668657i, 'YIYII': -0.10037883779737643+0i, 'YIZXI': 0+0.02076627025166903i, 'YIZYI': -0.13534948995520946+0i, 'YIZZX': 0+0.16970024029024366i, 'YIZZY': -0.02479766555661493+0i, 'YXIII': 0+0.03548371816061592i, 'YXIIZ': 0-0.06687003533834247i, 'YXIXX': 0-0.03935622180541037i, 'YXIXY': -0.06610444246474792+0i, 'YXIYX': -0.05333748695595309+0i, 'YXIYY': 0-0.08482755820875518i, 'YXIZI': 0+0.11307389867449963i, 'YXXXI': 0+0.0158183653198926i, 'YXXYI': -0.0375962319895482+0i, 'YXXZX': 0-0.03816501432752714i, 'YXXZY': -0.02300001760585154+0i, 'YXYXI': -0.07631616653159615+0i, 'YXYYI': 0+0.06422577954249976i, 'YXYZX': 0.012840580692048215+0i, 'YXYZY': 0+0.0048799524228498176i, 'YXZII': 0-0.053313636492825514i, 'YYIII': 1.2384175889372895+0i, 'YYIIZ': -0.06261563944167857+0i, 'YYIXX': 0.06385550632178724+0i, 'YYIXY': 0-0.09203856671145366i, 'YYIYX': 0+0.13750990311479852i, 'YYIYY': -0.055586423098913734+0i, 'YYIZI': -0.12565038248880567+0i, 'YYXXI': 0.08929861675505807+0i, 'YYXYI': 0-0.03948645208273986i, 'YYXZX': 0.0805261095265577+0i, 'YYXZY': 0+0.0004602714897613408i, 'YYYXI': 0-0.008920962139867282i, 'YYYYI': -0.024613781766086286+0i, 'YYYZX': 0-0.04350523824013833i, 'YYYZY': 0.07036667261275437+0i, 'YYZII': 0.06104668391745971+0i, 'YZIXI': 0-0.01777723518029317i, 'YZIYI': -0.05061733234777215+0i, 'YZIZX': 0-0.024227272119138332i, 'YZIZY': -0.14928218991675232+0i, 'YZXII': 0+0.07778588525741689i, 'YZXIZ': 0+0.056927556134019244i, 'YZXXX': 0-0.10541517446646001i, 'YZXXY': 0.004381353464038194+0i, 'YZXYX': -0.05455025925628674+0i, 'YZXYY': 0+0.015358162896264425i, 'YZXZI': 0-0.1964422469585531i, 'YZYII': 1.4984878331319542+0i, 'YZYIZ': 0.015715531080432152+0i, 'YZYXX': 0.0728852172497566+0i, 'YZYXY': 0-0.09045587112193246i, 'YZYYX': 0-0.030317466240791964i, 'YZYYY': 0.022716311457508076+0i, 'YZYZI': 0.0029326041415565635+0i, 'YZZIX': 0+0.06389881971989883i, 'YZZIY': -0.040799855870742835+0i, 'YZZXI': 0-0.10676863538783096i, 'YZZXZ': 0+0.1335394229888685i, 'YZZYI': 1.559397477636141+0i, 'YZZYZ': 0.21083898088719794+0i, 'YZZZX': 0-0.29003971772254517i, 'YZZZY': 1.3469030321910291+0i, 'ZIIII': -0.9954669196286112+0i, 'ZIIIZ': -0.1721937462736985+0i, 'ZIIXX': -0.052897108929830336+0i, 'ZIIXY': 0+0.1509660721831559i, 'ZIIYX': 0-0.1509660721831559i, 'ZIIYY': -0.052897108929830336+0i, 'ZIIZI': -0.05671336468303201+0i, 'ZIXXI': 0.09128107859716465+0i, 'ZIXYI': 0+0.28592174788456304i, 'ZIXZX': -0.04915185128530421+0i, 'ZIXZY': 0-0.19370049711875836i, 'ZIYXI': 0-0.28592174788456304i, 'ZIYYI': 0.09128107859716465+0i, 'ZIYZX': 0+0.19370049711875836i, 'ZIYZY': -0.04915185128530421+0i, 'ZIZII': 0.14353767057516753+0i, 'ZXXII': -0.05359872175489028+0i, 'ZXYII': 0+0.05283627357399949i, 'ZXZXI': 0.04296867296539002+0i, 'ZXZYI': 0+0.046757035214565576i, 'ZXZZX': 0.004147787205166245+0i, 'ZXZZY': 0+0.04277389675447109i, 'ZYXII': 0-0.05283627357399949i, 'ZYYII': -0.05359872175489028+0i, 'ZYZXI': 0-0.046757035214565576i, 'ZYZYI': 0.04296867296539002+0i, 'ZYZZX': 0-0.04277389675447109i, 'ZYZZY': 0.004147787205166245+0i, 'ZZIII': 0.0012351012900679303+0i})
fr.JordanWigner(n_modes).encode_annealed(fham)
QubitHamiltonian({'IIIII': 18.179011420293776+0i, 'IIIIZ': -2.449834126426738+0i, 'IIIXX': 1.3616331967323778+0i, 'IIIXY': 0+0.3785025012853412i, 'IIIYX': 0-0.3785025012853412i, 'IIIYY': 1.3616331967323778+0i, 'IIIZI': -1.7425746861351097+0i, 'IIIZZ': 0.08391621522477598+0i, 'IIXIX': 0.020092118820637293+0i, 'IIXIY': 0-0.10350384183022873i, 'IIXXI': 1.2339354147761665+0i, 'IIXXZ': -0.014614195732488622+0i, 'IIXYI': 0-0.20014610038108038i, 'IIXYZ': 0+0.31837205056588935i, 'IIXZX': 1.8842026253735091+0i, 'IIXZY': 0+0.13785635094456694i, 'IIYIX': 0+0.10350384183022873i, 'IIYIY': 0.020092118820637293+0i, 'IIYXI': 0+0.20014610038108038i, 'IIYXZ': 0-0.31837205056588935i, 'IIYYI': 1.2339354147761665+0i, 'IIYYZ': -0.014614195732488622+0i, 'IIYZX': 0-0.13785635094456694i, 'IIYZY': 1.8842026253735091+0i, 'IIZII': -1.546796682732967+0i, 'IIZIZ': 0.08567676196556426+0i, 'IIZXX': 0.06869400142952278+0i, 'IIZXY': 0+0.027922232568671566i, 'IIZYX': 0-0.027922232568671566i, 'IIZYY': 0.06869400142952278+0i, 'IIZZI': 0.17795289804535422+0i, 'IXIXI': 0.09007122424969864+0i, 'IXIYI': 0+0.0644124522379931i, 'IXIZX': -0.05361596892042668+0i, 'IXIZY': 0+0.013822745547563658i, 'IXXII': 1.8813111171807408+0i, 'IXXIZ': -0.2258793620810332+0i, 'IXXXX': -0.035884324481126814+0i, 'IXXXY': 0+0.005989907079649616i, 'IXXYX': 0-0.04606886557466314i, 'IXXYY': -0.08436784632693212+0i, 'IXXZI': -0.08900240749547213+0i, 'IXYII': 0+0.1946176712042053i, 'IXYIZ': 0+0.06235958523524113i, 'IXYXX': 0+0.09044200049276496i, 'IXYXY': -0.007152477972213828+0i, 'IXYYX': 0.05563599981801909+0i, 'IXYYY': 0+0.050363041997751434i, 'IXYZI': 0+0.03761964681690841i, 'IXZIX': 0.06806307416080667+0i, 'IXZIY': 0-0.09600313971976102i, 'IXZXI': 1.7547218191630358+0i, 'IXZXZ': -0.07325959468752803+0i, 'IXZYI': 0-0.045234739683490635i, 'IXZYZ': 0-0.1111059231609336i, 'IXZZX': 1.3772732461972579+0i, 'IXZZY': 0-0.05399726186296385i, 'IYIXI': 0-0.0644124522379931i, 'IYIYI': 0.09007122424969864+0i, 'IYIZX': 0-0.013822745547563658i, 'IYIZY': -0.05361596892042668+0i, 'IYXII': 0-0.19461767120420534i, 'IYXIZ': 0-0.06235958523524113i, 'IYXXX': 0-0.050363041997751434i, 'IYXXY': 0.05563599981801909+0i, 'IYXYX': -0.007152477972213828+0i, 'IYXYY': 0-0.09044200049276496i, 'IYXZI': 0-0.03761964681690841i, 'IYYII': 1.881311117180741+0i, 'IYYIZ': -0.2258793620810332+0i, 'IYYXX': -0.08436784632693212+0i, 'IYYXY': 0+0.04606886557466314i, 'IYYYX': 0-0.005989907079649616i, 'IYYYY': -0.035884324481126814+0i, 'IYYZI': -0.08900240749547213+0i, 'IYZIX': 0+0.09600313971976102i, 'IYZIY': 0.06806307416080667+0i, 'IYZXI': 0+0.04523473968349062i, 'IYZXZ': 0+0.1111059231609336i, 'IYZYI': 1.7547218191630358+0i, 'IYZYZ': -0.07325959468752803+0i, 'IYZZX': 0+0.05399726186296385i, 'IYZZY': 1.3772732461972579+0i, 'IZIII': -1.5105518700959728+0i, 'IZIIZ': 0.04163693372793387+0i, 'IZIXX': -0.01674430117623245+0i, 'IZIXY': 0+0.056068296078251326i, 'IZIYX': 0-0.056068296078251326i, 'IZIYY': -0.01674430117623245+0i, 'IZIZI': -0.1845692646556515+0i, 'IZXXI': 0.17073672929759276+0i, 'IZXYI': 0+0.11032045213943485i, 'IZXZX': -0.11174858395749908+0i, 'IZXZY': 0-0.1689694425941602i, 'IZYXI': 0-0.11032045213943485i, 'IZYYI': 0.17073672929759276+0i, 'IZYZX': 0+0.1689694425941602i, 'IZYZY': -0.11174858395749908+0i, 'IZZII': -0.054266340490850606+0i, 'XIXII': 0.21083898088719794+0i, 'XIYII': 0-0.1335394229888685i, 'XIZXI': -0.06261563944167857+0i, 'XIZYI': 0+0.06687003533834247i, 'XIZZX': 0.015715531080432152+0i, 'XIZZY': 0-0.056927556134019244i, 'XXIII': 1.3469030321910291+0i, 'XXIIZ': -0.14928218991675232+0i, 'XXIXX': 0.02300001760585154+0i, 'XXIXY': 0-0.0048799524228498176i, 'XXIYX': 0-0.0004602714897613408i, 'XXIYY': -0.07036667261275437+0i, 'XXIZI': -0.02479766555661493+0i, 'XXXXI': 0.055586423098913734+0i, 'XXXYI': 0-0.08482755820875518i, 'XXXZX': -0.022716311457508076+0i, 'XXXZY': 0+0.015358162896264425i, 'XXYXI': 0-0.09203856671145366i, 'XXYYI': 0.06610444246474792+0i, 'XXYZX': 0-0.09045587112193246i, 'XXYZY': -0.004381353464038194+0i, 'XXZII': -0.040799855870742835+0i, 'XYIII': 0+0.2900397177225451i, 'XYIIZ': 0+0.024227272119138332i, 'XYIXX': 0-0.03816501432752714i, 'XYIXY': 0.012840580692048215+0i, 'XYIYX': 0.0805261095265577+0i, 'XYIYY': 0-0.04350523824013833i, 'XYIZI': 0-0.16970024029024366i, 'XYXXI': 0+0.13750990311479852i, 'XYXYI': 0.05333748695595309+0i, 'XYXZX': 0-0.030317466240791964i, 'XYXZY': 0.05455025925628674+0i, 'XYYXI': -0.06385550632178724+0i, 'XYYYI': 0-0.03935622180541037i, 'XYYZX': -0.0728852172497566+0i, 'XYYZY': 0-0.10541517446646001i, 'XYZII': 0-0.06389881971989883i, 'XZIXI': -0.12565038248880567+0i, 'XZIYI': 0-0.11307389867449963i, 'XZIZX': 0.0029326041415565635+0i, 'XZIZY': 0+0.1964422469585531i, 'XZXII': 1.559397477636141+0i, 'XZXIZ': -0.05061733234777215+0i, 'XZXXX': 0.0375962319895482+0i, 'XZXXY': 0-0.06422577954249976i, 'XZXYX': 0+0.03948645208273986i, 'XZXYY': 0.024613781766086286+0i, 'XZXZI': -0.13534948995520946+0i, 'XZYII': 0+0.10676863538783096i, 'XZYIZ': 0+0.01777723518029317i, 'XZYXX': 0+0.0158183653198926i, 'XZYXY': -0.07631616653159615+0i, 'XZYYX': 0.08929861675505807+0i, 'XZYYY': 0-0.008920962139867282i, 'XZYZI': 0-0.02076627025166903i, 'XZZIX': -0.10037883779737643+0i, 'XZZIY': 0-0.009528810788668657i, 'XZZXI': 1.2384175889372895+0i, 'XZZXZ': 0.06104668391745971+0i, 'XZZYI': 0-0.03548371816061592i, 'XZZYZ': 0+0.053313636492825514i, 'XZZZX': 1.4984878331319542+0i, 'XZZZY': 0-0.07778588525741689i, 'YIXII': 0+0.1335394229888685i, 'YIYII': 0.21083898088719794+0i, 'YIZXI': 0-0.06687003533834247i, 'YIZYI': -0.06261563944167857+0i, 'YIZZX': 0+0.056927556134019244i, 'YIZZY': 0.015715531080432152+0i, 'YXIII': 0-0.29003971772254517i, 'YXIIZ': 0-0.024227272119138332i, 'YXIXX': 0+0.04350523824013833i, 'YXIXY': 0.0805261095265577+0i, 'YXIYX': 0.012840580692048215+0i, 'YXIYY': 0+0.03816501432752714i, 'YXIZI': 0+0.16970024029024366i, 'YXXXI': 0+0.03935622180541037i, 'YXXYI': -0.06385550632178724+0i, 'YXXZX': 0+0.10541517446646001i, 'YXXZY': -0.0728852172497566+0i, 'YXYXI': 0.05333748695595309+0i, 'YXYYI': 0-0.13750990311479852i, 'YXYZX': 0.05455025925628674+0i, 'YXYZY': 0+0.030317466240791964i, 'YXZII': 0+0.06389881971989883i, 'YYIII': 1.3469030321910291+0i, 'YYIIZ': -0.14928218991675232+0i, 'YYIXX': -0.07036667261275437+0i, 'YYIXY': 0+0.0004602714897613408i, 'YYIYX': 0+0.0048799524228498176i, 'YYIYY': 0.02300001760585154+0i, 'YYIZI': -0.02479766555661493+0i, 'YYXXI': 0.06610444246474792+0i, 'YYXYI': 0+0.09203856671145366i, 'YYXZX': -0.004381353464038194+0i, 'YYXZY': 0+0.09045587112193246i, 'YYYXI': 0+0.08482755820875518i, 'YYYYI': 0.055586423098913734+0i, 'YYYZX': 0-0.015358162896264425i, 'YYYZY': -0.022716311457508076+0i, 'YYZII': -0.040799855870742835+0i, 'YZIXI': 0+0.11307389867449963i, 'YZIYI': -0.12565038248880567+0i, 'YZIZX': 0-0.1964422469585531i, 'YZIZY': 0.0029326041415565635+0i, 'YZXII': 0-0.10676863538783096i, 'YZXIZ': 0-0.01777723518029317i, 'YZXXX': 0+0.008920962139867282i, 'YZXXY': 0.08929861675505807+0i, 'YZXYX': -0.07631616653159615+0i, 'YZXYY': 0-0.0158183653198926i, 'YZXZI': 0+0.02076627025166903i, 'YZYII': 1.559397477636141+0i, 'YZYIZ': -0.05061733234777215+0i, 'YZYXX': 0.024613781766086286+0i, 'YZYXY': 0-0.03948645208273986i, 'YZYYX': 0+0.06422577954249976i, 'YZYYY': 0.0375962319895482+0i, 'YZYZI': -0.13534948995520946+0i, 'YZZIX': 0+0.009528810788668657i, 'YZZIY': -0.10037883779737643+0i, 'YZZXI': 0+0.03548371816061592i, 'YZZXZ': 0-0.053313636492825514i, 'YZZYI': 1.2384175889372895+0i, 'YZZYZ': 0.06104668391745971+0i, 'YZZZX': 0+0.07778588525741689i, 'YZZZY': 1.4984878331319542+0i, 'ZIIII': -0.9954669196286112+0i, 'ZIIIZ': 0.14353767057516753+0i, 'ZIIXX': -0.05359872175489028+0i, 'ZIIXY': 0+0.05283627357399949i, 'ZIIYX': 0-0.05283627357399949i, 'ZIIYY': -0.05359872175489028+0i, 'ZIIZI': 0.0012351012900679303+0i, 'ZIXXI': 0.04296867296539002+0i, 'ZIXYI': 0-0.046757035214565576i, 'ZIXZX': 0.09128107859716465+0i, 'ZIXZY': 0-0.28592174788456304i, 'ZIYXI': 0+0.046757035214565576i, 'ZIYYI': 0.04296867296539002+0i, 'ZIYZX': 0+0.28592174788456304i, 'ZIYZY': 0.09128107859716465+0i, 'ZIZII': -0.05671336468303201+0i, 'ZXXII': -0.052897108929830336+0i, 'ZXYII': 0-0.1509660721831559i, 'ZXZXI': 0.004147787205166245+0i, 'ZXZYI': 0-0.04277389675447109i, 'ZXZZX': -0.04915185128530421+0i, 'ZXZZY': 0+0.19370049711875836i, 'ZYXII': 0+0.1509660721831559i, 'ZYYII': -0.052897108929830336+0i, 'ZYZXI': 0+0.04277389675447109i, 'ZYZYI': 0.004147787205166245+0i, 'ZYZZX': 0-0.19370049711875836i, 'ZYZZY': -0.04915185128530421+0i, 'ZZIII': -0.1721937462736985+0i})
TernaryTree#
If you’ve built your own encoding, for instance using the TernaryTree class, you can also use this.
from ferrmion.visualise import draw_tt
tree = fr.TernaryTree(n_modes=5)
tree.add_node("zy")
tree.add_node("x")
tree.add_node("y")
tree.enumeration_scheme = tree.default_enumeration_scheme()
tree.build_encoding()
draw_tt(tree, type="standard", enumeration_scheme=tree.enumeration_scheme)
tree.encode(fham)
QubitHamiltonian({'IIIII': 18.179011420293776+0i, 'IIIIX': 0-0.1946176712042053i, 'IIIIY': 1.8813111171807408+0i, 'IIIIZ': -1.546796682732967+0i, 'IIIZI': -0.054266340490850606+0i, 'IIIZX': 0+0.19461767120420534i, 'IIIZY': -1.881311117180741+0i, 'IIIZZ': -1.5105518700959728+0i, 'IIXII': 0+0.3785025012853412i, 'IIXIX': 0.007152477972213828+0i, 'IIXIY': 0+0.005989907079649616i, 'IIXIZ': 0+0.027922232568671566i, 'IIXZX': -0.05563599981801909+0i, 'IIXZY': 0-0.04606886557466314i, 'IIXZZ': 0+0.056068296078251326i, 'IIYII': 1.3616331967323778+0i, 'IIYIX': 0-0.050363041997751434i, 'IIYIY': -0.08436784632693212+0i, 'IIYIZ': 0.06869400142952278+0i, 'IIYZX': 0+0.09044200049276496i, 'IIYZY': 0.035884324481126814+0i, 'IIYZZ': -0.01674430117623245+0i, 'IIZII': -1.7425746861351097+0i, 'IIZIX': 0-0.03761964681690841i, 'IIZIY': -0.08900240749547213+0i, 'IIZIZ': 0.17795289804535422+0i, 'IIZZX': 0+0.03761964681690841i, 'IIZZY': 0.08900240749547213+0i, 'IIZZZ': -0.1845692646556515+0i, 'IXIII': 1.4984878331319542+0i, 'IXIIX': 0+0.030317466240791964i, 'IXIIY': 0.0728852172497566+0i, 'IXIIZ': 0.0029326041415565635+0i, 'IXIZX': 0+0.09045587112193246i, 'IXIZY': -0.022716311457508076+0i, 'IXIZZ': 0.015715531080432152+0i, 'IXXII': 0-0.053313636492825514i, 'IXYII': 0.06104668391745971+0i, 'IXZII': -0.10037883779737643+0i, 'IYIII': 0+0.07778588525741689i, 'IYIIX': 0.004381353464038194+0i, 'IYIIY': 0+0.015358162896264425i, 'IYIIZ': 0-0.1964422469585531i, 'IYIZX': -0.05455025925628674+0i, 'IYIZY': 0+0.10541517446646001i, 'IYIZZ': 0+0.056927556134019244i, 'IYXII': -0.06104668391745971+0i, 'IYYII': 0-0.053313636492825514i, 'IYZII': 0+0.009528810788668657i, 'IZIII': -0.9954669196286112+0i, 'IZIIX': 0+0.1509660721831559i, 'IZIIY': -0.052897108929830336+0i, 'IZIIZ': -0.05671336468303201+0i, 'IZIZX': 0-0.1509660721831559i, 'IZIZY': 0.052897108929830336+0i, 'IZIZZ': -0.1721937462736985+0i, 'IZXII': 0+0.05283627357399949i, 'IZYII': -0.05359872175489028+0i, 'IZZII': 0.0012351012900679303+0i, 'XIIXI': 0.06806307416080667+0i, 'XIIYX': 0.020092118820637293+0i, 'XIIYY': 0+0.10350384183022873i, 'XIIYZ': 0+0.09600313971976102i, 'XIXXI': 0+0.04523473968349062i, 'XIXXX': 0.17073672929759276+0i, 'XIXXY': 0-0.11032045213943485i, 'XIXXZ': 0-0.0644124522379931i, 'XIXYI': -0.09007122424969864+0i, 'XIXYX': 0+0.20014610038108038i, 'XIXYY': -1.2339354147761665+0i, 'XIXYZ': -1.7547218191630358+0i, 'XIYXI': 1.7547218191630358+0i, 'XIYXX': 0+0.11032045213943485i, 'XIYXY': 0.17073672929759276+0i, 'XIYXZ': 0.09007122424969864+0i, 'XIYYI': 0-0.0644124522379931i, 'XIYYX': 1.2339354147761665+0i, 'XIYYY': 0+0.20014610038108038i, 'XIYYZ': 0+0.045234739683490635i, 'XIZXI': 1.3772732461972579+0i, 'XIZXX': 0-0.1689694425941602i, 'XIZXY': -0.11174858395749908+0i, 'XIZXZ': -0.05361596892042668+0i, 'XIZYI': 0-0.013822745547563658i, 'XIZYX': 1.8842026253735091+0i, 'XIZYY': 0-0.13785635094456694i, 'XIZYZ': 0+0.05399726186296385i, 'XXXXI': 0-0.0004602714897613408i, 'XXXYX': 0+0.03948645208273986i, 'XXXYY': 0.08929861675505807+0i, 'XXXYZ': 0.0805261095265577+0i, 'XXYXI': -0.02300001760585154+0i, 'XXYYX': -0.0375962319895482+0i, 'XXYYY': 0-0.0158183653198926i, 'XXYYZ': 0+0.03816501432752714i, 'XXZXI': -0.14928218991675232+0i, 'XXZYX': -0.05061733234777215+0i, 'XXZYY': 0+0.01777723518029317i, 'XXZYZ': 0+0.024227272119138332i, 'XYXXI': 0.012840580692048215+0i, 'XYXYX': -0.07631616653159615+0i, 'XYXYY': 0+0.06422577954249976i, 'XYXYZ': 0+0.0048799524228498176i, 'XYYXI': 0-0.04350523824013833i, 'XYYYX': 0-0.008920962139867282i, 'XYYYY': -0.024613781766086286+0i, 'XYYYZ': 0.07036667261275437+0i, 'XYZXI': 0-0.024227272119138332i, 'XYZYX': 0-0.01777723518029317i, 'XYZYY': -0.05061733234777215+0i, 'XYZYZ': -0.14928218991675232+0i, 'XZXXI': 0+0.04277389675447109i, 'XZXYX': 0+0.046757035214565576i, 'XZXYY': -0.04296867296539002+0i, 'XZXYZ': -0.004147787205166245+0i, 'XZYXI': 0.004147787205166245+0i, 'XZYYX': 0.04296867296539002+0i, 'XZYYY': 0+0.046757035214565576i, 'XZYYZ': 0+0.04277389675447109i, 'XZZXI': -0.04915185128530421+0i, 'XZZYX': 0.09128107859716465+0i, 'XZZYY': 0+0.28592174788456304i, 'XZZYZ': 0-0.19370049711875836i, 'YIIXI': 0+0.19370049711875836i, 'YIIYX': 0-0.28592174788456304i, 'YIIYY': 0.09128107859716465+0i, 'YIIYZ': -0.04915185128530421+0i, 'YXIXI': 0-0.29003971772254517i, 'YXIXX': -0.21083898088719794+0i, 'YXIXY': 0+0.1335394229888685i, 'YXIXZ': 0+0.06389881971989883i, 'YXIYI': -0.040799855870742835+0i, 'YXIYX': 0-0.10676863538783096i, 'YXIYY': 1.559397477636141+0i, 'YXIYZ': 1.3469030321910291+0i, 'YXXXI': 0.0805261095265577+0i, 'YXXYX': 0.08929861675505807+0i, 'YXXYY': 0-0.03948645208273986i, 'YXXYZ': 0+0.0004602714897613408i, 'YXYXI': 0+0.03816501432752714i, 'YXYYX': 0-0.0158183653198926i, 'YXYYY': 0.0375962319895482+0i, 'YXYYZ': 0.02300001760585154+0i, 'YXZXI': 0+0.16970024029024366i, 'YXZYX': 0+0.02076627025166903i, 'YXZYY': -0.13534948995520946+0i, 'YXZYZ': -0.02479766555661493+0i, 'YYIXI': -1.3469030321910291+0i, 'YYIXX': 0-0.1335394229888685i, 'YYIXY': -0.21083898088719794+0i, 'YYIXZ': 0.040799855870742835+0i, 'YYIYI': 0+0.06389881971989883i, 'YYIYX': -1.559397477636141+0i, 'YYIYY': 0-0.10676863538783096i, 'YYIYZ': 0-0.2900397177225451i, 'YYXXI': 0+0.0048799524228498176i, 'YYXYX': 0+0.06422577954249976i, 'YYXYY': 0.07631616653159615+0i, 'YYXYZ': -0.012840580692048215+0i, 'YYYXI': 0.07036667261275437+0i, 'YYYYX': -0.024613781766086286+0i, 'YYYYY': 0+0.008920962139867282i, 'YYYYZ': 0+0.04350523824013833i, 'YYZXI': 0.02479766555661493+0i, 'YYZYX': 0.13534948995520946+0i, 'YYZYY': 0+0.02076627025166903i, 'YYZYZ': 0+0.16970024029024366i, 'YZIXI': 0-0.05399726186296385i, 'YZIXX': 0.11174858395749908+0i, 'YZIXY': 0-0.1689694425941602i, 'YZIXZ': 0+0.013822745547563658i, 'YZIYI': -0.05361596892042668+0i, 'YZIYX': 0+0.13785635094456694i, 'YZIYY': 1.8842026253735091+0i, 'YZIYZ': 1.3772732461972579+0i, 'YZXXI': -0.07325959468752803+0i, 'YZXYX': -0.014614195732488622+0i, 'YZXYY': 0-0.31837205056588935i, 'YZXYZ': 0+0.1111059231609336i, 'YZYXI': 0-0.1111059231609336i, 'YZYYX': 0+0.31837205056588935i, 'YZYYY': -0.014614195732488622+0i, 'YZYYZ': -0.07325959468752803+0i, 'YZZXI': 0-0.09600313971976102i, 'YZZYX': 0-0.10350384183022873i, 'YZZYY': 0.020092118820637293+0i, 'YZZYZ': 0.06806307416080667+0i, 'ZIXII': 0-0.05283627357399949i, 'ZIYII': 0.05359872175489028+0i, 'ZIZII': 0.14353767057516753+0i, 'ZXIII': 0.10037883779737643+0i, 'ZXXII': 0-0.03548371816061592i, 'ZXXIX': 0.06610444246474792+0i, 'ZXXIY': 0+0.08482755820875518i, 'ZXXIZ': 0-0.11307389867449963i, 'ZXXZX': 0.05333748695595309+0i, 'ZXXZY': 0-0.03935622180541037i, 'ZXXZZ': 0+0.06687003533834247i, 'ZXYII': -1.2384175889372895+0i, 'ZXYIX': 0+0.09203856671145366i, 'ZXYIY': 0.055586423098913734+0i, 'ZXYIZ': 0.12565038248880567+0i, 'ZXYZX': 0-0.13750990311479852i, 'ZXYZY': 0.06385550632178724+0i, 'ZXYZZ': 0.06261563944167857+0i, 'ZXZII': -1.4984878331319542+0i, 'ZXZIX': 0+0.09045587112193246i, 'ZXZIY': -0.022716311457508076+0i, 'ZXZIZ': -0.0029326041415565635+0i, 'ZXZZX': 0+0.030317466240791964i, 'ZXZZY': 0.0728852172497566+0i, 'ZXZZZ': -0.015715531080432152+0i, 'ZYIII': 0-0.009528810788668657i, 'ZYXII': 1.2384175889372895+0i, 'ZYXIX': 0-0.13750990311479852i, 'ZYXIY': 0.06385550632178724+0i, 'ZYXIZ': -0.12565038248880567+0i, 'ZYXZX': 0+0.09203856671145366i, 'ZYXZY': 0.055586423098913734+0i, 'ZYXZZ': -0.06261563944167857+0i, 'ZYYII': 0-0.03548371816061592i, 'ZYYIX': -0.05333748695595309+0i, 'ZYYIY': 0+0.03935622180541037i, 'ZYYIZ': 0-0.11307389867449963i, 'ZYYZX': -0.06610444246474792+0i, 'ZYYZY': 0-0.08482755820875518i, 'ZYYZZ': 0+0.06687003533834247i, 'ZYZII': 0-0.07778588525741689i, 'ZYZIX': -0.05455025925628674+0i, 'ZYZIY': 0+0.10541517446646001i, 'ZYZIZ': 0+0.1964422469585531i, 'ZYZZX': 0.004381353464038194+0i, 'ZYZZY': 0+0.015358162896264425i, 'ZYZZZ': 0-0.056927556134019244i, 'ZZIII': 0.08391621522477598+0i, 'ZZXII': 0-0.3785025012853412i, 'ZZXIX': -0.05563599981801909+0i, 'ZZXIY': 0-0.04606886557466314i, 'ZZXIZ': 0-0.027922232568671566i, 'ZZXZX': 0.007152477972213828+0i, 'ZZXZY': 0+0.005989907079649616i, 'ZZXZZ': 0-0.056068296078251326i, 'ZZYII': -1.3616331967323778+0i, 'ZZYIX': 0+0.09044200049276496i, 'ZZYIY': 0.035884324481126814+0i, 'ZZYIZ': -0.06869400142952278+0i, 'ZZYZX': 0-0.050363041997751434i, 'ZZYZY': -0.08436784632693212+0i, 'ZZYZZ': 0.01674430117623245+0i, 'ZZZII': -2.449834126426738+0i, 'ZZZIX': 0-0.06235958523524113i, 'ZZZIY': -0.2258793620810332+0i, 'ZZZIZ': 0.08567676196556426+0i, 'ZZZZX': 0+0.06235958523524113i, 'ZZZZY': 0.2258793620810332+0i, 'ZZZZZ': 0.04163693372793387+0i})
qham_annealed = tree.encode_annealed(fham)
qham_annealed
QubitHamiltonian({'IIIII': 18.179011420293776+0i, 'IIIIX': 0+0.3785025012853412i, 'IIIIY': 1.3616331967323778+0i, 'IIIIZ': -1.7425746861351097+0i, 'IIIZI': 0.08391621522477598+0i, 'IIIZX': 0-0.3785025012853412i, 'IIIZY': -1.3616331967323778+0i, 'IIIZZ': -2.449834126426738+0i, 'IIXII': 0+0.1946176712042053i, 'IIXIX': -0.007152477972213828+0i, 'IIXIY': 0+0.050363041997751434i, 'IIXIZ': 0+0.03761964681690841i, 'IIXZX': 0.05563599981801909+0i, 'IIXZY': 0-0.09044200049276496i, 'IIXZZ': 0+0.06235958523524113i, 'IIYII': 1.881311117180741+0i, 'IIYIX': 0+0.04606886557466314i, 'IIYIY': -0.035884324481126814+0i, 'IIYIZ': -0.08900240749547213+0i, 'IIYZX': 0-0.005989907079649616i, 'IIYZY': 0.08436784632693212+0i, 'IIYZZ': -0.2258793620810332+0i, 'IIZII': -1.5105518700959728+0i, 'IIZIX': 0+0.056068296078251326i, 'IIZIY': -0.01674430117623245+0i, 'IIZIZ': -0.1845692646556515+0i, 'IIZZX': 0-0.056068296078251326i, 'IIZZY': 0.01674430117623245+0i, 'IIZZZ': 0.04163693372793387+0i, 'IXIII': 1.559397477636141+0i, 'IXIIX': 0-0.06422577954249976i, 'IXIIY': 0.024613781766086286+0i, 'IXIIZ': -0.13534948995520946+0i, 'IXIZX': 0+0.03948645208273986i, 'IXIZY': -0.0375962319895482+0i, 'IXIZZ': -0.05061733234777215+0i, 'IXXII': 0+0.06389881971989883i, 'IXYII': -0.040799855870742835+0i, 'IXZII': 0.21083898088719794+0i, 'IYIII': 0-0.10676863538783096i, 'IYIIX': 0.08929861675505807+0i, 'IYIIY': 0-0.0158183653198926i, 'IYIIZ': 0+0.02076627025166903i, 'IYIZX': -0.07631616653159615+0i, 'IYIZY': 0-0.008920962139867282i, 'IYIZZ': 0-0.01777723518029317i, 'IYXII': 0.040799855870742835+0i, 'IYYII': 0+0.06389881971989883i, 'IYZII': 0+0.1335394229888685i, 'IZIII': -0.9954669196286112+0i, 'IZIIX': 0+0.05283627357399949i, 'IZIIY': -0.05359872175489028+0i, 'IZIIZ': 0.0012351012900679303+0i, 'IZIZX': 0-0.05283627357399949i, 'IZIZY': 0.05359872175489028+0i, 'IZIZZ': 0.14353767057516753+0i, 'IZXII': 0-0.1509660721831559i, 'IZYII': -0.052897108929830336+0i, 'IZZII': -0.1721937462736985+0i, 'XIIXI': -0.11174858395749908+0i, 'XIIYX': 0.17073672929759276+0i, 'XIIYY': 0+0.11032045213943485i, 'XIIYZ': 0-0.1689694425941602i, 'XIXXI': 0-0.05399726186296385i, 'XIXXX': -0.07325959468752803+0i, 'XIXXY': 0-0.1111059231609336i, 'XIXXZ': 0-0.09600313971976102i, 'XIXYI': -0.06806307416080667+0i, 'XIXYX': 0-0.04523473968349062i, 'XIXYY': -1.7547218191630358+0i, 'XIXYZ': -1.3772732461972579+0i, 'XIYXI': 1.3772732461972579+0i, 'XIYXX': 0+0.1111059231609336i, 'XIYXY': -0.07325959468752803+0i, 'XIYXZ': 0.06806307416080667+0i, 'XIYYI': 0-0.09600313971976102i, 'XIYYX': 1.7547218191630358+0i, 'XIYYY': 0-0.045234739683490635i, 'XIYYZ': 0-0.05399726186296385i, 'XIZXI': 1.8842026253735091+0i, 'XIZXX': 0-0.31837205056588935i, 'XIZXY': -0.014614195732488622+0i, 'XIZXZ': 0.020092118820637293+0i, 'XIZYI': 0-0.10350384183022873i, 'XIZYX': 1.2339354147761665+0i, 'XIZYY': 0-0.20014610038108038i, 'XIZYZ': 0+0.13785635094456694i, 'XXXXI': 0-0.09045587112193246i, 'XXXYX': 0-0.09203856671145366i, 'XXXYY': 0.06610444246474792+0i, 'XXXYZ': -0.004381353464038194+0i, 'XXYXI': -0.0728852172497566+0i, 'XXYYX': -0.06385550632178724+0i, 'XXYYY': 0-0.03935622180541037i, 'XXYYZ': 0-0.10541517446646001i, 'XXZXI': 0.0029326041415565635+0i, 'XXZYX': -0.12565038248880567+0i, 'XXZYY': 0-0.11307389867449963i, 'XXZYZ': 0+0.1964422469585531i, 'XYXXI': 0.05455025925628674+0i, 'XYXYX': 0.05333748695595309+0i, 'XYXYY': 0-0.13750990311479852i, 'XYXYZ': 0+0.030317466240791964i, 'XYYXI': 0-0.015358162896264425i, 'XYYYX': 0+0.08482755820875518i, 'XYYYY': 0.055586423098913734+0i, 'XYYYZ': -0.022716311457508076+0i, 'XYZXI': 0-0.1964422469585531i, 'XYZYX': 0+0.11307389867449963i, 'XYZYY': -0.12565038248880567+0i, 'XYZYZ': 0.0029326041415565635+0i, 'XZXXI': 0+0.19370049711875836i, 'XZXYX': 0-0.04277389675447109i, 'XZXYY': -0.004147787205166245+0i, 'XZXYZ': 0.04915185128530421+0i, 'XZYXI': -0.04915185128530421+0i, 'XZYYX': 0.004147787205166245+0i, 'XZYYY': 0-0.04277389675447109i, 'XZYYZ': 0+0.19370049711875836i, 'XZZXI': 0.09128107859716465+0i, 'XZZYX': 0.04296867296539002+0i, 'XZZYY': 0-0.046757035214565576i, 'XZZYZ': 0-0.28592174788456304i, 'YIIXI': 0+0.28592174788456304i, 'YIIYX': 0+0.046757035214565576i, 'YIIYY': 0.04296867296539002+0i, 'YIIYZ': 0.09128107859716465+0i, 'YXIXI': 0+0.07778588525741689i, 'YXIXX': -0.06104668391745971+0i, 'YXIXY': 0-0.053313636492825514i, 'YXIXZ': 0+0.009528810788668657i, 'YXIYI': -0.10037883779737643+0i, 'YXIYX': 0+0.03548371816061592i, 'YXIYY': 1.2384175889372895+0i, 'YXIYZ': 1.4984878331319542+0i, 'YXXXI': -0.004381353464038194+0i, 'YXXYX': 0.06610444246474792+0i, 'YXXYY': 0+0.09203856671145366i, 'YXXYZ': 0+0.09045587112193246i, 'YXYXI': 0-0.10541517446646001i, 'YXYYX': 0-0.03935622180541037i, 'YXYYY': 0.06385550632178724+0i, 'YXYYZ': 0.0728852172497566+0i, 'YXZXI': 0+0.056927556134019244i, 'YXZYX': 0-0.06687003533834247i, 'YXZYY': -0.06261563944167857+0i, 'YXZYZ': 0.015715531080432152+0i, 'YYIXI': -1.4984878331319542+0i, 'YYIXX': 0+0.053313636492825514i, 'YYIXY': -0.06104668391745971+0i, 'YYIXZ': 0.10037883779737643+0i, 'YYIYI': 0+0.009528810788668657i, 'YYIYX': -1.2384175889372895+0i, 'YYIYY': 0+0.03548371816061592i, 'YYIYZ': 0+0.07778588525741689i, 'YYXXI': 0+0.030317466240791964i, 'YYXYX': 0-0.13750990311479852i, 'YYXYY': -0.05333748695595309+0i, 'YYXYZ': -0.05455025925628674+0i, 'YYYXI': -0.022716311457508076+0i, 'YYYYX': 0.055586423098913734+0i, 'YYYYY': 0-0.08482755820875518i, 'YYYYZ': 0+0.015358162896264425i, 'YYZXI': -0.015715531080432152+0i, 'YYZYX': 0.06261563944167857+0i, 'YYZYY': 0-0.06687003533834247i, 'YYZYZ': 0+0.056927556134019244i, 'YZIXI': 0-0.13785635094456694i, 'YZIXX': 0.014614195732488622+0i, 'YZIXY': 0-0.31837205056588935i, 'YZIXZ': 0+0.10350384183022873i, 'YZIYI': 0.020092118820637293+0i, 'YZIYX': 0+0.20014610038108038i, 'YZIYY': 1.2339354147761665+0i, 'YZIYZ': 1.8842026253735091+0i, 'YZXXI': -0.05361596892042668+0i, 'YZXYX': 0.09007122424969864+0i, 'YZXYY': 0+0.0644124522379931i, 'YZXYZ': 0+0.013822745547563658i, 'YZYXI': 0-0.013822745547563658i, 'YZYYX': 0-0.0644124522379931i, 'YZYYY': 0.09007122424969864+0i, 'YZYYZ': -0.05361596892042668+0i, 'YZZXI': 0+0.1689694425941602i, 'YZZYX': 0-0.11032045213943485i, 'YZZYY': 0.17073672929759276+0i, 'YZZYZ': -0.11174858395749908+0i, 'ZIXII': 0+0.1509660721831559i, 'ZIYII': 0.052897108929830336+0i, 'ZIZII': -0.05671336468303201+0i, 'ZXIII': -0.21083898088719794+0i, 'ZXXII': 0+0.29003971772254517i, 'ZXXIX': -0.0805261095265577+0i, 'ZXXIY': 0-0.03816501432752714i, 'ZXXIZ': 0-0.16970024029024366i, 'ZXXZX': -0.012840580692048215+0i, 'ZXXZY': 0+0.04350523824013833i, 'ZXXZZ': 0+0.024227272119138332i, 'ZXYII': -1.3469030321910291+0i, 'ZXYIX': 0-0.0004602714897613408i, 'ZXYIY': -0.02300001760585154+0i, 'ZXYIZ': 0.02479766555661493+0i, 'ZXYZX': 0-0.0048799524228498176i, 'ZXYZY': -0.07036667261275437+0i, 'ZXYZZ': 0.14928218991675232+0i, 'ZXZII': -1.559397477636141+0i, 'ZXZIX': 0+0.03948645208273986i, 'ZXZIY': -0.0375962319895482+0i, 'ZXZIZ': 0.13534948995520946+0i, 'ZXZZX': 0-0.06422577954249976i, 'ZXZZY': 0.024613781766086286+0i, 'ZXZZZ': 0.05061733234777215+0i, 'ZYIII': 0-0.1335394229888685i, 'ZYXII': 1.3469030321910291+0i, 'ZYXIX': 0-0.0048799524228498176i, 'ZYXIY': -0.07036667261275437+0i, 'ZYXIZ': -0.02479766555661493+0i, 'ZYXZX': 0-0.0004602714897613408i, 'ZYXZY': -0.02300001760585154+0i, 'ZYXZZ': -0.14928218991675232+0i, 'ZYYII': 0+0.2900397177225451i, 'ZYYIX': 0.012840580692048215+0i, 'ZYYIY': 0-0.04350523824013833i, 'ZYYIZ': 0-0.16970024029024366i, 'ZYYZX': 0.0805261095265577+0i, 'ZYYZY': 0+0.03816501432752714i, 'ZYYZZ': 0+0.024227272119138332i, 'ZYZII': 0+0.10676863538783096i, 'ZYZIX': -0.07631616653159615+0i, 'ZYZIY': 0-0.008920962139867282i, 'ZYZIZ': 0-0.02076627025166903i, 'ZYZZX': 0.08929861675505807+0i, 'ZYZZY': 0-0.0158183653198926i, 'ZYZZZ': 0+0.01777723518029317i, 'ZZIII': -0.054266340490850606+0i, 'ZZXII': 0-0.19461767120420534i, 'ZZXIX': 0.05563599981801909+0i, 'ZZXIY': 0-0.09044200049276496i, 'ZZXIZ': 0-0.03761964681690841i, 'ZZXZX': -0.007152477972213828+0i, 'ZZXZY': 0+0.050363041997751434i, 'ZZXZZ': 0-0.06235958523524113i, 'ZZYII': -1.8813111171807408+0i, 'ZZYIX': 0-0.005989907079649616i, 'ZZYIY': 0.08436784632693212+0i, 'ZZYIZ': 0.08900240749547213+0i, 'ZZYZX': 0+0.04606886557466314i, 'ZZYZY': -0.035884324481126814+0i, 'ZZYZZ': 0.2258793620810332+0i, 'ZZZII': -1.546796682732967+0i, 'ZZZIX': 0+0.027922232568671566i, 'ZZZIY': 0.06869400142952278+0i, 'ZZZIZ': 0.17795289804535422+0i, 'ZZZZX': 0-0.027922232568671566i, 'ZZZZY': -0.06869400142952278+0i, 'ZZZZZ': 0.08567676196556426+0i})
qham_topphatt = tree.encode_naive(fham)
qham_topphatt
QubitHamiltonian({'IIIII': 18.179011420293776+0i, 'IIIIX': 0+0.3785025012853412i, 'IIIIY': 1.3616331967323778+0i, 'IIIIZ': -1.7425746861351097+0i, 'IIIZI': 0.08391621522477598+0i, 'IIIZX': 0-0.3785025012853412i, 'IIIZY': -1.3616331967323778+0i, 'IIIZZ': -2.449834126426738+0i, 'IIXII': 0+0.1946176712042053i, 'IIXIX': -0.007152477972213828+0i, 'IIXIY': 0+0.050363041997751434i, 'IIXIZ': 0+0.03761964681690841i, 'IIXZX': 0.05563599981801909+0i, 'IIXZY': 0-0.09044200049276496i, 'IIXZZ': 0+0.06235958523524113i, 'IIYII': 1.881311117180741+0i, 'IIYIX': 0+0.04606886557466314i, 'IIYIY': -0.035884324481126814+0i, 'IIYIZ': -0.08900240749547213+0i, 'IIYZX': 0-0.005989907079649616i, 'IIYZY': 0.08436784632693212+0i, 'IIYZZ': -0.2258793620810332+0i, 'IIZII': -1.5105518700959728+0i, 'IIZIX': 0+0.056068296078251326i, 'IIZIY': -0.01674430117623245+0i, 'IIZIZ': -0.1845692646556515+0i, 'IIZZX': 0-0.056068296078251326i, 'IIZZY': 0.01674430117623245+0i, 'IIZZZ': 0.04163693372793387+0i, 'IXIII': 1.559397477636141+0i, 'IXIIX': 0-0.06422577954249976i, 'IXIIY': 0.024613781766086286+0i, 'IXIIZ': -0.13534948995520946+0i, 'IXIZX': 0+0.03948645208273986i, 'IXIZY': -0.0375962319895482+0i, 'IXIZZ': -0.05061733234777215+0i, 'IXXII': 0+0.06389881971989883i, 'IXYII': -0.040799855870742835+0i, 'IXZII': 0.21083898088719794+0i, 'IYIII': 0-0.10676863538783096i, 'IYIIX': 0.08929861675505807+0i, 'IYIIY': 0-0.0158183653198926i, 'IYIIZ': 0+0.02076627025166903i, 'IYIZX': -0.07631616653159615+0i, 'IYIZY': 0-0.008920962139867282i, 'IYIZZ': 0-0.01777723518029317i, 'IYXII': 0.040799855870742835+0i, 'IYYII': 0+0.06389881971989883i, 'IYZII': 0+0.1335394229888685i, 'IZIII': -0.9954669196286112+0i, 'IZIIX': 0+0.05283627357399949i, 'IZIIY': -0.05359872175489028+0i, 'IZIIZ': 0.0012351012900679303+0i, 'IZIZX': 0-0.05283627357399949i, 'IZIZY': 0.05359872175489028+0i, 'IZIZZ': 0.14353767057516753+0i, 'IZXII': 0-0.1509660721831559i, 'IZYII': -0.052897108929830336+0i, 'IZZII': -0.1721937462736985+0i, 'XIIXI': -0.11174858395749908+0i, 'XIIYX': 0.17073672929759276+0i, 'XIIYY': 0+0.11032045213943485i, 'XIIYZ': 0-0.1689694425941602i, 'XIXXI': 0-0.05399726186296385i, 'XIXXX': -0.07325959468752803+0i, 'XIXXY': 0-0.1111059231609336i, 'XIXXZ': 0-0.09600313971976102i, 'XIXYI': -0.06806307416080667+0i, 'XIXYX': 0-0.04523473968349062i, 'XIXYY': -1.7547218191630358+0i, 'XIXYZ': -1.3772732461972579+0i, 'XIYXI': 1.3772732461972579+0i, 'XIYXX': 0+0.1111059231609336i, 'XIYXY': -0.07325959468752803+0i, 'XIYXZ': 0.06806307416080667+0i, 'XIYYI': 0-0.09600313971976102i, 'XIYYX': 1.7547218191630358+0i, 'XIYYY': 0-0.045234739683490635i, 'XIYYZ': 0-0.05399726186296385i, 'XIZXI': 1.8842026253735091+0i, 'XIZXX': 0-0.31837205056588935i, 'XIZXY': -0.014614195732488622+0i, 'XIZXZ': 0.020092118820637293+0i, 'XIZYI': 0-0.10350384183022873i, 'XIZYX': 1.2339354147761665+0i, 'XIZYY': 0-0.20014610038108038i, 'XIZYZ': 0+0.13785635094456694i, 'XXXXI': 0-0.09045587112193246i, 'XXXYX': 0-0.09203856671145366i, 'XXXYY': 0.06610444246474792+0i, 'XXXYZ': -0.004381353464038194+0i, 'XXYXI': -0.0728852172497566+0i, 'XXYYX': -0.06385550632178724+0i, 'XXYYY': 0-0.03935622180541037i, 'XXYYZ': 0-0.10541517446646001i, 'XXZXI': 0.0029326041415565635+0i, 'XXZYX': -0.12565038248880567+0i, 'XXZYY': 0-0.11307389867449963i, 'XXZYZ': 0+0.1964422469585531i, 'XYXXI': 0.05455025925628674+0i, 'XYXYX': 0.05333748695595309+0i, 'XYXYY': 0-0.13750990311479852i, 'XYXYZ': 0+0.030317466240791964i, 'XYYXI': 0-0.015358162896264425i, 'XYYYX': 0+0.08482755820875518i, 'XYYYY': 0.055586423098913734+0i, 'XYYYZ': -0.022716311457508076+0i, 'XYZXI': 0-0.1964422469585531i, 'XYZYX': 0+0.11307389867449963i, 'XYZYY': -0.12565038248880567+0i, 'XYZYZ': 0.0029326041415565635+0i, 'XZXXI': 0+0.19370049711875836i, 'XZXYX': 0-0.04277389675447109i, 'XZXYY': -0.004147787205166245+0i, 'XZXYZ': 0.04915185128530421+0i, 'XZYXI': -0.04915185128530421+0i, 'XZYYX': 0.004147787205166245+0i, 'XZYYY': 0-0.04277389675447109i, 'XZYYZ': 0+0.19370049711875836i, 'XZZXI': 0.09128107859716465+0i, 'XZZYX': 0.04296867296539002+0i, 'XZZYY': 0-0.046757035214565576i, 'XZZYZ': 0-0.28592174788456304i, 'YIIXI': 0+0.28592174788456304i, 'YIIYX': 0+0.046757035214565576i, 'YIIYY': 0.04296867296539002+0i, 'YIIYZ': 0.09128107859716465+0i, 'YXIXI': 0+0.07778588525741689i, 'YXIXX': -0.06104668391745971+0i, 'YXIXY': 0-0.053313636492825514i, 'YXIXZ': 0+0.009528810788668657i, 'YXIYI': -0.10037883779737643+0i, 'YXIYX': 0+0.03548371816061592i, 'YXIYY': 1.2384175889372895+0i, 'YXIYZ': 1.4984878331319542+0i, 'YXXXI': -0.004381353464038194+0i, 'YXXYX': 0.06610444246474792+0i, 'YXXYY': 0+0.09203856671145366i, 'YXXYZ': 0+0.09045587112193246i, 'YXYXI': 0-0.10541517446646001i, 'YXYYX': 0-0.03935622180541037i, 'YXYYY': 0.06385550632178724+0i, 'YXYYZ': 0.0728852172497566+0i, 'YXZXI': 0+0.056927556134019244i, 'YXZYX': 0-0.06687003533834247i, 'YXZYY': -0.06261563944167857+0i, 'YXZYZ': 0.015715531080432152+0i, 'YYIXI': -1.4984878331319542+0i, 'YYIXX': 0+0.053313636492825514i, 'YYIXY': -0.06104668391745971+0i, 'YYIXZ': 0.10037883779737643+0i, 'YYIYI': 0+0.009528810788668657i, 'YYIYX': -1.2384175889372895+0i, 'YYIYY': 0+0.03548371816061592i, 'YYIYZ': 0+0.07778588525741689i, 'YYXXI': 0+0.030317466240791964i, 'YYXYX': 0-0.13750990311479852i, 'YYXYY': -0.05333748695595309+0i, 'YYXYZ': -0.05455025925628674+0i, 'YYYXI': -0.022716311457508076+0i, 'YYYYX': 0.055586423098913734+0i, 'YYYYY': 0-0.08482755820875518i, 'YYYYZ': 0+0.015358162896264425i, 'YYZXI': -0.015715531080432152+0i, 'YYZYX': 0.06261563944167857+0i, 'YYZYY': 0-0.06687003533834247i, 'YYZYZ': 0+0.056927556134019244i, 'YZIXI': 0-0.13785635094456694i, 'YZIXX': 0.014614195732488622+0i, 'YZIXY': 0-0.31837205056588935i, 'YZIXZ': 0+0.10350384183022873i, 'YZIYI': 0.020092118820637293+0i, 'YZIYX': 0+0.20014610038108038i, 'YZIYY': 1.2339354147761665+0i, 'YZIYZ': 1.8842026253735091+0i, 'YZXXI': -0.05361596892042668+0i, 'YZXYX': 0.09007122424969864+0i, 'YZXYY': 0+0.0644124522379931i, 'YZXYZ': 0+0.013822745547563658i, 'YZYXI': 0-0.013822745547563658i, 'YZYYX': 0-0.0644124522379931i, 'YZYYY': 0.09007122424969864+0i, 'YZYYZ': -0.05361596892042668+0i, 'YZZXI': 0+0.1689694425941602i, 'YZZYX': 0-0.11032045213943485i, 'YZZYY': 0.17073672929759276+0i, 'YZZYZ': -0.11174858395749908+0i, 'ZIXII': 0+0.1509660721831559i, 'ZIYII': 0.052897108929830336+0i, 'ZIZII': -0.05671336468303201+0i, 'ZXIII': -0.21083898088719794+0i, 'ZXXII': 0+0.29003971772254517i, 'ZXXIX': -0.0805261095265577+0i, 'ZXXIY': 0-0.03816501432752714i, 'ZXXIZ': 0-0.16970024029024366i, 'ZXXZX': -0.012840580692048215+0i, 'ZXXZY': 0+0.04350523824013833i, 'ZXXZZ': 0+0.024227272119138332i, 'ZXYII': -1.3469030321910291+0i, 'ZXYIX': 0-0.0004602714897613408i, 'ZXYIY': -0.02300001760585154+0i, 'ZXYIZ': 0.02479766555661493+0i, 'ZXYZX': 0-0.0048799524228498176i, 'ZXYZY': -0.07036667261275437+0i, 'ZXYZZ': 0.14928218991675232+0i, 'ZXZII': -1.559397477636141+0i, 'ZXZIX': 0+0.03948645208273986i, 'ZXZIY': -0.0375962319895482+0i, 'ZXZIZ': 0.13534948995520946+0i, 'ZXZZX': 0-0.06422577954249976i, 'ZXZZY': 0.024613781766086286+0i, 'ZXZZZ': 0.05061733234777215+0i, 'ZYIII': 0-0.1335394229888685i, 'ZYXII': 1.3469030321910291+0i, 'ZYXIX': 0-0.0048799524228498176i, 'ZYXIY': -0.07036667261275437+0i, 'ZYXIZ': -0.02479766555661493+0i, 'ZYXZX': 0-0.0004602714897613408i, 'ZYXZY': -0.02300001760585154+0i, 'ZYXZZ': -0.14928218991675232+0i, 'ZYYII': 0+0.2900397177225451i, 'ZYYIX': 0.012840580692048215+0i, 'ZYYIY': 0-0.04350523824013833i, 'ZYYIZ': 0-0.16970024029024366i, 'ZYYZX': 0.0805261095265577+0i, 'ZYYZY': 0+0.03816501432752714i, 'ZYYZZ': 0+0.024227272119138332i, 'ZYZII': 0+0.10676863538783096i, 'ZYZIX': -0.07631616653159615+0i, 'ZYZIY': 0-0.008920962139867282i, 'ZYZIZ': 0-0.02076627025166903i, 'ZYZZX': 0.08929861675505807+0i, 'ZYZZY': 0-0.0158183653198926i, 'ZYZZZ': 0+0.01777723518029317i, 'ZZIII': -0.054266340490850606+0i, 'ZZXII': 0-0.19461767120420534i, 'ZZXIX': 0.05563599981801909+0i, 'ZZXIY': 0-0.09044200049276496i, 'ZZXIZ': 0-0.03761964681690841i, 'ZZXZX': -0.007152477972213828+0i, 'ZZXZY': 0+0.050363041997751434i, 'ZZXZZ': 0-0.06235958523524113i, 'ZZYII': -1.8813111171807408+0i, 'ZZYIX': 0-0.005989907079649616i, 'ZZYIY': 0.08436784632693212+0i, 'ZZYIZ': 0.08900240749547213+0i, 'ZZYZX': 0+0.04606886557466314i, 'ZZYZY': -0.035884324481126814+0i, 'ZZYZZ': 0.2258793620810332+0i, 'ZZZII': -1.546796682732967+0i, 'ZZZIX': 0+0.027922232568671566i, 'ZZZIY': 0.06869400142952278+0i, 'ZZZIZ': 0.17795289804535422+0i, 'ZZZZX': 0-0.027922232568671566i, 'ZZZZY': -0.06869400142952278+0i, 'ZZZZZ': 0.08567676196556426+0i})
Saved Encodings#
It’s possible to save an encoding, and re-use it later.
Let’s save and re-use the annealed encoding above.
import json
from ferrmion import MajoranaEncoding
annealed_qham= tree.encode_annealed(fham)
with open("data/saved_encoding.json", "w+") as f:
json.dump(tree._encoding.to_json(), f)
with open("data/saved_encoding.json", "r") as f:
data=json.load(f)
encoding = MajoranaEncoding.from_json(data)
qham_from_save = encoding.encode(fham)
assert qham_from_save == annealed_qham
Inbuilt Hamiltonians#
Molecular Hamiltonian#
This section shows how to use a Fermion-Qubit encoding to encode a second quantised Molecular hamiltonian.
Let’s first get the coefficients for our second quantised hamiltonian.
For the time being we can use randomly generated ones.
import ferrmion as fr
import numpy as np
constant_energy = 0
one_e_coeffs = np.random.random((3, 3))
two_e_coeffs = np.random.random((3, 3, 3, 3))
fermion_hamiltonian = fr.molecular_hamiltonian(
one_e_coeffs=one_e_coeffs,
two_e_coeffs=two_e_coeffs,
constant_energy=constant_energy,
)
fermion_hamiltonian
FermionHamiltonian(+-, ++--, 3 modes, constant 0)
Hubbard Hamiltonian#
This notebook shows how to use a Fermion-Qubit encoding to encode the second quantised Hubbard hamiltonian.
The Hubbard Hamiltonian needs two scaler coefficients, the kinetic term \(t\) and the onsite-term \(U\).
We can either define both \(t\) and \(U\), or use the default \(t=1\) and scale \(U\) around it.
onsite_term = 2.0
hopping_term = 0.5
We can now make a Hamiltonian for the size of system we want to look at, let’s say 12 sites.
n_sites = 6
from ferrmion.hamiltonians import linear_adjacency_matrix
hamiltonian = fr.hubbard_hamiltonian(
adjacency_matrix=linear_adjacency_matrix(n_sites, periodic=False),
onsite_term=onsite_term,
hopping_term=hopping_term,
)
hamiltonian
FermionHamiltonian(+-, +-+-, 6 modes, constant 0)
The function above will create matrices of coefficients for the “+-” and “+-+-” terms.
We can plot these to get a better idea of what they look like.
import matplotlib.pyplot as plt
from matplotlib import colors
import numpy as np
fig, axs = plt.subplots(1, 2)
fig.suptitle("Hubbard Hamiltonian Coefficients")
# create a single norm to be shared across all images
norm = colors.Normalize(vmin=np.min(0), vmax=np.max([onsite_term, hopping_term]))
axs[0].set_title("$t$")
axs[1].set_title("$U$")
images = []
images.append(axs[0].imshow(hamiltonian.terms["+-"], norm=norm))
# We use einsum to see the values for number operators
images.append(
axs[1].imshow(np.einsum("iijj->ij", hamiltonian.terms["+-+-"]), norm=norm)
)
fig.colorbar(images[0], ax=axs, orientation="horizontal", fraction=0.1)
plt.show()
Finally, we can encode the Hamiltonian as before.
fr.Parity(hamiltonian.n_modes).encode(hamiltonian)
QubitHamiltonian({'IIIIII': 6+0i, 'IIIIIZ': -1+0i, 'IIIIXI': 0.25+0i, 'IIIIZZ': -1+0i, 'IIIXII': 0.25+0i, 'IIIZXZ': -0.25+0i, 'IIIZZI': -1+0i, 'IIYXXY': -0.25+0i, 'IIZXZI': -0.25+0i, 'IIZZII': -1+0i, 'IXIIII': 0.25+0i, 'IZXXXX': -0.25+0i, 'IZZIII': -1+0i, 'ZXZIII': -0.25+0i, 'ZZIIII': -1+0i})