inteligenty-traktor/src/kb.py
Adam Mikolajczak c0d05cce43 feat(decision tree)
program sie wywala jesli traktor chce zasadzic cebule. czemu? nie wiem.
2024-05-12 16:45:03 +02:00

871 lines
28 KiB
Python

import pytholog as pl
tractor_kb = pl.KnowledgeBase("tractor")
tractor_kb([
# DEFINIOWANIE FAKTÓW
# Zasoby traktora
"traktor(traktor)",
"pojemnosc_silnika(traktor, 5.65)", # l
"srednie_spalanie(traktor, 0.27)", # l/km
"ładowność_przyczepy(traktor, 2.75)", # ton
"cena_paliwa(traktor, 6.48)", # zł/l
"pojemność_podlewanie(traktor, 2000)",
# Środowisko
"pole(pole)",
"wilgotnosc(pole, 10)",
"pH_gleby(pole, 6,5)",
# Warzywa
"warzywo(bób)",
"warzywo(brokuł)",
"warzywo(brukselka)",
"warzywo(burak)",
"warzywo(cebula)",
"warzywo(cukinia)",
"warzywo(dynia)",
"warzywo(fasola)",
"warzywo(groch)",
"warzywo(jarmuż)",
"warzywo(kalafior)",
"warzywo(kalarepa)",
"warzywo(kapusta)",
"warzywo(marchew)",
"warzywo(ogórek)",
"warzywo(papryka)",
"warzywo(pietruszka)",
"warzywo(pomidor)",
"warzywo(por)",
"warzywo(rzepa)",
"warzywo(rzodkiewka)",
"warzywo(sałata)",
"warzywo(seler)",
"warzywo(szpinak)",
"warzywo(ziemniak)",
# Średnia masa zebranych warzyw z jednego kwadratu przy standardowym obfitowaniu
"masa(bób, 24.33)",
"masa(brokuł, 30.02)",
"masa(brukselka, 15.32)",
"masa(burak, 30.46)",
"masa(cebula, 14.67)",
"masa(cukinia, 40.1)",
"masa(dynia, 68.01)",
"masa(fasola, 15.39)",
"masa(groch, 29.92)",
"masa(jarmuż, 14.51)",
"masa(kalafior, 65.82)",
"masa(kalarepa, 40.91)",
"masa(kapusta, 64.69)",
"masa(marchew, 13.73)",
"masa(ogórek, 27.89)",
"masa(papryka, 30.13)",
"masa(pietruszka, 14.75)",
"masa(pomidor, 16.89)",
"masa(por, 15.23)",
"masa(rukola, 13.28)",
"masa(rzepa, 30.93)",
"masa(rzodkiewka, 17.27)",
"masa(sałata, 25.92)",
"masa(seler, 24.45)",
"masa(szpinak, 15.29)",
"masa(ziemniak, 63.83)",
# Ilość wody potrzebna w fazie wzrostu
"woda(bób, 30)",
"woda(brokuł, 40)",
"woda(brukselka, 50)",
"woda(burak, 25)",
"woda(cebula, 35)",
"woda(cukinia, 45)",
"woda(dynia, 55)",
"woda(fasola, 30)",
"woda(groch, 25)",
"woda(jarmuż, 35)",
"woda(kalafior, 40)",
"woda(kalarepa, 30)",
"woda(kapusta, 40)",
"woda(marchew, 35)",
"woda(ogórek, 45)",
"woda(papryka, 40)",
"woda(pietruszka, 35)",
"woda(pomidor, 50)",
"woda(por, 35)",
"woda(rukola, 45)",
"woda(rzepa, 30)",
"woda(rzodkiewka, 30)",
"woda(sałata, 40)",
"woda(seler, 35)",
"woda(szpinak, 35)",
"woda(ziemniak, 30)",
# Fazy życia wraz z procentem potrzebnej wody (w stosunku do fazy wzrostu)
"faza(posadzono, 0.75)",
"faza(rośnie, 1)",
"faza(dojrzało, 0.5)",
"faza(zgniło, 0)",
# Czas wysiewu - liczba oznacza dany tydzień roku
"wysiew(bób, 13)",
"wysiew(brokuł, 13)",
"wysiew(brukselka, 13)",
"wysiew(burak, 16)",
"wysiew(cebula, 13)",
"wysiew(cukinia, 19)",
"wysiew(dynia, 19)",
"wysiew(fasola, 17)",
"wysiew(groch, 13)",
"wysiew(jarmuż, 13)",
"wysiew(kalafior, 13)",
"wysiew(kalarepa, 13)",
"wysiew(kapusta, 13)",
"wysiew(marchew, 13)",
"wysiew(ogórek, 18)",
"wysiew(papryka, 14)",
"wysiew(pietruszka, 13)",
"wysiew(pomidor, 17)",
"wysiew(por, 13)",
"wysiew(rukola, 13)",
"wysiew(rzepa, 13)",
"wysiew(rzodkiewka, 13)",
"wysiew(sałata, 13)",
"wysiew(seler, 13)",
"wysiew(szpinak, 13)",
"wysiew(ziemniak, 15)",
# Czas kiełkowania - dni
"czas(bób, posadzono, 7)",
"czas(brokuł, posadzono, 6)",
"czas(brukselka, posadzono, 4)",
"czas(burak, posadzono, 7)",
"czas(cebula, posadzono, 8)",
"czas(cukinia, posadzono, 5)",
"czas(dynia, posadzono, 8)",
"czas(fasola, posadzono, 6)",
"czas(groch, posadzono, 4)",
"czas(jarmuż, posadzono, 5)",
"czas(kalafior, posadzono, 4)",
"czas(kalarepa, posadzono, 7)",
"czas(kapusta, posadzono, 7)",
"czas(marchew, posadzono, 6)",
"czas(ogórek, posadzono, 6)",
"czas(papryka, posadzono, 4)",
"czas(pietruszka, posadzono, 7)",
"czas(pomidor, posadzono, 5)",
"czas(por, posadzono, 5)",
"czas(rukola, posadzono, 8)",
"czas(rzepa, posadzono, 8)",
"czas(rzodkiewka, posadzono, 4)",
"czas(sałata, posadzono, 6)",
"czas(seler, posadzono, 5)",
"czas(szpinak, posadzono, 5)",
"czas(ziemniak, posadzono, 6)",
# Czas dojrzewania - dni
"czas(bób, rośnie, 69)",
"czas(brokuł, rośnie, 74)",
"czas(brukselka, rośnie, 84)",
"czas(burak, rośnie, 62)",
"czas(cebula, rośnie, 97)",
"czas(cukinia, rośnie, 47)",
"czas(dynia, rośnie, 92)",
"czas(fasola, rośnie, 54)",
"czas(groch, rośnie, 69)",
"czas(jarmuż, rośnie, 59)",
"czas(kalafior, rośnie, 65)",
"czas(kalarepa, rośnie, 54)",
"czas(kapusta, rośnie, 85)",
"czas(marchew, rośnie, 71)",
"czas(ogórek, rośnie, 53)",
"czas(papryka, rośnie, 78)",
"czas(pietruszka, rośnie, 62)",
"czas(pomidor, rośnie, 75)",
"czas(por, rośnie, 65)",
"czas(rukola, rośnie, 55)",
"czas(rzepa, rośnie, 65)",
"czas(rzodkiewka, rośnie, 53)",
"czas(sałata, rośnie, 57)",
"czas(seler, rośnie, 59)",
"czas(szpinak, rośnie, 62)",
"czas(ziemniak, rośnie, 67)",
# Czas dojrzałosci - dni
"czas(bób, dojrzało, 7)",
"czas(brokuł, dojrzało, 6)",
"czas(brukselka, dojrzało, 8)",
"czas(burak, dojrzało, 5)",
"czas(cebula, dojrzało, 9)",
"czas(cukinia, dojrzało, 7)",
"czas(dynia, dojrzało, 5)",
"czas(fasola, dojrzało, 4)",
"czas(groch, dojrzało, 8)",
"czas(jarmuż, dojrzało, 7)",
"czas(kalafior, dojrzało, 6)",
"czas(kalarepa, dojrzało, 8)",
"czas(kapusta, dojrzało, 7)",
"czas(marchew, dojrzało, 9)",
"czas(ogórek, dojrzało, 6)",
"czas(papryka, dojrzało, 5)",
"czas(pietruszka, dojrzało, 7)",
"czas(pomidor, dojrzało, 4)",
"czas(por, dojrzało, 8)",
"czas(rukola, dojrzało, 4)",
"czas(rzepa, dojrzało, 5)",
"czas(rzodkiewka, dojrzało, 6)",
"czas(sałata, dojrzało, 7)",
"czas(seler, dojrzało, 8)",
"czas(szpinak, dojrzało, 4)",
"czas(ziemniak, dojrzało, 6)",
# Ceny obsadzenia kwadratu
"cena(bób, 1.24)",
"cena(brokuł, 1.69)",
"cena(brukselka, 2.37)",
"cena(burak, 0.91)",
"cena(cebula, 1.53)",
"cena(cukinia, 1.48)",
"cena(dynia, 2.14)",
"cena(fasola, 1.07)",
"cena(groch, 0.87)",
"cena(jarmuż, 1.62)",
"cena(kalafior, 1.73)",
"cena(kalarepa, 1.39)",
"cena(kapusta, 1.91)",
"cena(marchew, 1.26)",
"cena(ogórek, 1.88)",
"cena(papryka, 1.96)",
"cena(pietruszka, 1.35)",
"cena(pomidor, 1.75)",
"cena(por, 1.14)",
"cena(rukola, 1.44)",
"cena(rzepa, 1.17)",
"cena(rzodkiewka, 1.08)",
"cena(sałata, 1.68)",
"cena(seler, 1.29)",
"cena(szpinak, 1.62)",
"cena(ziemniak, 1.97)",
# Ceny zysku za kg
"zysk(bób, 17.34)",
"zysk(brokuł, 13.72)",
"zysk(brukselka, 27.91)",
"zysk(burak, 10.56)",
"zysk(cebula, 10.22)",
"zysk(cukinia, 11.88)",
"zysk(dynia, 12.45)",
"zysk(fasola, 14.76)",
"zysk(groch, 13.09)",
"zysk(jarmuż, 14.28)",
"zysk(kalafior, 13.67)",
"zysk(kalarepa, 11.94)",
"zysk(kapusta, 10.83)",
"zysk(marchew, 10.14)",
"zysk(ogórek, 10.65)",
"zysk(papryka, 11.37)",
"zysk(pietruszka, 10.97)",
"zysk(pomidor, 11.23)",
"zysk(por, 10.78)",
"zysk(rukola, 11.56)",
"zysk(rzepa, 10.31)",
"zysk(rzodkiewka, 10.19)",
"zysk(sałata, 10.42)",
"zysk(seler, 10.81)",
"zysk(szpinak, 11.79)",
"zysk(ziemniak, 9.94)",
# Cena ekologicnzego warzywa (za kg)
"zysk_eko(bób, 19.34)",
"zysk_eko(brokuł, 15.72)",
"zysk_eko(brukselka, 29.91)",
"zysk_eko(burak, 12.56)",
"zysk_eko(cebula, 12.22)",
"zysk_eko(cukinia, 13.88)",
"zysk_eko(dynia, 14.45)",
"zysk_eko(fasola, 16.76)",
"zysk_eko(groch, 15.09)",
"zysk_eko(jarmuż, 16.28)",
"zysk_eko(kalafior, 15.67)",
"zysk_eko(kalarepa, 13.94)",
"zysk_eko(kapusta, 12.83)",
"zysk_eko(marchew, 12.14)",
"zysk_eko(ogórek, 12.65)",
"zysk_eko(papryka, 13.37)",
"zysk_eko(pietruszka, 13.97)",
"zysk_eko(pomidor, 13.23)",
"zysk_eko(por, 12.78)",
"zysk_eko(rukola, 13.56)",
"zysk_eko(rzepa, 12.31)",
"zysk_eko(rzodkiewka, 12.19)",
"zysk_eko(sałata, 12.42)",
"zysk_eko(seler, 12.81)",
"zysk_eko(szpinak, 13.79)",
"zysk_eko(ziemniak, 11.94)",
# pH wzrostu
"ph_wzrostu(bób, 6.0)",
"ph_wzrostu(brokuł, 6.5)",
"ph_wzrostu(brukselka, 6.0)",
"ph_wzrostu(burak, 6.5)",
"ph_wzrostu(cebula, 5.5)",
"ph_wzrostu(cukinia, 6.0)",
"ph_wzrostu(dynia, 6.5)",
"ph_wzrostu(fasola, 6.0)",
"ph_wzrostu(groch, 6.5)",
"ph_wzrostu(jarmuż, 6.5)",
"ph_wzrostu(kalafior, 6.0)",
"ph_wzrostu(kalarepa, 6.5)",
"ph_wzrostu(kapusta, 6.0)",
"ph_wzrostu(marchew, 6.5)",
"ph_wzrostu(ogórek, 6.0)",
"ph_wzrostu(papryka, 6.5)",
"ph_wzrostu(pietruszka, 6.0)",
"ph_wzrostu(pomidor, 6.5)",
"ph_wzrostu(por, 6.0)",
"ph_wzrostu(rukola, 6.5)",
"ph_wzrostu(rzepa, 6.0)",
"ph_wzrostu(rzodkiewka, 6.5)",
"ph_wzrostu(sałata, 6.0)",
"ph_wzrostu(seler, 6.5)",
"ph_wzrostu(szpinak, 6.0)",
"ph_wzrostu(ziemniak, 5.5)",
# Złe sąsiedztwo warzyw z procentem plonów, jaki otrzymujemy
"przeszkadza(bób, cebula, 0.90)",
"przeszkadza(bób, fasola, 0.80)",
"przeszkadza(bób, groch, 0.85)",
"przeszkadza(bób, papryka, 0.75)",
"przeszkadza(bób, pomidor, 0.70)",
"przeszkadza(bób, rukola, 0.90)",
"przeszkadza(bób, seler, 0.80)",
"przeszkadza(brokuł, brukselka, 0.85)",
"przeszkadza(brokuł, cebula, 0.90)",
"przeszkadza(brokuł, jarmuż, 0.80)",
"przeszkadza(brokuł, kalafior, 0.70)",
"przeszkadza(brokuł, kapusta, 0.75)",
"przeszkadza(brokuł, marchew, 0.85)",
"przeszkadza(brokuł, papryka, 0.65)",
"przeszkadza(brokuł, pietruszka, 0.80)",
"przeszkadza(brokuł, pomidor, 0.60)",
"przeszkadza(brokuł, rukola, 0.90)",
"przeszkadza(brokuł, rzodkiewka, 0.85)",
"przeszkadza(brukselka, cebula, 0.90)",
"przeszkadza(brukselka, kalafior, 0.70)",
"przeszkadza(brukselka, marchew, 0.85)",
"przeszkadza(brukselka, papryka, 0.75)",
"przeszkadza(brukselka, pietruszka, 0.80)",
"przeszkadza(brukselka, pomidor, 0.60)",
"przeszkadza(brukselka, por, 0.90)",
"przeszkadza(brukselka, rukola, 0.90)",
"przeszkadza(brukselka, rzodkiewka, 0.85)",
"przeszkadza(brukselka, ziemniak, 0.85)",
"przeszkadza(burak, cebula, 0.90)",
"przeszkadza(burak, fasola, 0.80)",
"przeszkadza(burak, marchew, 0.85)",
"przeszkadza(burak, papryka, 0.75)",
"przeszkadza(burak, pietruszka, 0.80)",
"przeszkadza(burak, por, 0.90)",
"przeszkadza(burak, rukola, 0.90)",
"przeszkadza(burak, szpinak, 0.85)",
"przeszkadza(burak, ziemniak, 0.85)",
"przeszkadza(cebula, fasola, 0.80)",
"przeszkadza(cebula, groch, 85)",
"przeszkadza(cebula, kalafior, 0.70)",
"przeszkadza(cebula, kapusta, 0.75)",
"przeszkadza(cebula, marchew, 0.85)",
"przeszkadza(cebula, papryka, 0.75)",
"przeszkadza(cebula, por, 0.90)",
"przeszkadza(cebula, rukola, 0.90)",
"przeszkadza(cebula, rzepa, 0.85)",
"przeszkadza(cebula, rzodkiewka, 0.85)",
"przeszkadza(cukinia, ogórek, 0.90)",
"przeszkadza(cukinia, papryka, 0.75)",
"przeszkadza(cukinia, pomidor, 0.60)",
"przeszkadza(cukinia, rukola, 0.90)",
"przeszkadza(cukinia, ziemniak, 0.85)",
"przeszkadza(dynia, ogórek, 0.90)",
"przeszkadza(dynia, papryka, 0.75)",
"przeszkadza(dynia, rukola, 0.90)",
"przeszkadza(dynia, ziemniak, 0.85)",
"przeszkadza(fasola, groch, 0.85)",
"przeszkadza(fasola, kalarepa, 0.80)",
"przeszkadza(fasola, kapusta, 0.75)",
"przeszkadza(fasola, papryka, 0.75)",
"przeszkadza(fasola, pomidor, 0.60)",
"przeszkadza(fasola, por, 0.90)",
"przeszkadza(fasola, rukola, 0.90)",
"przeszkadza(groch, papryka, 0.75)",
"przeszkadza(groch, pomidor, 0.60)",
"przeszkadza(groch, por, 0.90)",
"przeszkadza(groch, rukola, 0.90)",
"przeszkadza(groch, ziemniak, 0.85)",
"przeszkadza(jarmuż, kalafior, 0.70)",
"przeszkadza(jarmuż, marchew, 0.85)",
"przeszkadza(jarmuż, papryka, 0.75)",
"przeszkadza(jarmuż, pomidor, 0.60)",
"przeszkadza(jarmuż, por, 0.90)",
"przeszkadza(jarmuż, rukola, 0.90)",
"przeszkadza(jarmuż, ziemniak, 0.85)",
"przeszkadza(kalafior, kapusta, 0.75)",
"przeszkadza(kalafior, marchew, 0.85)",
"przeszkadza(kalafior, papryka, 0.75)",
"przeszkadza(kalafior, pietruszka, 0.80)",
"przeszkadza(kalafior, pomidor, 0.60)",
"przeszkadza(kalafior, por, 0.90)",
"przeszkadza(kalafior, rukola, 0.90)",
"przeszkadza(kalafior, rzodkiewka, 0.85)",
"przeszkadza(kalafior, ziemniak, 0.85)",
"przeszkadza(kalarepa, kapusta, 0.75)",
"przeszkadza(kalarepa, marchew, 0.85)",
"przeszkadza(kalarepa, papryka, 0.75)",
"przeszkadza(kalarepa, pietruszka, 0.80)",
"przeszkadza(kalarepa, pomidor, 0.60)",
"przeszkadza(kalarepa, rukola, 0.90)",
"przeszkadza(kalarepa, rzodkiewka, 0.85)",
"przeszkadza(kapusta, marchew, 0.85)",
"przeszkadza(kapusta, papryka, 0.75)",
"przeszkadza(kapusta, pietruszka, 0.80)",
"przeszkadza(kapusta, pomidor, 0.60)",
"przeszkadza(kapusta, rukola, 0.90)",
"przeszkadza(kapusta, rzodkiewka, 0.85)",
"przeszkadza(kapusta, ziemniak, 0.85)",
"przeszkadza(marchew, papryka, 0.75)",
"przeszkadza(marchew, pomidor, 0.60)",
"przeszkadza(marchew, pietruszka, 0.80)",
"przeszkadza(marchew, rukola, 0.90)",
"przeszkadza(marchew, por, 0.90)",
"przeszkadza(marchew, seler, 0.80)",
"przeszkadza(marchew, ziemniak, 0.85)",
"przeszkadza(ogórek, papryka, 0.75)",
"przeszkadza(ogórek, pomidor, 0.60)",
"przeszkadza(ogórek, rukola, 0.90)",
"przeszkadza(ogórek, rzepa, 0.85)",
"przeszkadza(ogórek, rzodkiewka, 0.85)",
"przeszkadza(ogórek, ziemniak, 0.85)",
"przeszkadza(papryka, pomidor, 0.60)",
"przeszkadza(papryka, por, 0.90)",
"przeszkadza(papryka, rukola, 0.90)",
"przeszkadza(papryka, rzepa, 0.85)",
"przeszkadza(papryka, rzodkiewka, 0.85)",
"przeszkadza(papryka, sałata, 0.80)",
"przeszkadza(papryka, seler, 0.80)",
"przeszkadza(papryka, szpinak, 0.85)",
"przeszkadza(papryka, zeimniak, 0.85)",
"przeszkadza(pietruszka, pomidor, 0.60)",
"przeszkadza(pietruszka, rukola, 0.90)",
"przeszkadza(pietruszka, sałata, 0.80)",
"przeszkadza(pomidor, rukola, 0.90)",
"przeszkadza(pomidor, rzodkiewka, 0.85)",
"przeszkadza(pomidor, ziemniak, 0.85)",
"przeszkadza(por, rukola, 0.90)",
"przeszkadza(por, seler, 0.80)",
"przeszkadza(rukola, rzepa, 0.85)",
"przeszkadza(rukola, rzodkiewka, 0.85)",
"przeszkadza(rukola, sałata, 0.80)",
"przeszkadza(rukola, seler, 0.80)",
"przeszkadza(rukola, szpinak, 0.85)",
"przeszkadza(rukola, ziemniak, 0.85)",
"przeszkadza(sałata, seler, 0.80)",
"przeszkadza(seler, ziemniak, 0.85)",
# Dobre sąsiedztwo warzyw z procentem plonow, jaki otrzymujemy
"pomaga(bób, kapusta, 1.31)",
"pomaga(bób, ziemniak, 1.05)",
"pomaga(brokuł, por, 1.52)",
"pomaga(brokuł, seler, 1.21)",
"pomaga(brokuł, ziemniak, 1.12)",
"pomaga(burak, groch, 1.42)",
"pomaga(burak, kalarepa, 1.15)",
"pomaga(burak, kapusta, 1.38)",
"pomaga(burak, ogórek, 1.11)",
"pomaga(burak, pomidor, 1.25)",
"pomaga(burak, rzodkiewka, 1.34)",
"pomaga(burak, sałata, 1.41)",
"pomaga(burak, seler, 1.59)",
"pomaga(cebula, cukinia, 1.06)",
"pomaga(cebula, kalarepa, 1.41)",
"pomaga(cebula, ogórek, 1.25)",
"pomaga(cebula, pomidor, 1.46)",
"pomaga(cebula, sałata, 1.51)",
"pomaga(cukinia, groch, 1.59)",
"pomaga(cukinia, szpinak, 1.43)",
"pomaga(dynia, fasola, 1.14)",
"pomaga(fasola, jarmuż, 1.52)",
"pomaga(fasola, ogórek, 1.19)",
"pomaga(fasola, rzepa, 1.46)",
"pomaga(fasola, seler, 1.23)",
"pomaga(fasola, szpinak, 1.36)",
"pomaga(fasola, ziemniak, 1.18)",
"pomaga(groch, kalarepa, 1.26)",
"pomaga(groch, kapusta, 1.39)",
"pomaga(groch, marchew, 1.33)",
"pomaga(groch, ogórek, 1.11)",
"pomaga(groch, rzepa, 1.41)",
"pomaga(groch, rzodkiewka, 1.53)",
"pomaga(groch, seler, 1.42)",
"pomaga(groch, szpinak, 1.17)",
"pomaga(jarmuż, kapusta, 1.54)",
"pomaga(kalarepa, ogórek, 1.28)",
"pomaga(kalarepa, por, 1.15)",
"pomaga(kalarepa, seler, 1.27)",
"pomaga(kalarepa, szpinak, 1.45)",
"pomaga(kalarepa, ziemniak, 1.32)",
"pomaga(kapusta, seler, 1.41)",
"pomaga(kapusta, szpinak, 1.53)",
"pomaga(marchew, ogórek, 1.19)",
"pomaga(ogórek, por, 1.23)",
"pomaga(ogórek, seler, 1.47)",
"pomaga(ogórek, szpinak, 1.28)",
"pomaga(pietruszka, por, 1.29)",
"pomaga(pietruszka, rzodkiewka, 1.39)",
"pomaga(pomidor, por, 1.48)",
"pomaga(pomidor, rzepa, 1.24)",
"pomaga(pomidor, seler, 1.22)",
"pomaga(pomidor, szpinak, 1.36)",
"pomaga(por, rzodkiewka, 1.24)",
"pomaga(por, sałata, 1.56)",
"pomaga(por, szpinak, 1.17)",
"pomaga(rzepa, seler, 1.53)",
"pomaga(rzepa, szpinak, 1.05)",
"pomaga(rzodkieka, szpinak, 1.48)",
"pomaga(seler, szpinak, 1.37)",
"pomaga(szpinak, ziemniak, 1.45)",
# Opryski
"oprysk(insektycyd)",
"oprysk(fungicyd)",
"oprysk(repelent)",
"oprysk(herbicyd)",
# Cena oprysku
"cena(insektycyd, 48.47)",
"cena(fungicyd, 51.99)",
"cena(repelent, 31.18)",
"cena(herbicyd, 76.49)",
# Wydajność oprysku - liczba kwadratów, na które wystarczy
"wydajność(insektycyd, 20.5)",
"wydajność(fungicyd, 8)",
"wydajność(repelent, 57)",
"wydajność(herbicyd, 12.25)",
# Czas (w dniach), jaki należy odczekać między opryskami lub jaki musi upłynąć od oprysku do zbiorów
"czas(insektycyd, 14)",
"czas(fungicyd, 21)",
"czas(repelent, 4)",
"czas(herbicyd, 21)",
# Nawozy
"nawóz(eco Growth)",
"nawóz(bioFertilizer Pro)",
"nawóz(greenNourish Boost)",
"nawóz(earthEssence Feed)",
"nawóz(ecoAcidicSoil)",
"nawóz(organicpHBalance Plus)",
"nawóz(bioAcidifier Pro)",
"nawóz(greenSoilGuardian pH-Down)",
"nawóz(naturalAcidicSoilMaster)",
# Nawozy ekologiczne
"eko(eco Growth)",
"eko(bioFertilizer Pro)",
"eko(ecoAcidicSoil)",
"eko(organicpHBalance Plus)",
# Cena nawozu
"cena(eco Growth, 39.99)",
"cena(bioFertilizer Pro, 49.99)",
"cena(greenNourish Boost, 29.99)",
"cena(earthEssence Feed, 59.99)",
"cena(ecoAcidicSoil, 25.99)",
"cena(bioAcidifier Pro, 34.99)",
"cena(greenSoilGuardian, 27.50)",
"cena(organicpHBalance Plus, 29.99)",
"cena(naturalAcidicSoilMaster, 31.75)",
# Wydajność nawozu w przeliczeniu na kwadrat
"wydajność(eco Growth, 23.5)",
"wydajność(bioFertilizer Pro, 15.25)",
"wydajność(greenNourish Boost, 15)",
"wydajność(earthEssence Feed, 35.5)",
"wydajność(ecoAcidicSoil, 18.75)",
"wydajność(organicpHBalancePlus, 12.5)",
"wydajność(bioAcidifierPro, 20)",
"wydajność(greenSoilGuardianpHDown, 30)",
"wydajność(naturalAcidicSoilMaster, 25)",
# Przeznaczenie
"pH(ecoAcidicSoil, 6.0)",
"pH(bioAcidifier Pro, 6.0)",
"pH(greenSoilGuardian, 6.0)",
"pH(organicpHBalance Plus, 5.5)",
"pH(naturalAcidicSoilMaster, 5.5)",
# Czas (w dniach), na jaki wystarczy jedno nawożenie
"czas(eco Growth, 24)",
"czas(bioFertilizer Pro, 29)",
"czas(greenNourish Boost, 37)",
"czas(earthEssence Feed, 21)",
"czas(ecoAcidicSoil, 18)",
"czas(bioAcidifier Pro, 21)",
"czas(greenSoilGuardian, 22)",
"czas(organicpHBalance Plus, 19)",
"czas(naturalAcidicSoilMaster, 23)",
# Wpływ nawozu na warzywo
"pomaga(burak, eco Growth, 1.07)",
"pomaga(brokuł, eco Growth, 1.05)",
"pomaga(fasola, eco Growth, 1.04)",
"pomaga(groch, eco Growth, 1.06)",
"pomaga(jarmuż, eco Growth, 1.05)",
"pomaga(kalarepa, eco Growth, 1.12)",
"pomaga(kapusta, eco Growth, 1.04)",
"pomaga(marchew, eco Growth, 1.03)",
"pomaga(ogórek, eco Growth, 1.08)",
"pomaga(papryka, eco Growth, 1.06)",
"pomaga(pietruszka, eco Growth, 1.05)",
"pomaga(rzepa, eco Growth, 1.05)",
"pomaga(szpinak, eco Growth, 1.06)",
"pomaga(ziemniak, eco Growth, 1.04)",
"pomaga(burak, bioFertilizer Pro, 1.08)",
"pomaga(brokuł, bioFertilizer Pro, 1.06)",
"pomaga(pomidor, bioFertilizer Pro, 1.07)",
"pomaga(sałata, bioFertilizer Pro, 1.06)",
"pomaga(seler, bioFertilizer Pro, 1.05)",
"pomaga(szpinak, bioFertilizer Pro, 1.06)",
"pomaga(cebula, bioFertilizer Pro, 1.04)",
"pomaga(cukinia, bioFertilizer Pro, 1.03)",
"pomaga(marchew, bioFertilizer Pro, 1.05)",
"pomaga(rzepa, bioFertilizer Pro, 1.05)",
"pomaga(bób, greenNourish Boost, 1.03)",
"pomaga(brokuł, greenNourish Boost, 1.06)",
"pomaga(cebula, greenNourish Boost, 1.04)",
"pomaga(cukinia, greenNourish Boost, 1.05)",
"pomaga(dynia, greenNourish Boost, 1.04)",
"pomaga(groch, greenNourish Boost, 1.03)",
"pomaga(jarmuż, greenNourish Boost, 1.07)",
"pomaga(kalafior, greenNourish Boost, 1.05)",
"pomaga(kapusta, greenNourish Boost, 1.04)",
"pomaga(marchew, greenNourish Boost, 1.06)",
"pomaga(ogórek, greenNourish Boost, 1.04)",
"pomaga(papryka, greenNourish Boost, 1.05)",
"pomaga(pietruszka, greenNourish Boost, 1.06)",
"pomaga(por, greenNourish Boost, 1.03)",
"pomaga(rzodkiewka, greenNourish Boost, 1.04)",
"pomaga(sałata, greenNourish Boost, 1.07)",
"pomaga(seler, greenNourish Boost, 1.05)",
"pomaga(szpinak, greenNourish Boost, 1.08)",
"pomaga(ziemniak, greenNourish Boost, 1.04)",
"pomaga(rukola, greenNourish Boost, 1.06)",
"pomaga(bób, earthEssence Feed, 1.02)",
"pomaga(brokuł, earthEssence Feed, 1.04)",
"pomaga(cebula, earthEssence Feed, 1.03)",
"pomaga(cukinia, earthEssence Feed, 1.05)",
"pomaga(dynia, earthEssence Feed, 1.03)",
"pomaga(groch, earthEssence Feed, 1.02)",
"pomaga(jarmuż, earthEssence Feed, 1.06)",
"pomaga(kalafior, earthEssence Feed, 1.04)",
"pomaga(kapusta, earthEssence Feed, 1.03)",
"pomaga(marchew, earthEssence Feed, 1.05)",
"pomaga(ogórek, earthEssence Feed, 1.03)",
"pomaga(papryka, earthEssence Feed, 1.04)",
"pomaga(pietruszka, earthEssence Feed, 1.05)",
"pomaga(por, earthEssence Feed, 1.12)",
"pomaga(rukola, earthEssence Feed, 1.05)",
"pomaga(rzodkiewka, earthEssence Feed, 1.03)",
"pomaga(sałata, earthEssence Feed, 1.06)",
"pomaga(seler, earthEssence Feed, 1.04)",
"pomaga(szpinak, earthEssence Feed, 1.07)",
"pomaga(ziemniak, earthEssence Feed, 1.03)",
# DEFINIOWANIE REGUŁ
"ile_podlać(X, B, Y):- warzywo(X), woda(X,Z), faza(B,C), wilgotnosc(pole,A), Y is C*Z-A",
"gnije(X, B, Y):- warzywo(X), woda(X,Z), faza(B,C), wilgotnosc(pole, A), Y is 1.3*C*Z-A",
"usycha(X, B, Y):- warzywo(X), woda(X,Z), faza(B,C), wilgotnosc(pole, A), Y is 0.7*C*Z-A",
"ile_rośnie(X,Y):- warzywo(X), czas(X, posadzono, A), czas(X, rośnie, B), Y is A+B",
"cena_zakupu(Y, A, B):- warzywo(B), cena(B, C), Y is A*C",
"koszt_nawozu(D, E, A, B, C):- warzywo(B), nawóz(D), pomaga(B,D,F),"
" czas(D, G), ile_rośnie(B,H), wydajność(D,I), cena(D,J), E is A*C/I*J",
"multi_nawóz(A,B,C,D):- warzywo(C), nawóz(D), pomaga(C,D,A)",
"nawóz_pH(D, B):- ph_wzrostu(D, A), pH(B, A)",
"nawóz_do(A,B):- warzywo(A), nawóz(B), pomaga(A,B,C)",
"zysk_warzywo(Y, A, B):- warzywo(B), zysk(B, C), Y is A*C",
"zysk_warzywo_eko(Y, A, B):- warzywo(B), zysk_eko(B, C), Y is A*C",
"czas_oprysk(A,B):- oprysk(B), czas(B,A)",
"czas_nawóz(A,B):- nawóz(B), czas(B,A)",
"koszt_oprysku(A,B,C):- oprysk(C), cena(C,D), wydajność(C,E), A is D*B/E",
"spalono(A,B):- srednie_spalanie(traktor, C), A is B*C",
"miejsce(A,B):- ładowność_przyczepy(traktor, C), A is C*1000-B",
"zostało_wody(A,B,C):- "
])
# Wygodniejsze w obsłudze metody
# Woda
def zostalo_wody(zatankowano, zuzyto):
return [{"Zostało": zatankowano-zuzyto}]
def max_wody():
wynik = float(tractor_kb.query(pl.Expr("pojemność_podlewanie(traktor, Max"))[0]["Max"])
return [{"Max": wynik}]
# Przyczepa
def miejsce(kg):
query = "miejsce(Miejsce, " + str(kg) + ")"
wynik = float(tractor_kb.query(pl.Expr(query))[0]["Miejsce"])
return [{"Miejsce": wynik}]
# Paliwo
def spalono(litry):
query = "spalono(Spalono, " + str(litry) + ")"
wynik = float(tractor_kb.query(pl.Expr(query))[0]["Spalono"])
return [{"Spalono": wynik}]
def koszt_paliwa(ile):
cena_paliwa = float(tractor_kb.query(pl.Expr("cena_paliwa(traktor, Cena)"))[0]["Cena"])
return [{"Koszt": cena_paliwa*ile}]
# Uprawa - podlewanie
def ile_podlac(warzywo, faza):
query = "ile_podlać(" + warzywo + ", " + faza + ", Woda)"
return [{"Woda": float(tractor_kb.query(pl.Expr(query))[0]["Woda"])}]
def gnije(warzywo, faza):
query = "gnije(" + warzywo + ", " + faza + ", Woda)"
return [{"Woda": float(tractor_kb.query(pl.Expr(query))[0]["Woda"])}]
def usycha(warzywo, faza):
query = "usycha(" + warzywo + ", " + faza + ", Woda)"
return [{"Woda": float(tractor_kb.query(pl.Expr(query))[0]["Woda"])}]
# Warzywa
def ile_rosnie(warzywo):
query = "ile_rośnie(" + warzywo + ", Dni)"
return [{"Dni": float(tractor_kb.query(pl.Expr(query))[0]["Dni"])}]
def koszt_zakupu(ile, warzywo):
query = "cena_zakupu( Koszt, " + str(ile) + ", " + warzywo + ")"
return [{"Koszt": float(tractor_kb.query(pl.Expr(query))[0]["Koszt"])}]
def zysk_warzywo(kg, warzywo):
query = "zysk_warzywo( Koszt, " + str(kg) + ", " + warzywo + ")"
wynik = float(tractor_kb.query(pl.Expr(query))[0]["Koszt"])
return [{"Koszt": wynik}]
def zysk_warzywo_eko(kg, warzywo):
query = "zysk_warzywo_eko( Koszt, " + str(kg) + ", " + warzywo + ")"
wynik = float(tractor_kb.query(pl.Expr(query))[0]["Koszt"])
return [{"Koszt": wynik}]
# Nawozy
def koszt_nawozu(kwadraty, warzywo, ile_razy):
query = "koszt_nawozu(Nawóz, Koszt," + str(kwadraty) + ", " + warzywo + ", " + str(ile_razy) + ")"
wynik = tractor_kb.query(pl.Expr(query))
for each in wynik:
each["Koszt"] = float(each["Koszt"])
return wynik
def nawoz_ph(warzywo):
query = "nawóz_pH(" + warzywo + ", Nawóz)"
return tractor_kb.query(pl.Expr(query))
def nawoz_do(warzywo):
query = "nawóz_do(" + warzywo + ", Nawóz)"
return tractor_kb.query(pl.Expr(query))
def czas_nawoz(nawoz):
query = "czas_nawóz(Czas, " + nawoz + ")"
wynik = int(tractor_kb.query(pl.Expr(query))[0]["Czas"])
return [{"Czas": wynik}]
# Opryski
def czas_oprysk(oprysk):
query = "czas_oprysk(Czas, " + oprysk + ")"
wynik = int(tractor_kb.query(pl.Expr(query))[0]["Czas"])
return [{"Czas": wynik}]
def koszt_oprysku(kwadraty, oprysk):
query = "koszt_oprysku(Koszt, " + str(kwadraty) + ", " + oprysk + ")"
wynik = float(tractor_kb.query(pl.Expr(query))[0]["Koszt"])
return [{"Koszt": wynik}]
# Mnożniki do zbiorów
def multi_sasiad(warzywo, sasiad):
proba = [
tractor_kb.query(pl.Expr("pomaga(" + warzywo + ", " + sasiad + ", Mul)")),
tractor_kb.query(pl.Expr("pomaga(" + sasiad + ", " + warzywo + ", Mul)")),
tractor_kb.query(pl.Expr("przeszkadza(" + warzywo + ", " + sasiad + ", Mul)")),
tractor_kb.query(pl.Expr("przeszkadza(" + sasiad + ", " + warzywo + ", Mul)"))
]
mnoznik = 1
for zal in proba:
if zal != ['No']:
mnoznik *= float(zal[0]["Mul"])
return [{"Mul": mnoznik}]
def multi_sasiedzi(warzywo, sasiedzi):
mnoznik = 1
for sasiad in sasiedzi:
mnoznik *= multi_sasiad(warzywo, sasiad)[0]["Mul"]
return [{"Mul": mnoznik}]
def multi_nawoz(ile_razy, warzywo, nawoz):
query = "multi_nawóz(Mul, " + str(ile_razy) + ", " + warzywo + ", " + nawoz + ")"
wyniki = float(tractor_kb.query(pl.Expr(query))[0]["Mul"])
return [{"Cena": pow(wyniki, ile_razy)}]