Goppa-kode

Innenfor algebraisk geometri i matematikken er en Goppa-kode definert som bildet til avbildningen 
  
    
      
        ϕ
      
    
    {\displaystyle \phi }
   gitt på følgende måte: La 
  
    
      
        q
      
    
    {\displaystyle q}
   være en primtallspotens og 
  
    
      
        X
      
    
    {\displaystyle X}
   en ikke-singulær, projektiv kurve definert over 
  
    
      
        
          
            F
          
          
            q
          
        
      
    
    {\displaystyle \mathbb {F} _{q}}
   og med minst ett 
  
    
      
        
          
            F
          
          
            q
          
        
      
    
    {\displaystyle \mathbb {F} _{q}}
  -rasjonalt punkt. La 
  
    
      
        
          P
          
            1
          
        
        ,
        …
        ,
        
          P
          
            n
          
        
      
    
    {\displaystyle P_{1},\dots ,P_{n}}
   være 
  
    
      
        
          
            F
          
          
            q
          
        
      
    
    {\displaystyle \mathbb {F} _{q}}
  -rasjonale punkter på 
  
    
      
        X
      
    
    {\displaystyle X}
   og la 
  
    
      
        G
      
    
    {\displaystyle G}
   være en 
  
    
      
        
          
            F
          
          
            q
          
        
      
    
    {\displaystyle \mathbb {F} _{q}}
  -rasjonal divisor på 
  
    
      
        X
      
    
    {\displaystyle X}
   med støtte disjunkt fra 
  
    
      
        {
        
          P
          
            1
          
        
        ,
        …
        ,
        
          P
          
            n
          
        
        }
      
    
    {\displaystyle \{P_{1},\dots ,P_{n}\}}
  . Vi definerer da 
  
    
      
        ϕ
        :
        L
        (
        G
        )
        ⟶
        
          
            F
          
          
            q
          
          
            n
          
        
      
    
    {\displaystyle \phi :L(G)\longrightarrow \mathbb {F} _{q}^{n}}
   ved 
  
    
      
        f
        ⟼
        (
        f
        (
        
          P
          
            1
          
        
        )
        ,
        …
        ,
        f
        (
        
          P
          
            n
          
        
        )
        )
      
    
    {\displaystyle f\longmapsto (f(P_{1}),\dots ,f(P_{n}))}
  . Hvis vi definerer divisoren 
  
    
      
        D
        :=
        
          P
          
            1
          
        
        +
        ⋯
        +
        
          P
          
            n
          
        
      
    
    {\displaystyle D:=P_{1}+\cdots +P_{n}}
  , betegner vi gjerne koden ved 
  
    
      
        C
        (
        D
        ,
        G
        )
      
    
    {\displaystyle C(D,G)}
  .
Dimensjonen 
  
    
      
        k
      
    
    {\displaystyle k}
   til en kode 
  
    
      
        C
        (
        D
        ,
        G
        )
      
    
    {\displaystyle C(D,G)}
   er gitt ved 
  
    
      
        k
        =
        l
        (
        G
        )
        −
        l
        (
        G
        −
        D
        )
      
    
    {\displaystyle k=l(G)-l(G-D)}
  , og minimumsdistansen 
  
    
      
        d
      
    
    {\displaystyle d}
   er gitt ved 
  
    
      
        d
        ≥
        deg
        ⁡
        (
        D
        )
        −
        deg
        ⁡
        (
        G
        )
      
    
    {\displaystyle d\geq \deg(D)-\deg(G)}
  . Disse resultatene finner man lett ved hjelp av Riemann–Roch-teoremet.
Goppa-koden ble først konstruert i 1981 av V.D. Goppa.


== Bruk av Goppa-koder ==
Goppa-koder ble brukt da den asymptotiske Gilbert–Varshamov-begrensningen (1950) ble forbedret av Tsfasman, Vladut og Zink i 1982. Her ble en uendelig følge av ikke-singulære, projektive kurver med et stort antall 
  
    
      
        
          
            F
          
          
            q
          
        
      
    
    {\displaystyle \mathbb {F} _{q}}
  -rasjonale punkter definert, og en Goppa-kode ble definert på hver kurve slik at lengden på Goppa-kodene var lik antallet 
  
    
      
        
          
            F
          
          
            q
          
        
      
    
    {\displaystyle \mathbb {F} _{q}}
  -rasjonale punkter på kurvene.
I senere tid har flere kodeteoretikere jobbet med å definere koder ved hjelp av algebraiske kurver med metoder inspirert av Goppas konstruksjon.


== Generaliseringer av Goppa-koder ==
I 1999 definerte Xing, Niederreiter og Lam en generalisering av Goppa-kodene. La 
  
    
      
        X
      
    
    {\displaystyle X}
   være en ikke-singulær, projektiv kurve definert over 
  
    
      
        
          
            F
          
          
            q
          
        
      
    
    {\displaystyle \mathbb {F} _{q}}
   og 
  
    
      
        
          P
          
            1
          
        
        ,
        …
        ,
        
          P
          
            s
          
        
      
    
    {\displaystyle P_{1},\dots ,P_{s}}
   være lukkede punkter på 
  
    
      
        X
      
    
    {\displaystyle X}
  . Sett 
  
    
      
        deg
        ⁡
        (
        
          P
          
            i
          
        
        )
        =
        
          k
          
            i
          
        
      
    
    {\displaystyle \deg(P_{i})=k_{i}}
  . Hvis 
  
    
      
        f
        ∈
        
          
            F
          
          
            q
          
        
        (
        X
        )
      
    
    {\displaystyle f\in \mathbb {F} _{q}(X)}
   slik at 
  
    
      
        
          v
          
            
              P
              
                i
              
            
          
        
        (
        f
        )
        ≥
        0
      
    
    {\displaystyle v_{P_{i}}(f)\geq 0}
  , da er 
  
    
      
        f
        (
        
          P
          
            i
          
        
        )
        ∈
        
          
            F
          
          
            
              q
              
                
                  k
                  
                    i
                  
                
              
            
          
        
      
    
    {\displaystyle f(P_{i})\in \mathbb {F} _{q^{k_{i}}}}
  . La 
  
    
      
        
          n
          
            i
          
        
      
    
    {\displaystyle n_{i}}
   og 
  
    
      
        
          d
          
            i
          
        
      
    
    {\displaystyle d_{i}}
   være positive heltall for 
  
    
      
        i
        =
        1
        ,
        …
        ,
        s
      
    
    {\displaystyle i=1,\dots ,s}
   slik at det eksisterer en 
  
    
      
        [
        
          n
          
            i
          
        
        ,
        
          k
          
            i
          
        
        ,
        
          d
          
            i
          
        
        
          ]
          
            q
          
        
      
    
    {\displaystyle [n_{i},k_{i},d_{i}]_{q}}
  -lineær kode for hver 
  
    
      
        i
        =
        1
        ,
        …
        ,
        s
      
    
    {\displaystyle i=1,\dots ,s}
  , og definér en isomorfisme 
  
    
      
        
          ψ
          
            i
          
        
        :
        
          
            F
          
          
            
              q
              
                
                  k
                  
                    i
                  
                
              
            
          
        
        ⟶
        
          C
          
            i
          
        
      
    
    {\displaystyle \psi _{i}:\mathbb {F} _{q^{k_{i}}}\longrightarrow C_{i}}
   for hver 
  
    
      
        i
        =
        1
        ,
        …
        ,
        s
      
    
    {\displaystyle i=1,\dots ,s}
  . La 
  
    
      
        G
      
    
    {\displaystyle G}
   være en 
  
    
      
        
          
            F
          
          
            q
          
        
      
    
    {\displaystyle \mathbb {F} _{q}}
  -rasjonal divisor med støtte disjunkt fra 
  
    
      
        
          P
          
            1
          
        
        ,
        …
        ,
        
          P
          
            s
          
        
      
    
    {\displaystyle P_{1},\dots ,P_{s}}
  , og sett 
  
    
      
        n
        =
        
          n
          
            1
          
        
        +
        ⋯
        +
        
          n
          
            s
          
        
      
    
    {\displaystyle n=n_{1}+\cdots +n_{s}}
  . Xing, Niederreiter og Lams kode er da definert som bildet til avbildningen 
  
    
      
        ψ
        :
        L
        (
        G
        )
        ⟶
        
          
            F
          
          
            q
          
          
            n
          
        
      
    
    {\displaystyle \psi :L(G)\longrightarrow \mathbb {F} _{q}^{n}}
   gitt ved 
  
    
      
        f
        ⟼
        (
        
          ψ
          
            1
          
        
        (
        f
        (
        
          P
          
            1
          
        
        )
        )
        ,
        …
        ,
        
          ψ
          
            s
          
        
        (
        f
        (
        
          P
          
            s
          
        
        )
        )
        )
      
    
    {\displaystyle f\longmapsto (\psi _{1}(f(P_{1})),\dots ,\psi _{s}(f(P_{s})))}
  .
Det er klart at dette utgjør en generalisering av Goppa-kodene, siden 
  
    
      
        
          k
          
            1
          
        
        =
        ⋯
        =
        
          k
          
            s
          
        
        =
        1
      
    
    {\displaystyle k_{1}=\cdots =k_{s}=1}
   gir samme konstruksjon som Goppas definisjon.
Koden til Xing, Niederreiter og Lam har gitt en del forbedringer av parametrene til enkeltkodene, men har ennå ikke gitt noen forbedringer når det gjelder asymptotiske begrensninger.
Andre naturlige generaliseringer av Goppa-koder er å bruke varieteter fra algebraisk geometri som ikke nødvendigvis er kurver.