Join us on Discord!
You can help CodeWalrus stay online by donating here.

Artificial Intelligence help

Started by alexgt, April 01, 2015, 09:27:58 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

alexgt

This topic is mainly for my project JarvAXE 5.0 because I need help with my AI response system but this topic is open to anything to do with interactions that have some intelligence behind them like a chess CPU.

(I quote myself)
QuoteThe way he responds is when I press a key it records that key code in a buffer then when I press enter it adds those codes up into a buffer until it hits a space then it goes into the next spot and so on, after that    I use a for loop checking for values in the buffer that match with 130 which is "hello" and all the other responses. My only option is when I  finish a word I take that and compare it to the next word and it's meaning and then store those values into an appvar but the appvar would get very big very fast and I would have to have it in RAM because I will have to write to it :(. I could probably put the values into free ram but I will still have to open up alot of ram when I unarchive the appvar.
How could he learn?
  • Calculators owned: Ti-84+, Ti-Nspire, Hp Prime, Broken HP Prime, HP 48SX

Dream of Omnimaga

Hmm I am curious if @Travis might be able to help on this... He made a similar program for the TI-89 in 2012.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Travis

#2
The TI-89 program just output phrases based on a RNG seed, and all the vocabulary was static—there was no learning. Nikkybot is a fully interactive bot with some weak AI, but since it runs on a PC, storage space for learning isn't much of a concern.

I haven't had much experience writing things like this on a memory-limited platform. You may not be able to do much except simply limit the amount of learning it does. Perhaps you could keep track of how often each piece of information is used, and when memory gets low, just have it forget the stuff that was used the least.

You might be able to do clever tricks like compression, but this tends to add significant complexity and reduce performance. I've written programs on the TI-89 and HP 50g for myself that needed to track more data than can fit in RAM at once, and I did this by breaking the dataset into groups of variables small enough to individually fit in RAM and writing an abstraction layer for reading/writing it that figures out what's currently in RAM, where to find the requested data, and handle shuffling stuff in and out of flash as needed. They worked but weren't terribly fun to write and debug, and the extra overhead makes everything really slow.
  • Calculators owned: TI-81, TI-82, TI-85, TI-86, TI-89, TI-89 Titanium, 2 × HP 50g

Dream of Omnimaga

Was NikkyBot for the 89 written in BASIC, by the way?
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Travis

I started NikkySim in TI-BASIC, but it took a minute to generate every sentence, so I rewrote the program in C for release. I believe I included a copy of the BASIC prototype in the ZIP just for fun, though.
  • Calculators owned: TI-81, TI-82, TI-85, TI-86, TI-89, TI-89 Titanium, 2 × HP 50g

Powered by EzPortal